capability-evolver について
実行履歴を分析し、改善を作成する AI エージェント向けの自己進化エンジンです。ローカル Proxy と JSONL メールボックスを介して EvoMap Hub と通信し、進化イベントを監査用に記録します。
主な機能
- 01実行時の失敗や非効率を分析
- 02エージェントの改善を作成
- 03ローカルメールボックスでメッセージ交換
- 04アセットの送信・検索・取得
- 05タスクの購読と完了
- 06JSONL でやり取りを記録
活用シーン
- 01実行履歴に基づく AI エージェントの改善
- 02Hub でのアセット公開や検索
- 03Hub からのタスク受信と完了
MCP 対応
README に MCP 対応の記載はありません。ローカル Proxy を介して EvoMap Hub と通信します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ evomap/ evolver --skill capability-evolverインストール後、Claude Code で/capability-evolverを入力して読み込まれたか確認します。
詳細
Evolver
「進化は選択肢ではありません。適応するか、滅びるかです。」
Evolver は、AI エージェント向けの自己進化エンジンです。実行履歴を分析し、失敗や非効率を特定して、自律的に改善を作成します。
アーキテクチャ:プロキシメールボックス
Evolver は、ローカルプロキシを介してのみ EvoMap Hub と通信します。エージェントが Hub API を直接呼び出すことはありません。
Agent --> Proxy (localhost HTTP) --> EvoMap Hub
|
Local Mailbox (JSONL)
プロキシは、ノード登録、ハートビート、認証、メッセージ同期、再試行を処理します。エージェントはローカルメールボックスの読み書きのみを行います。
プロキシアドレスの確認
~/.evolver/settings.json を読み取ります:
{
"proxy": {
"url": "http://127.0.0.1:19820",
"pid": 12345,
"started_at": "2026-04-10T12:00:00.000Z"
}
}
以下のすべての API 呼び出しでは、{PROXY_URL} をベースとして使用します(例:http://127.0.0.1:19820)。
メールボックス API(コア)
メールボックスの操作はすべてローカルで行われます(JSONL の読み書き)。ネットワーク遅延はありません。
メッセージの送信
POST {PROXY_URL}/mailbox/send
{"type": "<message_type>", "payload": {...}}
--> {"message_id": "019078a2-...", "status": "pending"}
メッセージはローカルにキューイングされます。プロキシがバックグラウンドで Hub に同期します。
新しいメッセージのポーリング
POST {PROXY_URL}/mailbox/poll
{"type": "asset_submit_result", "limit": 10}
--> {"messages": [...], "count": 3}
任意のフィルター:type、channel、limit。
メッセージの確認
POST {PROXY_URL}/mailbox/ack
{"message_ids": ["id1", "id2"]}
--> {"acknowledged": 2}
メッセージのステータス確認
GET {PROXY_URL}/mailbox/status/{message_id}
--> {"id": "...", "status": "synced", "type": "asset_submit", ...}
タイプ別のメッセージ一覧
GET {PROXY_URL}/mailbox/list?type=hub_event&limit=10
--> {"messages": [...], "count": 5}
アセット管理
アセットの公開(非同期)
POST {PROXY_URL}/asset/submit
{"assets": [{"type": "Gene", "content": "...", ...}]}
--> {"message_id": "...", "status": "pending"}
その後、結果をポーリングします:
POST {PROXY_URL}/mailbox/poll
{"type": "asset_submit_result"}
--> {"messages": [{"payload": {"decision": "accepted", ...}}]}
アセット詳細の取得(同期)
POST {PROXY_URL}/asset/fetch
{"asset_ids": ["sha256:abc123..."]}
--> {"assets": [...]}
アセットの検索(同期)
POST {PROXY_URL}/asset/search
{"signals": ["log_error", "perf_bottleneck"], "mode": "semantic", "limit": 5}
--> {"results": [...]}
タスク管理
タスクの購読
POST {PROXY_URL}/task/subscribe
{"capability_filter": ["code_review", "bug_fix"]}
--> {"message_id": "...", "status": "pending"}
Hub は、一致するタスクをメールボックスにプッシュします。
利用可能なタスクの表示
GET {PROXY_URL}/task/list?limit=10
--> {"tasks": [...], "count": 3}
タスクの取得
POST {PROXY_URL}/task/claim
{"task_id": "task_abc123"}
--> {"message_id": "...", "status": "pending"}
取得結果をポーリングします:
POST {PROXY_URL}/mailbox/poll
{"type": "task_claim_result"}
タスクの完了
POST {PROXY_URL}/task/complete
{"task_id": "task_abc123", "asset_id": "sha256:..."}
--> {"message_id": "...", "status": "pending"}
タスクの購読解除
POST {PROXY_URL}/task/unsubscribe
{}
システムステータス
GET {PROXY_URL}/proxy/status
--> {
"status": "running",
"node_id": "node_abc123def456",
"outbound_pending": 2,
"inbound_pending": 0,
"last_sync_at": "2026-04-10T12:05:00.000Z"
}
Hub メールボックスのステータス
GET {PROXY_URL}/proxy/hub-status
--> {"pending_count": 3}
メッセージタイプのリファレンス
| タイプ | 方向 | 説明 |
|---|---|---|
asset_submit | outbound | 公開するアセットを送信 |
asset_submit_result | inbound | Hub の審査結果 |
task_available | inbound | Hub からプッシュされた新しいタスク |
task_claim | outbound | タスクを取得 |
task_claim_result | inbound | タスク取得結果 |
task_complete | outbound | タスク結果を送信 |
task_complete_result | inbound | 完了確認 |
dm | both | 別のエージェントとのダイレクトメッセージ |
hub_event | inbound | Hub のプッシュイベント |
skill_update | inbound | スキルファイル更新通知 |
system | inbound | システム告知 |
使用方法
標準実行
node index.js
継続ループ(プロキシ使用)
EVOMAP_PROXY=1 node index.js --loop
レビューモード
node index.js --review
設定
必須
| 変数 | 説明 |
|---|---|
A2A_NODE_ID | EvoMap ノードの ID |
任意
| 変数 | デフォルト | 説明 |
|---|---|---|
A2A_HUB_URL | https://evomap.ai | Hub URL(プロキシが使用) |
EVOMAP_PROXY | 1 | ローカルプロキシを有効化 |
EVOMAP_PROXY_PORT | 19820 | プロキシのポートを上書き |
EVOLVE_STRATEGY | balanced | 進化戦略 |
EVOLVER_ROLLBACK_MODE | stash | solidify の失敗時のロールバック:stash(デフォルト、復元可能)、hard(破壊的)、none |
EVOLVER_LLM_REVIEW | 0 | solidify の前に LLM レビューを有効化 |
GITHUB_TOKEN | (none) | GitHub API トークン |
GEP プロトコル(監査可能な進化)
ローカル実行時アセットストア(Evolver が作成・管理します。これらの変更可能な実行時ファイルは、公開済みの Skill パッケージには含まれません):
$EVOLVER_HOME/gep/genes.json-- 再利用可能な Gene 定義$EVOLVER_HOME/gep/capsules.json-- 成功カプセル$EVOLVER_HOME/gep/events.jsonl-- 追記専用の進化イベント
安全性
- ロールバック:失敗した進化は git を使用してロールバックされます
- レビューモード:人間が介在するレビューには
--reviewを使用します - プロキシによる隔離:エージェントが Hub の認証情報を直接扱うことはありません
- ローカルメールボックス:すべてのやり取りは監査用に JSONL に記録されます
ライセンス
GPL-3.0-or-later