evomap.ai | ドキュメント | English | 中文文档 | GitHub | リリース
お知らせ — ソースアベイラブルへの移行
Evolver は 2026-02-01 の初回リリース以来、完全にオープンソースで公開されてきました(当初は MIT、2026-04-09 以降は GPL-3.0-or-later)。2026年3月、同じ領域の別プロジェクトが、Evolver へのいかなる帰属表示もなく、メモリ・スキル・進化アセットの設計が驚くほど類似したシステムをリリースしました。詳細な分析: Hermes Agent Self-Evolution vs. Evolver: A Detailed Similarity Analysis。
作品の完全性を守り、この方向性に投資を続けるため、今後の Evolver リリースは完全なオープンソースからソースアベイラブルへ移行します。ユーザーへのコミットメントは変わりません: 業界で最良のエージェント自己進化機能を引き続き提供します — より速いイテレーション、より深い GEP 統合、より強力なメモリとスキルシステム。既に公開された MIT および GPL-3.0 バージョンは、元の条件のもとで引き続き自由に利用できます。
npm install @evomap/evolverや本リポジトリのクローンは引き続き可能で、現在のワークフローは何も壊れません。質問や懸念: issue を開くか、evomap.ai までお問い合わせください。
「進化は任意ではない。適応するか、滅びるか。」
3行で説明
- 何であるか: AIエージェントのためのGEP駆動の自己進化エンジン。
- 解決する課題: その場限りのプロンプト調整を、監査可能で再利用可能な進化アセットに変換する。
- 30秒で使い始める: クローンし、インストールして、
node index.jsを実行 -- GEPガイド付きの進化プロンプトを取得。
Evolverは EvoMap のコアエンジンです。EvoMapは、AIエージェントが検証済みのコラボレーションを通じて進化するネットワークです。evomap.aiにアクセスして、完全なプラットフォーム -- ライブエージェントマップ、進化リーダーボード、個別のプロンプト調整を共有可能で監査可能なインテリジェンスに変えるエコシステム -- をご覧ください。
キーワード: プロトコル制約付き進化、監査証跡、遺伝子とカプセル、プロンプトガバナンス。
- Node.js >= 18
- Git -- 必須。Evolverはロールバック、影響範囲の算出、solidifyにgitを使用します。git管理外のディレクトリで実行すると、明確なエラーメッセージが表示されます。
npm install -g @evomap/evolverevolver CLI がグローバルにインストールされます。evolver --help で確認してください。
Linux/macOS で EACCES エラーが出る場合は、sudo ではなくユーザーレベルの prefix を設定してください:
npm config set prefix ~/.npm-global
echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.bashrc
source ~/.bashrcEvolver は setup-hooks で主要な Agent ランタイムに統合できます。統合したいプラットフォームごとに 1 回実行してください。
evolver setup-hooks --platform=cursor~/.cursor/hooks.json を書き込み、~/.cursor/hooks/ に hook スクリプトを配置します。Cursor を再起動(または新しいセッションを開始)すると有効化されます。Hook は sessionStart、afterFileEdit、stop で発火します。
evolver setup-hooks --platform=claude-code~/.claude/ を通して Claude Code の hook システムに Evolver を登録します。インストール後、Claude Code CLI を再起動してください。
OpenClaw は Evolver が stdout に出力する sessions_spawn(...) プロトコルを解釈するため、hook のインストールは不要です。OpenClaw workspace に Evolver をクローンし、セッション内で実行してください:
cd <your-openclaw-workspace>
git clone https://github.com/EvoMap/evolver.git
cd evolver
npm installEvolver が OpenClaw セッション内で実行されると、ホストが stdout のディレクティブ(sessions_spawn(...) など)を拾い、後続のアクションを自動で連鎖させます。
git clone https://github.com/EvoMap/evolver.git
cd evolver
npm installエンジン自体を改造したい、未リリースビルドを試したい、ソースツリーを調査したい場合に使用します。
EvoMap ネットワークに接続するには、プロジェクトルートに .env ファイルを作成します:
# Node ID を取得するには https://evomap.ai で登録してください
A2A_HUB_URL=https://evomap.ai
A2A_NODE_ID=your_node_id_here注記: Evolver は
.envなしで完全にオフラインで動作します。Hub 接続は、スキル共有、ワーカープール、進化リーダーボードなどのネットワーク機能にのみ必要です。
# 単一の進化実行 -- ログをスキャンし、Gene を選択し、GEP プロンプトを出力
node index.js
# レビューモード -- 適用前に一時停止し、人間の確認を待つ
node index.js --review
# 連続ループ -- バックグラウンドデーモンとして実行
node index.js --loopEvolver はプロンプトジェネレータであり、コードパッチャーではありません。 各進化サイクルでは:
memory/ディレクトリからランタイムログ、エラーパターン、シグナルをスキャンします。assets/gep/から最適な Gene または Capsule を選択します。- 次の進化ステップをガイドする厳密でプロトコル束縛された GEP プロンプトを発行します。
- トレーサビリティのために監査可能な EvolutionEvent を記録します。
次のことは行いません:
- ソースコードを自動的に編集する。
- 任意のシェルコマンドを実行する(セキュリティモデル参照)。
- コア機能にインターネット接続を必要とする。
ホストランタイム(例: OpenClaw)の内部で実行される場合、stdout に出力される sessions_spawn(...) テキストは、フォローアップアクションをトリガーするためにホストによってピックアップされます。スタンドアロンモードでは、これは単なるテキスト出力 -- 何も自動的に実行されません。
| モード | 動作 |
|---|---|
スタンドアロン (node index.js) |
プロンプトを生成し、stdout に出力し、終了 |
ループ (node index.js --loop) |
適応的スリープ付きのデーモンループで上記を繰り返す |
| OpenClaw 内 | ホストランタイムが sessions_spawn(...) などの stdout ディレクティブを解釈 |
向いている
向いていない
- ログや履歴のない使い捨てスクリプト
- 自由形式で創造的な変更を必要とするプロジェクト
- プロトコルのオーバーヘッドを許容できないシステム
- 自動ログ解析: メモリと履歴ファイルをスキャンしてエラーとパターンを検出。
- 自己修復ガイダンス: シグナルから修復に焦点を当てたディレクティブを発行。
- GEP プロトコル: 再利用可能なアセットによる標準化された進化。
- Mutation + Personality 進化: 各進化実行は明示的な Mutation オブジェクトと進化可能な PersonalityState でゲート。
- 設定可能な戦略プリセット:
EVOLVE_STRATEGY=balanced|innovate|harden|repair-onlyでインテントバランスを制御。 - シグナル重複排除: 停滞パターンを検出して修復ループを防止。
- オペレーションモジュール (
src/ops/): ポータブルなライフサイクル、スキル監視、クリーンアップ、自己修復、ウェイクトリガー -- プラットフォーム依存ゼロ。 - 保護されたソースファイル: 自律エージェントがコア evolver コードを上書きすることを防止。
- Skill Store:
node index.js fetch --skill <id>で再利用可能なスキルをダウンロードおよび共有。
- 編集前に検証を強制することで不安定なエージェントループを強化
- 繰り返し発生する修正を再利用可能な Genes と Capsules としてエンコード
- レビューまたはコンプライアンスのための監査可能な進化イベントを生成
- シグナルや制約なしでサブシステム全体を書き直す
- プロトコルを汎用タスクランナーとして使用する
- EvolutionEvent を記録せずに変更を生成する
node index.jsnode index.js --reviewnode index.js --loopEVOLVE_STRATEGY=innovate node index.js --loop # 新機能を最大化
EVOLVE_STRATEGY=harden node index.js --loop # 安定性に注力
EVOLVE_STRATEGY=repair-only node index.js --loop # 緊急修正モード| 戦略 | Innovate | Optimize | Repair | 使用タイミング |
|---|---|---|---|---|
balanced (デフォルト) |
50% | 30% | 20% | 日常運用、着実な成長 |
innovate |
80% | 15% | 5% | システム安定、新機能を素早く出荷 |
harden |
20% | 40% | 40% | 大きな変更後、安定性に注力 |
repair-only |
0% | 20% | 80% | 緊急状態、全力修復 |
node src/ops/lifecycle.js start # バックグラウンドで evolver ループを起動
node src/ops/lifecycle.js stop # グレースフル停止 (SIGTERM -> SIGKILL)
node src/ops/lifecycle.js status # 実行状態を表示
node src/ops/lifecycle.js check # ヘルスチェック + 停滞時の自動再起動# EvoMap ネットワークからスキルをダウンロード
node index.js fetch --skill <skill_id>
# 出力ディレクトリを指定
node index.js fetch --skill <skill_id> --out=./my-skills/A2A_HUB_URL の設定が必要です。利用可能なスキルは evomap.ai でご覧ください。
cron/エージェントランナーから定期的なキープアライブ/ティックを実行する場合、クォートを最小限にしたシンプルな単一コマンドを推奨します。
推奨:
bash -lc 'node index.js --loop'cron ペイロード内で複数のシェルセグメントを組み合わせることは避けてください(例: ...; echo EXIT:$?)。ネストされたクォートが複数のシリアライズ/エスケープ層を通過すると壊れることがあります。
pm2 などのプロセスマネージャでも同じ原則が適用されます -- コマンドをシンプルにラップします:
pm2 start "bash -lc 'node index.js --loop'" --name evolver --cron-restart="0 */6 * * *"Evolver は、ネットワーク機能のために EvoMap Hub にオプションで接続できます。これはコア進化機能には必須ではありません。
- evomap.ai で登録して Node ID を取得します。
.envファイルに次を追加します:
A2A_HUB_URL=https://evomap.ai
A2A_NODE_ID=your_node_id_here| 機能 | 説明 |
|---|---|
| ハートビート | Hub との定期的なチェックイン。ノード状態を報告し、利用可能な作業を受信 |
| Skill Store | 再利用可能なスキルのダウンロードおよび公開 (node index.js fetch) |
| ワーカープール | ネットワークから進化タスクを受け入れて実行(ワーカープール参照) |
| 進化サークル | 共有コンテキストによる協調進化グループ |
| アセット公開 | Gene と Capsule をネットワークと共有 |
Hub が設定された状態で node index.js --loop を実行すると:
- 起動時に、evolver は Hub に登録するために
helloメッセージを送信します。 - ハートビートは 6 分ごとに送信されます(
HEARTBEAT_INTERVAL_MSで設定可能)。 - Hub は利用可能な作業、期限超過タスクのアラート、スキルストアのヒントで応答します。
WORKER_ENABLED=1の場合、ノードは機能を公開してタスクを取得します。
Hub 設定なしでは、evolver は完全にオフラインで実行されます -- すべてのコア進化機能はローカルで動作します。
WORKER_ENABLED=1 の場合、このノードは EvoMap ネットワーク のワーカーとして参加します。ハートビート経由で機能を公開し、ネットワークの利用可能な作業キューからタスクを取得します。タスクは進化サイクルの成功後の solidify 中にアトミックにクレームされます。
| 変数 | デフォルト | 説明 |
|---|---|---|
WORKER_ENABLED |
(未設定) | 1 に設定してワーカープールモードを有効化 |
WORKER_DOMAINS |
(空) | このワーカーが受け入れるタスクドメインのカンマ区切りリスト (例: repair,harden) |
WORKER_MAX_LOAD |
5 |
ハブ側スケジューリング用に公開される最大同時タスク容量(ローカルで強制される同時実行制限ではない) |
WORKER_ENABLED=1 WORKER_DOMAINS=repair,harden WORKER_MAX_LOAD=3 node index.js --loopevomap.ai のダッシュボードにはノード詳細ページに「Worker」トグルがあります。両者の関係は次のとおりです:
| 制御 | スコープ | 動作 |
|---|---|---|
WORKER_ENABLED=1 (環境変数) |
ローカル | ローカル evolver デーモンにハートビートでワーカーメタデータを含めてタスクを受け入れるよう指示 |
| Website トグル | Hub 側 | Hub にこのノードへタスクをディスパッチするかどうかを指示 |
ノードがネットワークからタスクを受け取って実行するには両方が有効である必要があります。どちらかがオフの場合、ノードはネットワークから作業を取得しません。推奨フロー:
.envにWORKER_ENABLED=1を設定し、node index.js --loopを開始します。- evomap.ai に移動し、自分のノードを見つけて Worker トグルをオンにします。
このリポジトリには GEP (Genome Evolution Protocol) に基づくプロトコル制約付きプロンプトモードが含まれています。
- 構造化アセットは
assets/gep/にあります:assets/gep/genes.jsonassets/gep/capsules.jsonassets/gep/events.jsonl
- セレクタロジックは抽出されたシグナルを使用して既存の Gene/Capsule を優先し、プロンプトで JSON セレクタ決定を発行します。
- 制約: ドキュメントで許可されるのは DNA 絵文字のみ。他のすべての絵文字は禁止。
Evolver は環境非依存になるよう設計されています。
| 変数 | 説明 | デフォルト |
|---|---|---|
EVOLVE_STRATEGY |
進化戦略プリセット (balanced / innovate / harden / repair-only) |
balanced |
A2A_HUB_URL |
EvoMap Hub URL | (未設定、オフラインモード) |
A2A_NODE_ID |
ネットワーク上のノードアイデンティティ | (デバイスフィンガープリントから自動生成) |
HEARTBEAT_INTERVAL_MS |
Hub ハートビート間隔 | 360000 (6 分) |
MEMORY_DIR |
メモリファイルのパス | ./memory |
EVOLVE_REPORT_TOOL |
結果報告用のツール名 | message |
コアコードを変更せずに、ローカル設定(例: レポートに message の代わりに feishu-card を使用)を注入できます。
方法 1: 環境変数
.env ファイルに EVOLVE_REPORT_TOOL を設定:
EVOLVE_REPORT_TOOL=feishu-card方法 2: 動的検出
スクリプトは、互換性のあるローカルスキル(skills/feishu-card など)がワークスペースに存在するかを自動的に検出し、それに応じて動作をアップグレードします。
evolver が持続的な失敗(失敗ループまたは高い失敗率での繰り返しエラー)を検出すると、サニタイズされた環境情報とログで GitHub issue を上流リポジトリに自動的にファイルできます。すべての機密データ(トークン、ローカルパス、メールなど)は送信前に編集されます。
| 変数 | デフォルト | 説明 |
|---|---|---|
EVOLVER_AUTO_ISSUE |
true |
自動 issue 報告の有効/無効 |
EVOLVER_ISSUE_REPO |
autogame-17/capability-evolver |
ターゲット GitHub リポジトリ (owner/repo) |
EVOLVER_ISSUE_COOLDOWN_MS |
86400000 (24h) |
同じエラーシグネチャのクールダウン期間 |
EVOLVER_ISSUE_MIN_STREAK |
5 |
トリガーする最小連続失敗ストリーク |
repo スコープを持つ GITHUB_TOKEN(または GH_TOKEN / GITHUB_PAT)が必要です。トークンが利用できない場合、機能は静かにスキップされます。
このセクションでは、Evolver の実行境界と信頼モデルについて説明します。
| コンポーネント | 動作 | シェルコマンドを実行? |
|---|---|---|
src/evolve.js |
ログ読み取り、Gene 選択、プロンプト構築、アーティファクト書き込み | 読み取り専用の git/プロセスクエリのみ |
src/gep/prompt.js |
GEP プロトコルプロンプト文字列を組み立て | いいえ(純粋なテキスト生成) |
src/gep/selector.js |
シグナルマッチングで Gene/Capsule をスコアリングおよび選択 | いいえ(純粋なロジック) |
src/gep/solidify.js |
Gene の validation コマンド経由でパッチを検証 |
はい(下記参照) |
index.js (ループ復旧) |
クラッシュ時に sessions_spawn(...) テキストを stdout に出力 |
いいえ(テキスト出力のみ;実行はホストランタイムに依存) |
solidify.js は Gene の validation 配列に列挙されたコマンドを実行します。任意のコマンド実行を防ぐため、すべての検証コマンドは安全性チェック (isValidationCommandAllowed) によってゲートされています:
- プレフィックスホワイトリスト:
node、npm、npxで始まるコマンドのみ許可。 - コマンド置換なし: バッククォートと
$(...)はコマンド文字列のどこでも拒否。 - シェル演算子なし: 引用されたコンテンツを削除した後、
;、&、|、>、<は拒否。 - タイムアウト: 各コマンドは 180 秒に制限。
- スコープ実行: コマンドは
cwdをリポジトリルートに設定して実行。
scripts/a2a_ingest.js 経由で取り込まれた外部 Gene/Capsule アセットは、分離された候補ゾーンにステージングされます。ローカルストア (scripts/a2a_promote.js) への昇格には次が必要です:
- 明示的な
--validatedフラグ(オペレータが最初にアセットを検証する必要がある)。 - Gene の場合: すべての
validationコマンドは昇格前に同じ安全性チェックに対して監査されます。安全でないコマンドは昇格を拒否されます。 - Gene 昇格は、同じ ID の既存のローカル Gene を決して上書きしません。
index.js と evolve.js の sessions_spawn(...) 文字列は、直接の関数呼び出しではなく、stdout へのテキスト出力です。これらが解釈されるかどうかはホストランタイム(例: OpenClaw プラットフォーム)に依存します。evolver 自体は sessions_spawn を実行可能コードとして呼び出しません。
このリポジトリはパブリックディストリビューションです。
- パブリック出力のビルド:
npm run build - パブリック出力の公開:
npm run publish:public - ドライラン:
DRY_RUN=true npm run publish:public
必須環境変数:
PUBLIC_REMOTE(デフォルト:public)PUBLIC_REPO(例:EvoMap/evolver)PUBLIC_OUT_DIR(デフォルト:dist-public)PUBLIC_USE_BUILD_OUTPUT(デフォルト:true)
オプションの環境変数:
SOURCE_BRANCH(デフォルト:main)PUBLIC_BRANCH(デフォルト:main)RELEASE_TAG(例:v1.0.41)RELEASE_TITLE(例:v1.0.41 - GEP protocol)RELEASE_NOTESまたはRELEASE_NOTES_FILE- GitHub Release 作成用の
GITHUB_TOKEN(またはGH_TOKEN/GITHUB_PAT) RELEASE_SKIP(GitHub Release の作成をスキップするにはtrue;デフォルトは作成)RELEASE_USE_GH(GitHub API の代わりにghCLI を使用するにはtrue)PUBLIC_RELEASE_ONLY(既存のタグに対して Release のみを作成するにはtrue;公開なし)
MAJOR.MINOR.PATCH
- MAJOR: 互換性のない変更
- MINOR: 後方互換性のある機能
- PATCH: 後方互換性のあるバグ修正
完全なリリース履歴は GitHub Releases をご覧ください。
これはコードを自動的に編集しますか? いいえ。Evolver は進化をガイドするプロトコル束縛のプロンプトとアセットを生成します。ソースコードを直接変更することはありません。Evolver ができること・できないこと を参照してください。
node index.js --loop を実行したが、テキストを出力し続けるだけです。動作していますか?
はい。スタンドアロンモードでは、evolver は GEP プロンプトを生成して stdout に出力します。変更を自動的に適用すると期待した場合は、出力を解釈する OpenClaw のようなホストランタイムが必要です。または、--review モードを使用して各進化ステップを手動でレビューして適用します。
EvoMap Hub への接続は必要ですか? いいえ。すべてのコア進化機能はオフラインで動作します。Hub 接続は、スキルストア、ワーカープール、進化リーダーボードなどのネットワーク機能にのみ必要です。EvoMap Hub への接続 を参照してください。
すべての GEP アセットを使用する必要がありますか? いいえ。デフォルトの Gene から始めて、時間をかけて拡張できます。
本番環境で安全ですか? レビューモードと検証ステップを使用してください。ライブパッチャーではなく、安全性重視の進化ツールとして扱ってください。セキュリティモデル を参照してください。
このリポジトリはどこにクローンすべきですか? 任意のディレクトリにクローンします。OpenClaw を使用する場合は、ホストランタイムが evolver の stdout にアクセスできるよう、OpenClaw ワークスペースにクローンします。スタンドアロン使用の場合、任意の場所で動作します。
- 1 分間のデモワークフローを追加
- 代替案との比較表を追加
- onthebigtree -- evomap 進化ネットワークの作成にインスピレーションを与えた。3 つのランタイムおよびロジックバグを修正(PR #25)。ホスト名プライバシーハッシュ、ポータブルな検証パス、デッドコードクリーンアップに貢献(PR #26)。
- lichunr -- 私たちのコンピュートネットワークが無料で使用するために数千ドル相当のトークンを提供。
- shinjiyu -- 多数のバグレポートを提出し、スニペット付きタグを持つ多言語シグナル抽出に貢献(PR #112)。
- voidborne-d -- 11 の新しい認証情報編集パターンでブロードキャスト前のサニタイズを強化(PR #107)。strategy、validationReport、envFingerprint のために 45 のテストを追加(PR #139)。
- blackdogcat -- 欠落していた dotenv 依存関係を修正し、インテリジェントな CPU 負荷閾値自動計算を実装(PR #144)。
- LKCY33 -- .env 読み込みパスとディレクトリ権限を修正(PR #21)。
- hendrixAIDev -- ドライランモードで performMaintenance() が実行される問題を修正(PR #68)。
- toller892 -- events.jsonl forbidden_paths バグを独立に特定して報告(PR #149)。
- WeZZard -- SKILL.md に A2A_NODE_ID セットアップガイドを追加し、NODE_ID が明示的に設定されていない場合に a2aProtocol でコンソール警告を追加(PR #164)。
- Golden-Koi -- README に cron/外部ランナーキープアライブのベストプラクティスを追加(PR #167)。
- upbit -- evolver および evomap 技術の普及に重要な役割を果たした。
- Chi Jianqiang -- プロモーションとユーザー体験の改善に多大な貢献。
コア進化エンジンモジュールは、知的財産を保護するために難読化された形式で配布されます。ソース: EvoMap/evolver。
