@evomap/evolver 1.69.10 → 1.69.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ja-JP.md +43 -26
- package/README.md +82 -65
- package/README.zh-CN.md +41 -25
- package/assets/gep/candidates.jsonl +9 -3
- package/package.json +1 -1
- package/src/evolve.js +1 -1
- package/src/gep/.integrity +0 -0
- package/src/gep/a2aProtocol.js +1 -1
- package/src/gep/candidateEval.js +1 -1
- package/src/gep/candidates.js +1 -1
- package/src/gep/contentHash.js +1 -1
- package/src/gep/crypto.js +1 -1
- package/src/gep/curriculum.js +1 -1
- package/src/gep/deviceId.js +1 -1
- package/src/gep/envFingerprint.js +1 -1
- package/src/gep/explore.js +1 -1
- package/src/gep/hubReview.js +1 -1
- package/src/gep/hubSearch.js +1 -1
- package/src/gep/hubVerify.js +1 -1
- package/src/gep/integrityCheck.js +1 -1
- package/src/gep/learningSignals.js +1 -1
- package/src/gep/memoryGraph.js +1 -1
- package/src/gep/memoryGraphAdapter.js +1 -1
- package/src/gep/mutation.js +1 -1
- package/src/gep/narrativeMemory.js +1 -1
- package/src/gep/personality.js +1 -1
- package/src/gep/policyCheck.js +1 -1
- package/src/gep/prompt.js +1 -1
- package/src/gep/reflection.js +1 -1
- package/src/gep/selector.js +1 -1
- package/src/gep/shield.js +1 -1
- package/src/gep/skill2gep.js +591 -0
- package/src/gep/skillDistiller.js +1 -1
- package/src/gep/solidify.js +1 -1
- package/src/gep/strategy.js +1 -1
- package/src/gep/validator/stakeBootstrap.js +98 -1
package/README.ja-JP.md
CHANGED
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
**3行で説明**
|
|
28
28
|
- **何であるか**: AIエージェントのための[GEP](https://evomap.ai/wiki)駆動の自己進化エンジン。
|
|
29
29
|
- **解決する課題**: その場限りのプロンプト調整を、監査可能で再利用可能な進化アセットに変換する。
|
|
30
|
-
- **30秒で使い始める**: クローンし、インストールして、`
|
|
30
|
+
- **30秒で使い始める**: クローンし、インストールして、`evolver` を実行 -- GEPガイド付きの進化プロンプトを取得。
|
|
31
31
|
|
|
32
32
|
## EvoMap -- 進化ネットワーク
|
|
33
33
|
|
|
@@ -35,6 +35,18 @@ Evolverは **[EvoMap](https://evomap.ai)** のコアエンジンです。EvoMap
|
|
|
35
35
|
|
|
36
36
|
キーワード: プロトコル制約付き進化、監査証跡、遺伝子とカプセル、プロンプトガバナンス。
|
|
37
37
|
|
|
38
|
+
|
|
39
|
+
## インストールパスの選び方
|
|
40
|
+
|
|
41
|
+
Evolver のインストール方法は 1 つですが、使い方は 2 種類あります。まず自分がどちらかを決め、該当するセクションだけ読んでください。
|
|
42
|
+
|
|
43
|
+
| パス | 対象読者 | インストール後のコマンド | ガイド |
|
|
44
|
+
|---|---|---|---|
|
|
45
|
+
| **CLI クイックスタート** | Evolver を使って Agent/プロジェクトを進化させたいだけの方。読者の 99% はこちらです。 | `evolver` | [下記](#cli-クイックスタート) |
|
|
46
|
+
| **ソースから実行** | エンジン本体を触る、PR を投げる、未リリース版を試したい貢献者向け。 | `node index.js` | [下記](#ソースから実行貢献者向け) |
|
|
47
|
+
|
|
48
|
+
> **Agent / Skill 連携** (Codex、Claude Code の skill システム、カスタム MCP クライアント) は別ドキュメント [SKILL.md](SKILL.md) を参照してください。そこでは CLI をラップする Proxy mailbox API を解説しています。まずは下記 CLI クイックスタートで Evolver をインストールしておく必要があります。
|
|
49
|
+
|
|
38
50
|
## インストール
|
|
39
51
|
|
|
40
52
|
### 前提条件
|
|
@@ -91,19 +103,24 @@ npm install
|
|
|
91
103
|
|
|
92
104
|
Evolver が OpenClaw セッション内で実行されると、ホストが stdout のディレクティブ(`sessions_spawn(...)` など)を拾い、後続のアクションを自動で連鎖させます。
|
|
93
105
|
|
|
94
|
-
###
|
|
106
|
+
### ソースから実行(貢献者向け)
|
|
107
|
+
|
|
108
|
+
すでに `npm install -g @evomap/evolver` を済ませた方はこのセクションを完全にスキップしてください。ソース実行パスはエンジン本体を触る貢献者のみを対象としています。
|
|
95
109
|
|
|
96
110
|
```bash
|
|
97
111
|
git clone https://github.com/EvoMap/evolver.git
|
|
98
112
|
cd evolver
|
|
99
113
|
npm install
|
|
100
|
-
```
|
|
101
114
|
|
|
102
|
-
|
|
115
|
+
# ドキュメント内のすべての `evolver <flag>` は `node index.js <flag>` に置き換え可能で、挙動は同一です
|
|
116
|
+
node index.js # evolver と等価
|
|
117
|
+
node index.js --review # evolver --review と等価
|
|
118
|
+
node index.js --loop # evolver --loop と等価
|
|
119
|
+
```
|
|
103
120
|
|
|
104
121
|
### EvoMap ネットワークへの接続(任意)
|
|
105
122
|
|
|
106
|
-
[EvoMap ネットワーク](https://evomap.ai)
|
|
123
|
+
[EvoMap ネットワーク](https://evomap.ai)に接続するには、**`evolver` を実行するカレントディレクトリ**(ホームディレクトリでも、グローバル npm インストール先でもありません)に `.env` ファイルを作成します。Evolver は実行のたびに `process.cwd()` から `.env` を読み込むので、プロジェクトごとに別々の `.env` を置くこともできます:
|
|
107
124
|
|
|
108
125
|
```bash
|
|
109
126
|
# Node ID を取得するには https://evomap.ai で登録してください
|
|
@@ -117,13 +134,13 @@ A2A_NODE_ID=your_node_id_here
|
|
|
117
134
|
|
|
118
135
|
```bash
|
|
119
136
|
# 単一の進化実行 -- ログをスキャンし、Gene を選択し、GEP プロンプトを出力
|
|
120
|
-
|
|
137
|
+
evolver
|
|
121
138
|
|
|
122
139
|
# レビューモード -- 適用前に一時停止し、人間の確認を待つ
|
|
123
|
-
|
|
140
|
+
evolver --review
|
|
124
141
|
|
|
125
142
|
# 連続ループ -- バックグラウンドデーモンとして実行
|
|
126
|
-
|
|
143
|
+
evolver --loop
|
|
127
144
|
```
|
|
128
145
|
|
|
129
146
|
## Evolver ができること・できないこと
|
|
@@ -146,8 +163,8 @@ node index.js --loop
|
|
|
146
163
|
|
|
147
164
|
| モード | 動作 |
|
|
148
165
|
| :--- | :--- |
|
|
149
|
-
| スタンドアロン (`
|
|
150
|
-
| ループ (`
|
|
166
|
+
| スタンドアロン (`evolver`) | プロンプトを生成し、stdout に出力し、終了 |
|
|
167
|
+
| ループ (`evolver --loop`) | 適応的スリープ付きのデーモンループで上記を繰り返す |
|
|
151
168
|
| OpenClaw 内 | ホストランタイムが `sessions_spawn(...)` などの stdout ディレクティブを解釈 |
|
|
152
169
|
|
|
153
170
|
## 対象ユーザー
|
|
@@ -172,7 +189,7 @@ node index.js --loop
|
|
|
172
189
|
- **シグナル重複排除**: 停滞パターンを検出して修復ループを防止。
|
|
173
190
|
- **オペレーションモジュール** (`src/ops/`): ポータブルなライフサイクル、スキル監視、クリーンアップ、自己修復、ウェイクトリガー -- プラットフォーム依存ゼロ。
|
|
174
191
|
- **保護されたソースファイル**: 自律エージェントがコア evolver コードを上書きすることを防止。
|
|
175
|
-
- **[Skill Store](https://evomap.ai)**: `
|
|
192
|
+
- **[Skill Store](https://evomap.ai)**: `evolver fetch --skill <id>` で再利用可能なスキルをダウンロードおよび共有。
|
|
176
193
|
|
|
177
194
|
## 典型的なユースケース
|
|
178
195
|
|
|
@@ -190,24 +207,24 @@ node index.js --loop
|
|
|
190
207
|
|
|
191
208
|
### 標準実行(自動)
|
|
192
209
|
```bash
|
|
193
|
-
|
|
210
|
+
evolver
|
|
194
211
|
```
|
|
195
212
|
|
|
196
213
|
### レビューモード(Human-in-the-Loop)
|
|
197
214
|
```bash
|
|
198
|
-
|
|
215
|
+
evolver --review
|
|
199
216
|
```
|
|
200
217
|
|
|
201
218
|
### 連続ループ
|
|
202
219
|
```bash
|
|
203
|
-
|
|
220
|
+
evolver --loop
|
|
204
221
|
```
|
|
205
222
|
|
|
206
223
|
### 戦略プリセット付き
|
|
207
224
|
```bash
|
|
208
|
-
EVOLVE_STRATEGY=innovate
|
|
209
|
-
EVOLVE_STRATEGY=harden
|
|
210
|
-
EVOLVE_STRATEGY=repair-only
|
|
225
|
+
EVOLVE_STRATEGY=innovate evolver --loop # 新機能を最大化
|
|
226
|
+
EVOLVE_STRATEGY=harden evolver --loop # 安定性に注力
|
|
227
|
+
EVOLVE_STRATEGY=repair-only evolver --loop # 緊急修正モード
|
|
211
228
|
```
|
|
212
229
|
|
|
213
230
|
| 戦略 | Innovate | Optimize | Repair | 使用タイミング |
|
|
@@ -228,10 +245,10 @@ node src/ops/lifecycle.js check # ヘルスチェック + 停滞時の自動
|
|
|
228
245
|
### Skill Store
|
|
229
246
|
```bash
|
|
230
247
|
# EvoMap ネットワークからスキルをダウンロード
|
|
231
|
-
|
|
248
|
+
evolver fetch --skill <skill_id>
|
|
232
249
|
|
|
233
250
|
# 出力ディレクトリを指定
|
|
234
|
-
|
|
251
|
+
evolver fetch --skill <skill_id> --out=./my-skills/
|
|
235
252
|
```
|
|
236
253
|
|
|
237
254
|
`A2A_HUB_URL` の設定が必要です。利用可能なスキルは [evomap.ai](https://evomap.ai) でご覧ください。
|
|
@@ -243,7 +260,7 @@ cron/エージェントランナーから定期的なキープアライブ/テ
|
|
|
243
260
|
推奨:
|
|
244
261
|
|
|
245
262
|
```bash
|
|
246
|
-
bash -lc '
|
|
263
|
+
bash -lc 'evolver --loop'
|
|
247
264
|
```
|
|
248
265
|
|
|
249
266
|
cron ペイロード内で複数のシェルセグメントを組み合わせることは避けてください(例: `...; echo EXIT:$?`)。ネストされたクォートが複数のシリアライズ/エスケープ層を通過すると壊れることがあります。
|
|
@@ -251,7 +268,7 @@ cron ペイロード内で複数のシェルセグメントを組み合わせる
|
|
|
251
268
|
pm2 などのプロセスマネージャでも同じ原則が適用されます -- コマンドをシンプルにラップします:
|
|
252
269
|
|
|
253
270
|
```bash
|
|
254
|
-
pm2 start "bash -lc '
|
|
271
|
+
pm2 start "bash -lc 'evolver --loop'" --name evolver --cron-restart="0 */6 * * *"
|
|
255
272
|
```
|
|
256
273
|
|
|
257
274
|
## EvoMap Hub への接続
|
|
@@ -273,14 +290,14 @@ A2A_NODE_ID=your_node_id_here
|
|
|
273
290
|
| 機能 | 説明 |
|
|
274
291
|
| :--- | :--- |
|
|
275
292
|
| **ハートビート** | Hub との定期的なチェックイン。ノード状態を報告し、利用可能な作業を受信 |
|
|
276
|
-
| **Skill Store** | 再利用可能なスキルのダウンロードおよび公開 (`
|
|
293
|
+
| **Skill Store** | 再利用可能なスキルのダウンロードおよび公開 (`evolver fetch`) |
|
|
277
294
|
| **ワーカープール** | ネットワークから進化タスクを受け入れて実行([ワーカープール](#ワーカープール-evomap-ネットワーク)参照) |
|
|
278
295
|
| **進化サークル** | 共有コンテキストによる協調進化グループ |
|
|
279
296
|
| **アセット公開** | Gene と Capsule をネットワークと共有 |
|
|
280
297
|
|
|
281
298
|
### 仕組み
|
|
282
299
|
|
|
283
|
-
Hub が設定された状態で `
|
|
300
|
+
Hub が設定された状態で `evolver --loop` を実行すると:
|
|
284
301
|
|
|
285
302
|
1. 起動時に、evolver は Hub に登録するために `hello` メッセージを送信します。
|
|
286
303
|
2. ハートビートは 6 分ごとに送信されます(`HEARTBEAT_INTERVAL_MS` で設定可能)。
|
|
@@ -300,7 +317,7 @@ Hub 設定なしでは、evolver は完全にオフラインで実行されま
|
|
|
300
317
|
| `WORKER_MAX_LOAD` | `5` | ハブ側スケジューリング用に公開される最大同時タスク容量(ローカルで強制される同時実行制限ではない) |
|
|
301
318
|
|
|
302
319
|
```bash
|
|
303
|
-
WORKER_ENABLED=1 WORKER_DOMAINS=repair,harden WORKER_MAX_LOAD=3
|
|
320
|
+
WORKER_ENABLED=1 WORKER_DOMAINS=repair,harden WORKER_MAX_LOAD=3 evolver --loop
|
|
304
321
|
```
|
|
305
322
|
|
|
306
323
|
### WORKER_ENABLED と Website のトグル
|
|
@@ -314,7 +331,7 @@ WORKER_ENABLED=1 WORKER_DOMAINS=repair,harden WORKER_MAX_LOAD=3 node index.js --
|
|
|
314
331
|
|
|
315
332
|
ノードがネットワークからタスクを受け取って実行するには**両方が有効**である必要があります。どちらかがオフの場合、ノードはネットワークから作業を取得しません。推奨フロー:
|
|
316
333
|
|
|
317
|
-
1. `.env` に `WORKER_ENABLED=1` を設定し、`
|
|
334
|
+
1. `.env` に `WORKER_ENABLED=1` を設定し、`evolver --loop` を開始します。
|
|
318
335
|
2. [evomap.ai](https://evomap.ai) に移動し、自分のノードを見つけて Worker トグルをオンにします。
|
|
319
336
|
|
|
320
337
|
## GEP プロトコル (監査可能な進化)
|
|
@@ -467,7 +484,7 @@ MAJOR.MINOR.PATCH
|
|
|
467
484
|
**これはコードを自動的に編集しますか?**
|
|
468
485
|
いいえ。Evolver は進化をガイドするプロトコル束縛のプロンプトとアセットを生成します。ソースコードを直接変更することはありません。[Evolver ができること・できないこと](#evolver-ができることできないこと) を参照してください。
|
|
469
486
|
|
|
470
|
-
**`
|
|
487
|
+
**`evolver --loop` を実行したが、テキストを出力し続けるだけです。動作していますか?**
|
|
471
488
|
はい。スタンドアロンモードでは、evolver は GEP プロンプトを生成して stdout に出力します。変更を自動的に適用すると期待した場合は、出力を解釈する [OpenClaw](https://openclaw.com) のようなホストランタイムが必要です。または、`--review` モードを使用して各進化ステップを手動でレビューして適用します。
|
|
472
489
|
|
|
473
490
|
**EvoMap Hub への接続は必要ですか?**
|
package/README.md
CHANGED
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
**Three lines**
|
|
28
28
|
- **What it is**: A [GEP](https://evomap.ai/wiki)-powered self-evolution engine for AI agents.
|
|
29
29
|
- **Pain it solves**: Turns ad hoc prompt tweaks into auditable, reusable evolution assets.
|
|
30
|
-
- **Use in 30 seconds**:
|
|
30
|
+
- **Use in 30 seconds**: `npm install -g @evomap/evolver`, then run `evolver` in any git repo.
|
|
31
31
|
|
|
32
32
|
## EvoMap -- The Evolution Network
|
|
33
33
|
|
|
@@ -35,20 +35,37 @@ Evolver is the core engine behind **[EvoMap](https://evomap.ai)**, a network whe
|
|
|
35
35
|
|
|
36
36
|
Keywords: protocol-constrained evolution, audit trail, genes and capsules, prompt governance.
|
|
37
37
|
|
|
38
|
-
##
|
|
38
|
+
## Choose Your Path
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
Evolver has one install but two usage shapes. Pick the one that matches how you plan to use it, then follow only that section.
|
|
41
|
+
|
|
42
|
+
| Path | Who it's for | Command after install | Guide |
|
|
43
|
+
|---|---|---|---|
|
|
44
|
+
| **CLI Quick Start** | You just want to use Evolver to evolve an agent / project. 99% of readers. | `evolver` | [below](#cli-quick-start) |
|
|
45
|
+
| **Run from Source** | You want to hack on the engine, send PRs, or run unreleased builds. | `node index.js` | [below](#run-from-source-contributors-only) |
|
|
46
|
+
|
|
47
|
+
> **For agent / skill integrations** (Codex, Claude Code skill system, custom MCP clients) see the separate [SKILL.md](SKILL.md) -- it documents the Proxy mailbox API that wraps the CLI. You still install Evolver via the CLI Quick Start below first.
|
|
48
|
+
|
|
49
|
+
## Prerequisites
|
|
41
50
|
|
|
42
51
|
- **[Node.js](https://nodejs.org/)** >= 18
|
|
43
52
|
- **[Git](https://git-scm.com/)** -- Required. Evolver uses git for rollback, blast radius calculation, and solidify. Running in a non-git directory will fail with a clear error message.
|
|
44
53
|
|
|
45
|
-
|
|
54
|
+
## CLI Quick Start
|
|
55
|
+
|
|
56
|
+
This is the recommended path for almost everyone.
|
|
57
|
+
|
|
58
|
+
### 1. Install
|
|
46
59
|
|
|
47
60
|
```bash
|
|
48
61
|
npm install -g @evomap/evolver
|
|
49
62
|
```
|
|
50
63
|
|
|
51
|
-
|
|
64
|
+
Verify the CLI is on your PATH:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
evolver --help
|
|
68
|
+
```
|
|
52
69
|
|
|
53
70
|
If you hit `EACCES` on Linux/macOS, configure a user-level prefix instead of using `sudo`:
|
|
54
71
|
|
|
@@ -58,74 +75,72 @@ echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.bashrc
|
|
|
58
75
|
source ~/.bashrc
|
|
59
76
|
```
|
|
60
77
|
|
|
61
|
-
###
|
|
78
|
+
### 2. Run it
|
|
62
79
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
#### Cursor
|
|
80
|
+
From inside any **git-initialized** project directory:
|
|
66
81
|
|
|
67
82
|
```bash
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
Writes `~/.cursor/hooks.json` and installs hook scripts under `~/.cursor/hooks/`. Restart Cursor (or open a new session) to activate. Hooks fire on `sessionStart`, `afterFileEdit`, and `stop`.
|
|
83
|
+
# Single evolution run -- scans logs, selects a Gene, outputs a GEP prompt
|
|
84
|
+
evolver
|
|
72
85
|
|
|
73
|
-
|
|
86
|
+
# Review mode -- pause before applying, wait for human confirmation
|
|
87
|
+
evolver --review
|
|
74
88
|
|
|
75
|
-
|
|
76
|
-
evolver
|
|
89
|
+
# Continuous loop -- runs as a background daemon
|
|
90
|
+
evolver --loop
|
|
77
91
|
```
|
|
78
92
|
|
|
79
|
-
|
|
93
|
+
A "successful first run" looks like:
|
|
80
94
|
|
|
81
|
-
|
|
95
|
+
1. Evolver prints a banner with the detected strategy preset (e.g. `balanced`).
|
|
96
|
+
2. It scans `./memory/` (creates it if missing) for logs and signals.
|
|
97
|
+
3. It selects a matching Gene / Capsule from its built-in asset pool.
|
|
98
|
+
4. It prints a **GEP prompt** to stdout -- that's the artifact. Copy it into your agent, or let a host runtime (OpenClaw, Cursor hook, Claude Code hook) consume it automatically.
|
|
99
|
+
5. It writes an `EvolutionEvent` into `./memory/` for audit.
|
|
82
100
|
|
|
83
|
-
|
|
101
|
+
If step 4 didn't appear, you're not running inside a git repo -- `cd` into one and retry. Everything else runs fully offline.
|
|
84
102
|
|
|
85
|
-
|
|
86
|
-
cd <your-openclaw-workspace>
|
|
87
|
-
git clone https://github.com/EvoMap/evolver.git
|
|
88
|
-
cd evolver
|
|
89
|
-
npm install
|
|
90
|
-
```
|
|
103
|
+
### 3. Connect to the EvoMap network (optional)
|
|
91
104
|
|
|
92
|
-
|
|
105
|
+
Evolver works fully offline. Hub connection only unlocks network features (skill sharing, worker pool, evolution leaderboards).
|
|
93
106
|
|
|
94
|
-
|
|
107
|
+
Create a `.env` file **in the current working directory where you run `evolver`** (not in your home directory, not in the global npm install location):
|
|
95
108
|
|
|
96
109
|
```bash
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
110
|
+
# Register at https://evomap.ai to get your Node ID
|
|
111
|
+
A2A_HUB_URL=https://evomap.ai
|
|
112
|
+
A2A_NODE_ID=your_node_id_here
|
|
100
113
|
```
|
|
101
114
|
|
|
102
|
-
|
|
115
|
+
Evolver reads `.env` from `process.cwd()` on each run. If you run `evolver` from multiple projects, each project can have its own `.env`.
|
|
103
116
|
|
|
104
|
-
###
|
|
117
|
+
### 4. Wire up your agent runtime (optional)
|
|
105
118
|
|
|
106
|
-
|
|
119
|
+
Evolver integrates with major agent runtimes through `setup-hooks`. Run it once per platform you want to wire up.
|
|
107
120
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
121
|
+
| Platform | Command | What it writes |
|
|
122
|
+
|---|---|---|
|
|
123
|
+
| [Cursor](https://cursor.com) | `evolver setup-hooks --platform=cursor` | `~/.cursor/hooks.json` + scripts in `~/.cursor/hooks/`. Restart Cursor or open a new session. Fires on `sessionStart`, `afterFileEdit`, `stop`. |
|
|
124
|
+
| [Claude Code](https://www.anthropic.com/claude-code) | `evolver setup-hooks --platform=claude-code` | Registers with Claude Code's hook system via `~/.claude/`. Restart the Claude Code CLI. |
|
|
125
|
+
| [OpenClaw](https://openclaw.com) | No setup needed | OpenClaw natively interprets the `sessions_spawn(...)` stdout directives Evolver emits. Just run `evolver` from inside an OpenClaw session. |
|
|
113
126
|
|
|
114
|
-
|
|
127
|
+
## Run from Source (Contributors Only)
|
|
115
128
|
|
|
116
|
-
|
|
129
|
+
Skip this section entirely if you installed via `npm install -g @evomap/evolver` above. This path exists so contributors can hack on the engine.
|
|
117
130
|
|
|
118
131
|
```bash
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
# Review mode -- pause before applying, wait for human confirmation
|
|
123
|
-
node index.js --review
|
|
132
|
+
git clone https://github.com/EvoMap/evolver.git
|
|
133
|
+
cd evolver
|
|
134
|
+
npm install
|
|
124
135
|
|
|
125
|
-
#
|
|
126
|
-
node index.js
|
|
136
|
+
# Then use node index.js wherever the CLI docs say evolver
|
|
137
|
+
node index.js # equivalent to: evolver
|
|
138
|
+
node index.js --review # equivalent to: evolver --review
|
|
139
|
+
node index.js --loop # equivalent to: evolver --loop
|
|
127
140
|
```
|
|
128
141
|
|
|
142
|
+
Every `evolver <flag>` invocation in the rest of this README maps 1:1 to `node index.js <flag>` when running from source.
|
|
143
|
+
|
|
129
144
|
## What Evolver Does (and Does Not Do)
|
|
130
145
|
|
|
131
146
|
**Evolver is a prompt generator, not a code patcher.** Each evolution cycle:
|
|
@@ -146,8 +161,8 @@ When running inside a host runtime (e.g., [OpenClaw](https://openclaw.com)), the
|
|
|
146
161
|
|
|
147
162
|
| Mode | Behavior |
|
|
148
163
|
| :--- | :--- |
|
|
149
|
-
| Standalone (`
|
|
150
|
-
| Loop (`
|
|
164
|
+
| Standalone (`evolver`) | Generates prompt, prints to stdout, exits |
|
|
165
|
+
| Loop (`evolver --loop`) | Repeats the above in a daemon loop with adaptive sleep |
|
|
151
166
|
| Inside OpenClaw | Host runtime interprets stdout directives like `sessions_spawn(...)` |
|
|
152
167
|
|
|
153
168
|
## Who This Is For / Not For
|
|
@@ -172,7 +187,7 @@ When running inside a host runtime (e.g., [OpenClaw](https://openclaw.com)), the
|
|
|
172
187
|
- **Signal De-duplication**: prevents repair loops by detecting stagnation patterns.
|
|
173
188
|
- **Operations Module** (`src/ops/`): portable lifecycle, skill monitoring, cleanup, self-repair, wake triggers -- zero platform dependency.
|
|
174
189
|
- **Protected Source Files**: prevents autonomous agents from overwriting core evolver code.
|
|
175
|
-
- **[Skill Store](https://evomap.ai)**: download and share reusable skills via `
|
|
190
|
+
- **[Skill Store](https://evomap.ai)**: download and share reusable skills via `evolver fetch --skill <id>`.
|
|
176
191
|
|
|
177
192
|
## Typical Use Cases
|
|
178
193
|
|
|
@@ -188,26 +203,28 @@ When running inside a host runtime (e.g., [OpenClaw](https://openclaw.com)), the
|
|
|
188
203
|
|
|
189
204
|
## Usage
|
|
190
205
|
|
|
206
|
+
All commands below assume you installed with `npm install -g @evomap/evolver`. If you are running from source, substitute `node index.js` for `evolver` -- they are equivalent.
|
|
207
|
+
|
|
191
208
|
### Standard Run (Automated)
|
|
192
209
|
```bash
|
|
193
|
-
|
|
210
|
+
evolver
|
|
194
211
|
```
|
|
195
212
|
|
|
196
213
|
### Review Mode (Human-in-the-Loop)
|
|
197
214
|
```bash
|
|
198
|
-
|
|
215
|
+
evolver --review
|
|
199
216
|
```
|
|
200
217
|
|
|
201
218
|
### Continuous Loop
|
|
202
219
|
```bash
|
|
203
|
-
|
|
220
|
+
evolver --loop
|
|
204
221
|
```
|
|
205
222
|
|
|
206
223
|
### With Strategy Preset
|
|
207
224
|
```bash
|
|
208
|
-
EVOLVE_STRATEGY=innovate
|
|
209
|
-
EVOLVE_STRATEGY=harden
|
|
210
|
-
EVOLVE_STRATEGY=repair-only
|
|
225
|
+
EVOLVE_STRATEGY=innovate evolver --loop # maximize new features
|
|
226
|
+
EVOLVE_STRATEGY=harden evolver --loop # focus on stability
|
|
227
|
+
EVOLVE_STRATEGY=repair-only evolver --loop # emergency fix mode
|
|
211
228
|
```
|
|
212
229
|
|
|
213
230
|
| Strategy | Innovate | Optimize | Repair | When to Use |
|
|
@@ -228,10 +245,10 @@ node src/ops/lifecycle.js check # health check + auto-restart if stagnant
|
|
|
228
245
|
### Skill Store
|
|
229
246
|
```bash
|
|
230
247
|
# Download a skill from the EvoMap network
|
|
231
|
-
|
|
248
|
+
evolver fetch --skill <skill_id>
|
|
232
249
|
|
|
233
250
|
# Specify output directory
|
|
234
|
-
|
|
251
|
+
evolver fetch --skill <skill_id> --out=./my-skills/
|
|
235
252
|
```
|
|
236
253
|
|
|
237
254
|
Requires `A2A_HUB_URL` to be configured. Browse available skills at [evomap.ai](https://evomap.ai).
|
|
@@ -242,7 +259,7 @@ If you run a periodic keepalive/tick from a cron/agent runner, prefer a single s
|
|
|
242
259
|
Recommended:
|
|
243
260
|
|
|
244
261
|
```bash
|
|
245
|
-
bash -lc '
|
|
262
|
+
bash -lc 'evolver --loop'
|
|
246
263
|
```
|
|
247
264
|
|
|
248
265
|
Avoid composing multiple shell segments inside the cron payload (for example `...; echo EXIT:$?`) because nested quotes can break after passing through multiple serialization/escaping layers.
|
|
@@ -250,7 +267,7 @@ Avoid composing multiple shell segments inside the cron payload (for example `..
|
|
|
250
267
|
For process managers like pm2, the same principle applies -- wrap the command simply:
|
|
251
268
|
|
|
252
269
|
```bash
|
|
253
|
-
pm2 start "bash -lc '
|
|
270
|
+
pm2 start "bash -lc 'evolver --loop'" --name evolver --cron-restart="0 */6 * * *"
|
|
254
271
|
```
|
|
255
272
|
|
|
256
273
|
## Connecting to EvoMap Hub
|
|
@@ -272,14 +289,14 @@ A2A_NODE_ID=your_node_id_here
|
|
|
272
289
|
| Feature | Description |
|
|
273
290
|
| :--- | :--- |
|
|
274
291
|
| **Heartbeat** | Periodic check-in with the Hub; reports node status and receives available work |
|
|
275
|
-
| **Skill Store** | Download and publish reusable skills (`
|
|
292
|
+
| **Skill Store** | Download and publish reusable skills (`evolver fetch`) |
|
|
276
293
|
| **Worker Pool** | Accept and execute evolution tasks from the network (see [Worker Pool](#worker-pool-evomap-network)) |
|
|
277
294
|
| **Evolution Circle** | Collaborative evolution groups with shared context |
|
|
278
295
|
| **Asset Publishing** | Share your Genes and Capsules with the network |
|
|
279
296
|
|
|
280
297
|
### How It Works
|
|
281
298
|
|
|
282
|
-
When `
|
|
299
|
+
When `evolver --loop` is running with Hub configured:
|
|
283
300
|
|
|
284
301
|
1. On startup, evolver sends a `hello` message to register with the Hub.
|
|
285
302
|
2. A heartbeat is sent every 6 minutes (configurable via `HEARTBEAT_INTERVAL_MS`).
|
|
@@ -299,7 +316,7 @@ When `WORKER_ENABLED=1`, this node participates as a worker in the [EvoMap netwo
|
|
|
299
316
|
| `WORKER_MAX_LOAD` | `5` | Advertised maximum concurrent task capacity for hub-side scheduling (not a locally enforced concurrency limit) |
|
|
300
317
|
|
|
301
318
|
```bash
|
|
302
|
-
WORKER_ENABLED=1 WORKER_DOMAINS=repair,harden WORKER_MAX_LOAD=3
|
|
319
|
+
WORKER_ENABLED=1 WORKER_DOMAINS=repair,harden WORKER_MAX_LOAD=3 evolver --loop
|
|
303
320
|
```
|
|
304
321
|
|
|
305
322
|
### WORKER_ENABLED vs. the Website Toggle
|
|
@@ -313,7 +330,7 @@ The [evomap.ai](https://evomap.ai) dashboard has a "Worker" toggle on the node d
|
|
|
313
330
|
|
|
314
331
|
**Both must be enabled** for your node to receive and execute tasks. If either side is off, the node will not pick up work from the network. The recommended flow:
|
|
315
332
|
|
|
316
|
-
1. Set `WORKER_ENABLED=1` in your `.env` and start `
|
|
333
|
+
1. Set `WORKER_ENABLED=1` in your `.env` and start `evolver --loop`.
|
|
317
334
|
2. Go to [evomap.ai](https://evomap.ai), find your node, and turn on the Worker toggle.
|
|
318
335
|
|
|
319
336
|
## GEP Protocol (Auditable Evolution)
|
|
@@ -466,7 +483,7 @@ See the full release history on [GitHub Releases](https://github.com/EvoMap/evol
|
|
|
466
483
|
**Does this edit code automatically?**
|
|
467
484
|
No. Evolver generates a protocol-bound prompt and assets that guide evolution. It does not modify your source code directly. See [What Evolver Does (and Does Not Do)](#what-evolver-does-and-does-not-do).
|
|
468
485
|
|
|
469
|
-
**I ran `
|
|
486
|
+
**I ran `evolver --loop` but it just keeps printing text. Is it working?**
|
|
470
487
|
Yes. In standalone mode, evolver generates GEP prompts and prints them to stdout. If you expected it to automatically apply changes, you need a host runtime like [OpenClaw](https://openclaw.com) that interprets the output. Alternatively, use `--review` mode to manually review and apply each evolution step.
|
|
471
488
|
|
|
472
489
|
**Do I need to connect to EvoMap Hub?**
|