※この記事は AI(Microsoft Copilot)によって生成され、筆者が内容を確認・調整しています。
🏘️ AIの町(AI Town)とは?
**AIの町(AI Town)**は、
「管理AI × 複数の作業AI(Worker) × 記憶システム(Hermes Memory)」
で構成された 自律型マルチエージェント基盤です。
単一 LLM にすべてを任せるのではなく、
- 管理AIがタスクを分解し
- 最適な Worker に委譲し
- Worker が実行し
- 結果を統合し
- 記憶として蓄積し
- 次の判断に活かす
という “自律的に成長する AI システム” を目指しています。
Version 1 では、以下の 3 つが完成しました:
🎯 Version 1 の完成ポイント
✔ 管理AI「黒城雪凪(くろき・せつな)」
- ユーザー要求を理解
- タスク分解
- Worker 選択
- Proposed API Calls 生成
- 記憶スニペットを参照して判断
✔ WorkerLauncher(FastAPI)
- Redis キュー管理
- Worker プロセス起動
- タスク状態管理
- PostgreSQL への永続化
✔ Hermes Memory(記憶システム)
- MEMORY.md(長期記憶)
- USER.md(ユーザー記憶)
- SKILL.md(スキル記憶)
- recent_tasks(短期記憶)
- Curator による記憶昇格
🧩 全体アーキテクチャ
ユーザー(Next.js UI)
↓
POST /manager
↓
管理AI(黒城雪凪)
↓ Proposed API Calls
管理API(FastAPI)
↓
WorkerLauncher(FastAPI)
↓
Worker(code_ai など)
↓
Redis(タスク結果)
↓
MemoryManager → Curator
↓
MEMORY.md / USER.md / SKILL.md
🧠 管理AI(黒城雪凪)の役割
管理AIは 「自分では作業しない」。
常に 司令塔(オーケストレーター) として振る舞います。
1. ユーザー要求の理解
- 記憶スニペット(USER.md)を参照
- ユーザーの好みを反映
- 曖昧な点は質問
2. タスク分解
- SKILL.md の成功パターンを参照
- 必要な Worker を選定
- 実行順序を決定
3. Worker 選択
- MEMORY.md の成功傾向
- recent_tasks の傾向
- Worker の得意分野
を踏まえて最適な Worker を選ぶ
4. Proposed API Calls 生成
管理AIは API を実行しない。
「どの API を、どのパラメータで呼ぶべきか」 を JSON で返す。
5. /task/result の処理
Worker の結果を受け取り、
- 完了か
- 追加タスクが必要か
を判断する。
🤖 WorkerLauncher の役割
WorkerLauncher は Worker のライフサイクル管理を担当。
主な機能
- /task/create
- /worker/start
- /worker/stop
- /task/status
- Redis キュー管理
- PostgreSQL 永続化
Worker 起動例
python workers/code_ai.py --task_id <id> --worker_id <id>
💻 作業AI(Worker)
Version 1 では code_ai が実装済み。
code_ai の役割
- Python コード生成
- コード実行
- stdout / stderr / exit_code を返す
Payload 例
{
"language": "python",
"description": "Hello World を出力するコードを生成",
"action": "generate_and_run"
}
🧠 Hermes Memory(記憶システム)
AI の町の最大の特徴がこの記憶レイヤー。
記憶の種類
| 種類 | 内容 |
|---|---|
| MEMORY.md | 成功傾向・エラー傾向・ルール |
| USER.md | ユーザーの好み・規約 |
| SKILL.md | Worker の成功パターン |
| recent_tasks | 直近のタスク履歴 |
MemoryManager の役割
- 記憶スニペット生成
- タスク結果保存
- Curator 起動
Curator の役割
- recent_tasks を分析
- 成功パターン抽出
- MEMORY.md / SKILL.md を更新
🔄 タスク実行フロー(Version 1)
- ユーザーが /manager に依頼
- 管理AIが記憶を読み、タスク分解
- Proposed API Calls を返す
- Next.js BFF が /task/create → /worker/start
- Worker が実行し、Redis に結果保存
- WorkerLauncher が PostgreSQL に永続化
- MemoryManager が Curator を起動
- 記憶が更新される
- /task/result で管理AIが次アクション判断
🛠️ ディレクトリ構成(抜粋)
manager-api/
├── main.py
├── memory/
│ ├── MEMORY.md
│ ├── USER.md
│ └── SKILL.md
├── routers/
├── services/
└── utils/
manager/
└── setuna-manager.ModelFile
launcher/
├── main.py
├── workers/
│ └── code_ai.py
├── db/
└── utils/
workers/
└── code_ai.ModelFile
next-ui/
├── app/
├── components/
└── store/
🚀 Version 1 を作ってみての所感
- 管理AI × Worker × 記憶レイヤーの連携が完成
- WorkerLauncher のプロセス管理が安定
- 記憶スニペットを使った「記憶を持つ管理AI」が実現
- /task/result の次アクション判断が自然になった
Version 1 は「動く都市」になった。
🔮 今後の拡張(Version 2 予定)
- Worker の追加(image_ai / vision_ai / blender_ai)
- マルチタスク並列処理
- 記憶の自動圧縮
- UI の改善
- Worker の自動スケールアウト
- 管理AIの自己最適化
✨ まとめ
AI の町 Version 1 は、
- 管理AI
- WorkerLauncher
- Worker
- 記憶システム
が連携する 自律型マルチエージェント基盤として完成しました。
ここから Version 2 に向けて、
さらに「成長する AI の都市」を作っていきます。