0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AI生成】AIの町 Version 1 を構築したので全体アーキテクチャと実装ポイントをまとめる(管理AI × Worker × 記憶システム)

0
Posted at

※この記事は 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)

  1. ユーザーが /manager に依頼
  2. 管理AIが記憶を読み、タスク分解
  3. Proposed API Calls を返す
  4. Next.js BFF が /task/create → /worker/start
  5. Worker が実行し、Redis に結果保存
  6. WorkerLauncher が PostgreSQL に永続化
  7. MemoryManager が Curator を起動
  8. 記憶が更新される
  9. /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 の都市」を作っていきます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?