# Portability: UNIVERSAL
# Last validated: 2026-05-17
# Next review: 2027-05-17
# ソース: [ARCHITECTURE.md、SKILL.md、core/、bach_api.py]

BACH ARCHITECTURE (パーソナル エージェントティック OS)
======================================

定義
BACH は、AI モデルをオーケストレーションするための階層システムです。
これは、インフラストラクチャ (コンピューティング) とアプリケーションの間の「神経システム」として位置します。

レイヤー モデル
----------------

0。コア層 (core/、bach_api.py)
   レジストリベースの自動検出: ハブ/からのすべてのハンドラーの自動ロード
   アプリコンテナ: 遅延初期化された DB + レジストリを備えた軽量 DI
   ライブラリ API: CLI を使用しないプログラムによるアクセス (bach_api.py)
   基本タイプ: Result、ParsedArgs、OpDef - 均一な契約

1。オーケストレーション層 (bach.py、パートナー システム、ヘッドレス API)
   複数の LLM コラボレーション (クロード、ジェミニ、オラマ) をコーディネートします。
   メッセージ システムを介してタスク、役割、委任を管理します。
   REST API: プログラムによるアクセス用のポート 8001 (headless.py)

2。認知記憶層 (memory_*、統合エンジン)
   5 つの記憶タイプ (作業記憶、エピソード記憶、意味記憶、手続き記憶、連想記憶)。
   アクティブな統合 (減衰、ブースト、夜間圧縮)。

3. LOGIC & SKILL LAYER (ハブ/、スキル/、階層 JSON)
   60 を超える自動検出ハンドラー (ハブ/) と動的なスキル階層。
   スキル ボード (GUI) は、エージェントへのエキスパートの割り当てを制御します。
   キュー プロセッサ: 非同期処理用の Hub/_services/connector/

4。実行層 (tools/)
   ファイル システム、制御、分析などのための 290 以上の特殊な Python スクリプト。
   AI 互換性のための標準化されたインターフェイス (c_ プレフィックス)。

5。データと永続性 (bach.db、data/logs/)
   210 以上のテーブルを備えた SQLite 基盤 (集中型データ ストレージ)。
   トークン、セッション、成功、ディレクトリの真実を追跡します。
   ログは data/logs/ に統合されました (system/logs/ 非推奨)

プロジェクト構造
---------------

system/
§── bach.py ................................ CLI センター (オーケストレーター)
§── bach_api.py ................ ライブラリ API (プログラムによるアクセス)
§── bach_legacy.py ....... バックアップ（レジストリリファクタリング前）
§── コア/ ...................... 基礎層
│ §──base.py ... 結果、ParsedArgs、OpDef
│ §── registry.py ...... 自動検出 + コマンドルーティング
│ §── app.py ................. アプリコンテナ(DI)
│ §── db.py ................... データベースラッパー
│ §──adapter.py ....... レガシーブリッジ
│ └── aliases.py ................. コマンドエイリアス (mem -> メモリ)
§── データ/
│ §── bach.db ...... SQLite (210+ テーブル) - 「記憶」
│ └── logs/ .................. 統合されたログ (ここのみ)
§── db/
│ └─ schema.sql ....... 単一の真実の情報源 (DDL)
§── Hub/ ..................... ハンドラーモジュール (自動検出)
│ §── bach_paths.py ……パス管理（ガバナンス）
│ └── _services/ ....... バックグラウンドサービス
│ §── コネクタ/ ......... キュープロセッサ (非同期)
│ └── document/ ....... レポートのワークフロー
§── tools/ ..... Python スクリプト (290 以上のツール)
§── docs/help/ ................................. ヘルプシステム(.txt)
§── Agents/ ....... エージェントのプロフィール（役割）
§── パートナー/ ..... LLM 構成 (連結)
§── docs/ ...................... ドキュメントと概念
§── gui/ ...................... Web ダッシュボード (FastAPI)
│ └── api/ ................... REST API
│ §── headless.py ......ポート 8001 (Pure JSON API)
│ └──messages_api.py .... メッセージルーター
└── user/ ...................... ユーザー データとエクスポート

アーキテクチャ図 (レジストリ v2.0)
------------------------------------

┌─────────────────────────────┐
│ アクセスレイヤー │
━━━━━━━━━━━━━━━━━━━━━━┤
│ CLI (bach.py) │ ライブラリ (bach_api) │ REST (headless.py) │
│ sys.argv ルーティング │ 直接関数 │ ポート 8001 JSON API │
━━━━━━━━━━━━━━━━━━━━━━━━┘
                              ↓
┌─────────────────────────────┐
│ コアレイヤー (core/) │
━━━━━━━━━━━━━━━━━━━━━━┤
│ アプリコンテナ │ HandlerRegistry │ データベース (db.py) │
│ DI + Lazy Init │ 自動検出 │ スキーマ + 移行 │
━━━━━━━━━━━━━━━━━━━━━━━━┘
                              ↓
┌─────────────────────────────┐
│ ハンドラー層 (ハブ/) │
│ 60 以上の BaseHandler サブクラス - 自動的に登録 │
━━━━━━━━━━━━━━━━━━━━━━┤
│ task.py │ メモリ.py │ パートナー.py │
│ 税金.py │ バックアップ.py │ レッスン.py │
│ ... │ ... │ ... │
━━━━━━━━━━━━━━━━━━━━━━━━┘
                              ↓
┌─────────────────────────────┐
│ サービス層 (hub/_services/) │
━━━━━━━━━━━━━━━━━━━━━━┤
│ コネクタ/ │ ドキュメント/ │ デーモン/ │
│ キュープロセッサ │ レポートワークフロー │ バックグラウンドタスク │
━━━━━━━━━━━━━━━━━━━━━━━━┘
                              ↓
┌─────────────────────────────┐
│ 実行層 (ツール/) │
│ 標準化された c_ インターフェイスを備えた 290 以上の Python スクリプト │
━━━━━━━━━━━━━━━━━━━━━━━━┘
                              ↓
┌─────────────────────────────┐
│ 永続層 │
━━━━━━━━━━━━━━━━━━━━━━┤
│ bach.db │ データ/ログ/ │ ユーザー/ │
│ 210 以上のテーブル │ 統合されたログ │ エクスポートとレポート │
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┘

コアコンセプト
-------------

* レジストリベース: ハードコーディングされたハンドラー マップの代わりに自動検出。
  新しいハンドラーには、hub/ 内のファイルのみが必要です (登録なし)。

* デュアルアクセス: CLI (python bach.py​​ タスク リスト) およびライブラリ API (bach_api.task.list())。
  どちらも同じハンドラー + DB を使用します - オーバーヘッドはありません。

* マルチパートナー: 1 つのエージェントではなく、特殊な役割を持つネットワークです。

* 認知メモリ: 情報は保存されるだけでなく、
  

* ポータブルおよびローカル: システム全体がフォルダーにカプセル化され、
  クラウド要件なしで動作します (Ollama など)。

* 自己修復: パスとレジストリ エントリの自動修正。

* HEADLESS API: 外部統合用のポート 8001 の REST インターフェイス
  (GUI サーバー ポート 8000 とは別)。

関連項目
----------
docs/help/bach_info.txt BACH とは何ですか?
docs/help/memory.txt メモリ システム
docs/help/partner.txt AIの連携
wiki/was_ist_bach.txt 詳細な概要
