multi-agent-ff15 は何をしますか?
FF15にインスパイアされたマルチエージェント並行開発フレームワーク。OpenCode + tmuxを使用し、5体のAIエージェント(Noctis、Lunafreya、Ignis、Gladiolus、Prompto)がゼロ調整オーバーヘッドで並行稼働します。イベント駆動アーキテクチャ(YAML + tmux send-keys)とボトムアップスキル発見を採用。
概要
このフレームワークは、OpenCodeとtmuxの上に構築されたマルチエージェントシステムです。5体のAIエージェントがそれぞれ独立したtmuxウィンドウ/ペインで動作し、YAML設定ファイルで定義されたイベントに基づいて連携します。各エージェントは独自の役割を持ち、ボトムアップスキル発見により自動的に最適なタスクを割り当てます。
アーキテクチャ
- OpenCode: 各エージェントの実行基盤
- tmux: エージェント間のセッション管理と通信
- YAML: イベント駆動設定ファイル
- ボトムアップスキル発見: エージェントが自動的に利用可能なスキルを発見
エージェント一覧
| エージェント名 | 役割 |
|---|---|
| Noctis | リーダーエージェント、全体調整と意思決定 |
| Lunafreya | コミュニケーションと情報共有 |
| Ignis | 戦略立案とコード品質管理 |
| Gladiolus | 堅牢性とエラーハンドリング |
| Prompto | 迅速なプロトタイピングとテスト |
セットアップ
# 必要なツールのインストール
git clone https://github.com/atman-33/multi-agent-ff15.git
cd multi-agent-ff15
# tmuxセッションの起動
./scripts/setup_tmux.sh
# エージェントの起動
opencode --config config/agents.yaml
設定
config/agents.yaml で各エージェントの設定を行います。
agents:
- name: noctis
role: leader
tmux_window: 0
- name: lunafreya
role: communicator
tmux_window: 1
- name: ignis
role: strategist
tmux_window: 2
- name: gladiolus
role: guardian
tmux_window: 3
- name: prompto
role: rapid_prototype
tmux_window: 4
events:
- trigger: "task_assigned"
action: "tmux send-keys -t {target} '{task}' Enter"
- trigger: "skill_discovered"
action: "tmux send-keys -t {target} 'load_skill {skill_file}' Enter"
スキル発見
ボトムアップスキル発見により、各エージェントは ~/.opencode/skills/ ディレクトリ内のスキルファイルを自動的にスキャンし、利用可能なスキルを動的に認識します。新しいスキルファイルを追加するだけで、フレームワークが自動的に検出して利用します。
使用例
# 全エージェントに同時にタスクを割り当て
tmux send-keys -t noctis "refactor_module src/core" Enter
tmux send-keys -t lunafreya "sync_documentation" Enter
tmux send-keys -t ignis "code_review src/core" Enter
tmux send-keys -t gladiolus "add_error_handling src/core" Enter
tmux send-keys -t prompto "write_tests src/core" Enter
ライセンス
MIT