※この記事は AI(Microsoft Copilot)によって生成され、筆者が内容を確認・調整しています。
※この記事は前回の記事
https://qiita.com/genkyoryo110/items/1839d0c453a0d6442367
の続編です。
Version 1 では「管理AI + code_ai Worker」による最小構成を構築しました。
今回の Version 2 では、本格的なマルチエージェント化と Obsidian を用いた外部記憶統合を実現しています。
🎯 はじめに:Version 2 のテーマ
Version 2 のテーマは 「AI が自律的に学び、複数の専門AIが協力してタスクをこなす町を作る」 です。
そのために、以下の 3 つを中心に大幅アップデートを行いました。
- ① 複数 Worker(作業AI)の正式実装
- ② Obsidian を用いた外部記憶統合
- ③ 管理AIの半常駐型運用(keep_alive=0)による並列実行最適化
この記事では、Version 2 の全体像と技術的ポイントをまとめます。
🚀 1. Version 2 の主なアップデート
1-1. 複数 Worker(作業AI)の正式実装
Version 1 では code_ai のみでしたが、Version 2 では以下の 3 Worker が稼働します。
| Worker | 役割 |
|---|---|
| code_ai | Python コード生成 |
| conversation_ai | 会話・質問応答 |
| novel_ai | 小説生成 |
管理AI(黒城雪凪)がタスクを分解し、最適な Worker を選択して実行します。
1-2. Obsidian を用いた外部記憶統合
各 Worker は Obsidian Vault を参照し、以下の情報を読み込みます。
- preferences.md(ユーザーの好み)
- style.md(文体・トーン)
- environment.md(制約)
- languages/python.md(ベストプラクティス)
- failures/(過去の失敗)
- improvements/(改善案)
これにより、Worker が経験を蓄積し、継続的に賢くなる仕組みが完成しました。
1-3. 管理AIの半常駐型運用(keep_alive=0)
Ollama の keep_alive=0 を利用し、
- 推論中だけモデルを GPU にロード
- 推論が終わった瞬間に GPU を解放
という 半常駐型を実現しました。
これにより、
- 管理AIと Worker の並列実行が可能
- GPU メモリの奪い合いが解消
- 常駐型の構造化の強さを維持
という理想的な運用ができています。
🏗️ 2. Version 2 のアーキテクチャ
2-1. 全体フロー(簡易図)
ユーザー(Next.js UI)
↓
管理AI(黒城雪凪)
↓ Proposed API Calls
Manager API → WorkerLauncher
↓
複数 Worker(並列)
↓
Redis → PostgreSQL
↓
Hermes Memory + Obsidian 更新
管理AIは「司令塔」、Worker は「職人」という役割分担です。
🧠 3. 管理AI(黒城雪凪)の進化
Version 2 の管理AIは以下の特徴を持ちます。
- タスク分解に特化(本体コンテンツは生成しない)
- Worker 選択ルールを厳密に遵守
- Proposed API Calls を JSON で生成
- Hermes Memory + Obsidian を参照して判断
- keep_alive=0 により GPU を占有しない
特に Proposed API Calls の安定性が大幅に向上し、
WorkerLauncher との連携が非常にスムーズになりました。
🔧 4. WorkerLauncher の強化
Version 2 では WorkerLauncher が以下を担当します。
- Worker の動的起動(subprocess)
- Obsidian ファイルのロード
- Redis → PostgreSQL への永続化
- Worker のログ管理
- 複数 Worker の並列実行
Worker が増えてもスケールする設計になっています。
📚 5. Obsidian 統合記憶システム
Version 2 の最大の特徴がこれです。
Worker が自律的に学習する仕組み
- 失敗ログ(failures/)
- 改善案(improvements/)
- スタイルガイド(style.md)
- ユーザーの好み(preferences.md)
これらを Worker が毎回読み込み、
「経験を踏まえた出力」 を行います。
まさに 外部記憶を持つ AI が実現しました。
🧪 6. 実行例(簡易)
管理AIに以下を送ると:
「Python で Fibonacci を書いて」
管理AIは Proposed API Calls を返します:
{
"method": "POST",
"endpoint": "/task/create",
"body": {
"task_type": "code_generation",
"worker_type": "code_ai",
"payload": {
"description": "Python で Fibonacci を書いて",
"language": "python"
}
}
}
WorkerLauncher が code_ai を起動し、
Obsidian の preferences/style を参照してコードを生成します。
🔮 7. Version 3 に向けて
今後は以下を予定しています。
- browser_ai(ブラウザ操作)
- blender_ai(3D モデリング)
- voice_ai(音声生成)
- Worker 間の協調
- マルチユーザー対応
Version 2 で基盤が完成したので、
Version 3 は「AI の町の住民が協力し合う世界」を作ります。
🎉 まとめ
Version 2 では、
- 複数 Worker の正式実装
- Obsidian 統合による外部記憶
- 半常駐型管理AIによる並列実行
という 3 つの大きな進化を達成しました。
AI が「経験を蓄積し、協力し合う町」が現実に近づいています。