evolclaw 2.8.3 → 3.1.0
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.md +21 -12
- package/bin/ec.js +29 -0
- package/dist/agents/baseagent-normalize.js +19 -0
- package/dist/agents/claude-runner.js +108 -46
- package/dist/agents/codex-runner.js +13 -14
- package/dist/agents/gemini-runner.js +15 -17
- package/dist/agents/kit-renderer.js +281 -0
- package/dist/agents/resolve.js +134 -0
- package/dist/aun/aid/agentmd.js +186 -0
- package/dist/aun/aid/client.js +134 -0
- package/dist/aun/aid/identity.js +159 -0
- package/dist/aun/aid/index.js +3 -0
- package/dist/aun/aid/lifecycle-log.js +33 -0
- package/dist/aun/aid/types.js +1 -0
- package/dist/aun/aid/validation.js +21 -0
- package/dist/aun/msg/group.js +293 -0
- package/dist/aun/msg/index.js +4 -0
- package/dist/aun/msg/p2p.js +147 -0
- package/dist/aun/msg/payload-type.js +27 -0
- package/dist/aun/msg/upload.js +98 -0
- package/dist/aun/outbox.js +138 -0
- package/dist/aun/rpc/caller.js +42 -0
- package/dist/aun/rpc/connection.js +34 -0
- package/dist/aun/rpc/index.js +2 -0
- package/dist/aun/storage/download.js +29 -0
- package/dist/aun/storage/index.js +3 -0
- package/dist/aun/storage/manage.js +10 -0
- package/dist/aun/storage/upload.js +35 -0
- package/dist/channels/aun.js +1340 -349
- package/dist/channels/dingtalk.js +59 -5
- package/dist/channels/feishu.js +381 -32
- package/dist/channels/qqbot.js +68 -12
- package/dist/channels/wechat.js +63 -4
- package/dist/channels/wecom.js +59 -5
- package/dist/cli/agent.js +800 -0
- package/dist/cli/bench.js +1219 -0
- package/dist/cli/index.js +4513 -0
- package/dist/{utils → cli}/init-channel.js +211 -621
- package/dist/cli/init.js +178 -0
- package/dist/cli/link-rules.js +245 -0
- package/dist/cli/net-check.js +640 -0
- package/dist/cli/watch-msg.js +589 -0
- package/dist/config-store.js +645 -0
- package/dist/core/{agent-loader.js → baseagent-loader.js} +6 -12
- package/dist/core/channel-loader.js +176 -12
- package/dist/core/command-handler.js +883 -848
- package/dist/core/evolagent-registry.js +191 -371
- package/dist/core/evolagent.js +202 -238
- package/dist/core/interaction-router.js +52 -5
- package/dist/core/message/im-renderer.js +486 -0
- package/dist/core/message/items-formatter.js +68 -0
- package/dist/core/message/message-bridge.js +109 -56
- package/dist/core/message/message-log.js +93 -0
- package/dist/core/message/message-processor.js +430 -212
- package/dist/core/message/message-queue.js +13 -6
- package/dist/core/permission.js +116 -11
- package/dist/core/session/adapters/codex-session-file-adapter.js +24 -2
- package/dist/core/session/session-fs-store.js +230 -0
- package/dist/core/session/session-manager.js +740 -777
- package/dist/core/session/session-mapper.js +87 -0
- package/dist/core/trigger/manager.js +122 -0
- package/dist/core/trigger/parser.js +128 -0
- package/dist/core/trigger/scheduler.js +224 -0
- package/dist/data/error-dict.json +118 -0
- package/dist/eck/baseagent-caps.js +18 -0
- package/dist/eck/detect.js +47 -0
- package/dist/eck/init.js +77 -0
- package/dist/eck/rules-loader.js +28 -0
- package/dist/index.js +560 -283
- package/dist/ipc.js +49 -0
- package/dist/net-check.js +640 -0
- package/dist/paths.js +73 -9
- package/dist/types.js +8 -2
- package/dist/utils/aid-lifecycle-log.js +33 -0
- package/dist/utils/atomic-write.js +89 -0
- package/dist/utils/channel-helpers.js +46 -0
- package/dist/utils/cross-platform.js +17 -26
- package/dist/utils/error-utils.js +10 -2
- package/dist/utils/instance-registry.js +434 -0
- package/dist/utils/log-writer.js +217 -0
- package/dist/utils/logger.js +34 -77
- package/dist/utils/media-cache.js +23 -0
- package/dist/utils/npm-ops.js +163 -0
- package/dist/utils/process-introspect.js +122 -0
- package/dist/utils/stats.js +192 -0
- package/dist/watch-msg.js +544 -0
- package/evolclaw-install-aun.md +127 -47
- package/kits/docs/GUIDE.md +20 -0
- package/kits/docs/INDEX.md +52 -0
- package/kits/docs/aun/CHEATSHEET.md +17 -0
- package/kits/docs/aun/SYNC_PROTOCOL.md +15 -0
- package/kits/docs/channels/aun.md +25 -0
- package/kits/docs/channels/feishu.md +27 -0
- package/kits/docs/eck_templates/GUIDE.template.md +22 -0
- package/kits/docs/eck_templates/INDEX.template.md +28 -0
- package/kits/docs/eck_templates/path-registry.template.md +33 -0
- package/kits/docs/eck_templates/runtime.template.md +19 -0
- package/kits/docs/evolclaw/AGENT_CMD.md +31 -0
- package/kits/docs/evolclaw/MSG_GROUP.md +30 -0
- package/kits/docs/evolclaw/MSG_PRIVATE.md +25 -0
- package/kits/docs/evolclaw/self-summary.md +29 -0
- package/kits/docs/evolclaw/tools.md +25 -0
- package/kits/docs/identity/AID_PROFILE_SPEC.md +27 -0
- package/kits/docs/identity/PATH_OPS.md +16 -0
- package/kits/docs/identity/ROLE_DETAIL.md +20 -0
- package/kits/docs/identity/identity-tools.md +26 -0
- package/kits/docs/path-registry.md +43 -0
- package/kits/eck_manifest.json +95 -0
- package/kits/rules/01-overview.md +120 -0
- package/kits/rules/02-navigation.md +75 -0
- package/kits/rules/03-identity.md +34 -0
- package/kits/rules/04-relation.md +49 -0
- package/kits/rules/05-venue.md +45 -0
- package/kits/rules/06-channel.md +43 -0
- package/kits/templates/system-fragments/baseagent.md +2 -0
- package/kits/templates/system-fragments/channel.md +10 -0
- package/kits/templates/system-fragments/identity.md +12 -0
- package/kits/templates/system-fragments/relation.md +9 -0
- package/kits/templates/system-fragments/runtime.md +19 -0
- package/kits/templates/system-fragments/venue.md +5 -0
- package/package.json +10 -6
- package/data/evolclaw.sample.json +0 -60
- package/dist/agents/templates.js +0 -122
- package/dist/channels/aun-ops.js +0 -275
- package/dist/cli.js +0 -2178
- package/dist/config.js +0 -591
- package/dist/core/agent-registry.js +0 -450
- package/dist/core/evolagent-schema.js +0 -72
- package/dist/core/message/stream-flusher.js +0 -238
- package/dist/core/message/thought-emitter.js +0 -162
- package/dist/core/reload-hooks.js +0 -87
- package/dist/prompts/templates.js +0 -122
- package/dist/templates/prompts.md +0 -104
- package/dist/templates/skills.md +0 -66
- package/dist/utils/channel-fingerprint.js +0 -59
- package/dist/utils/error-dict.js +0 -63
- package/dist/utils/format.js +0 -32
- package/dist/utils/init.js +0 -645
- package/dist/utils/migrate-project.js +0 -122
- package/dist/utils/reload-hooks.js +0 -87
- package/dist/utils/stats-collector.js +0 -99
- package/dist/utils/upgrade.js +0 -100
package/evolclaw-install-aun.md
CHANGED
|
@@ -10,23 +10,29 @@ EvolClaw 是一个开源的 AI Agent 网关,将 Claude/Codex 等 AI 后端连
|
|
|
10
10
|
|
|
11
11
|
## 前置条件
|
|
12
12
|
|
|
13
|
-
- Node.js >= 18,npm >= 8
|
|
13
|
+
- Node.js >= 18,npm >= 8(使用 codex baseagent 时建议 >= 22.5 以获得完整 session 列表查询;低版本会自动降级为 rollout 文件查询)
|
|
14
|
+
- 一款 baseagent CLI:`claude` / `codex` / `gemini` 任一在 PATH 中
|
|
14
15
|
- 一个 AUN Agent ID(AID)——标识你的 Agent
|
|
15
|
-
- 一个 Owner AID
|
|
16
|
+
- 一个 Owner AID(可选)——接收欢迎消息和管理权限;不填则首次通信者自动绑定
|
|
16
17
|
|
|
17
18
|
---
|
|
18
19
|
|
|
19
20
|
## 安装步骤
|
|
20
21
|
|
|
22
|
+
> **⚠️ 给执行安装的 AI Agent**:本文档中所有破坏性命令(`evolclaw stop` / `evolclaw restart` / `rm -rf` / `evolclaw aid delete` 等)**必须先 `AskUserQuestion` 等用户明确回复后才能执行**,不要因为已经发出确认提示就默认 yes 自动跑。用户在打字的几秒内决定 "等等先别停",比事后回滚要省事得多。
|
|
23
|
+
|
|
21
24
|
### 步骤 1:检查环境
|
|
22
25
|
|
|
23
26
|
```bash
|
|
24
27
|
node --version # 需要 >= 18
|
|
25
28
|
npm --version # 需要 >= 8
|
|
29
|
+
which claude || which codex || which gemini # 至少一款 baseagent CLI
|
|
26
30
|
```
|
|
27
31
|
|
|
28
32
|
版本不满足请先升级:https://nodejs.org
|
|
29
33
|
|
|
34
|
+
baseagent CLI 缺失时可用 `npm install -g @anthropic-ai/claude-code` 安装 claude。
|
|
35
|
+
|
|
30
36
|
### 步骤 2:安装 EvolClaw
|
|
31
37
|
|
|
32
38
|
```bash
|
|
@@ -70,85 +76,144 @@ evolclaw status
|
|
|
70
76
|
|
|
71
77
|
- 输出表明未运行(`not running` / `stopped` / 无 PID)→ 直接进入下一步。
|
|
72
78
|
|
|
73
|
-
### 步骤 4
|
|
79
|
+
### 步骤 4:解析用户输入
|
|
80
|
+
|
|
81
|
+
用户在触发安装时通常用类似下面的格式提供配置信息(**Claude Code 必须按以下规则解析**):
|
|
74
82
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
83
|
+
```
|
|
84
|
+
安装 evolclaw(npm install -g evolclaw),读取包内的安装文档完成配置
|
|
85
|
+
你要使用的AID是:aibot.agentid.pub
|
|
86
|
+
你的主人AID是:elean.agentid.pub
|
|
87
|
+
你的昵称是:我是小艾
|
|
88
|
+
```
|
|
80
89
|
|
|
81
|
-
|
|
90
|
+
提取规则(每条都是"消息中有则用,无则不带 flag"):
|
|
82
91
|
|
|
83
|
-
|
|
92
|
+
| 用户消息模式 | 命令参数 |
|
|
93
|
+
|---|---|
|
|
94
|
+
| `你要使用的AID是:X` / `agent AID:X` / `bot AID is X` | 位置参数 `<aid>`(**必填**——若用户消息没提供,停下问用户) |
|
|
95
|
+
| `你的主人AID是:X` / `owner AID:X` / `owner is X` | `--owner X`(可选,缺则不带 flag,首次通信者自动绑定) |
|
|
96
|
+
| `你的昵称是:X` / `叫 X` / `name X` / `the bot is named X` | `--name "X"`(可选,缺则不带 flag,agent new 自动用 AID 首段) |
|
|
84
97
|
|
|
85
|
-
|
|
98
|
+
**注意**:`<aid>` 和 `--owner` 必须不同的 AID(Agent 需要独立身份,不能与 Owner 相同)。
|
|
86
99
|
|
|
87
|
-
|
|
100
|
+
`--description` **不从用户消息提取**,按步骤 5 流程生成候选让用户选择。
|
|
101
|
+
|
|
102
|
+
`--project`(agent 默认工作目录)需要单独询问用户,提供三个选项:
|
|
103
|
+
|
|
104
|
+
1. **推荐默认**:`~/evolclaw-projects/<aid 首段>`(EvolClaw 约定的默认工作区;若不存在会自动创建)
|
|
88
105
|
2. **当前 Claude Code 运行目录**:即本次会话启动 `claude` 的工作目录(通过 `pwd` 获取)——适合希望 bot 直接在当前项目里工作的场景
|
|
89
106
|
3. **自定义路径**:用户指定绝对路径(须是已存在的目录,或接受后自动创建)
|
|
90
107
|
|
|
91
108
|
示例提问:
|
|
92
109
|
|
|
93
|
-
> 请选择默认项目目录(
|
|
94
|
-
> 1) `~/projects
|
|
110
|
+
> 请选择默认项目目录(agent 默认工作目录):
|
|
111
|
+
> 1) `~/evolclaw-projects/<aid 首段>`(推荐)
|
|
95
112
|
> 2) 当前目录:`<pwd 输出>`
|
|
96
113
|
> 3) 自定义路径(请提供绝对路径)
|
|
97
114
|
|
|
98
115
|
用户未选择时,默认取选项 1。选项 3 需校验路径是绝对路径;目录不存在则 `mkdir -p` 创建。
|
|
99
116
|
|
|
100
|
-
### 步骤 5
|
|
117
|
+
### 步骤 5:生成 description 候选并让用户选择
|
|
118
|
+
|
|
119
|
+
Claude Code 基于已确定的 `<aid>` / `--name`(若已提取)和当前对话上下文,**生成 3 个不同侧重的简短中文描述**(每条 10-30 字):
|
|
120
|
+
|
|
121
|
+
- **候选 1(能力陈述)**:突出 agent 能做什么,例 `"EvolClaw 多模型 AI 助手"`
|
|
122
|
+
- **候选 2(服务对象)**:突出服务谁,例 `"<owner 名称>的 AI 私人助手"`
|
|
123
|
+
- **候选 3(风格化)**:拟人化或带性格的表述,例 `"可爱聪明的小艾,随叫随到"`
|
|
101
124
|
|
|
102
|
-
|
|
125
|
+
用 `AskUserQuestion`(或交互问答)让用户选择。选项含**4 项**:候选 1 / 2 / 3 / 跳过;用户也可输入"其他"自定义。
|
|
126
|
+
|
|
127
|
+
| 用户选择 | 命令参数 |
|
|
128
|
+
|---|---|
|
|
129
|
+
| 候选 1 / 2 / 3 | `--description "<对应候选>"` |
|
|
130
|
+
| 其他(自定义文本) | `--description "<用户输入>"` |
|
|
131
|
+
| 跳过 | 不带 `--description` flag |
|
|
132
|
+
|
|
133
|
+
### 步骤 6:写全局 defaults.json
|
|
103
134
|
|
|
104
135
|
```bash
|
|
105
|
-
evolclaw init --non-interactive
|
|
106
|
-
--default-path <用户选择的绝对路径> \
|
|
107
|
-
--channel aun \
|
|
108
|
-
--aun-aid <AID> \
|
|
109
|
-
--aun-owner <Owner AID>
|
|
136
|
+
evolclaw init --non-interactive
|
|
110
137
|
```
|
|
111
138
|
|
|
139
|
+
可选传 `--baseagent <claude|codex|gemini>` 显式指定;不传则取 PATH 中第一个可用项。
|
|
140
|
+
重装场景下需要覆盖已有 `defaults.json`,加 `--force`。
|
|
141
|
+
|
|
142
|
+
此命令仅创建 `$EVOLCLAW_HOME/agents/defaults.json`(`$EVOLCLAW_HOME` 默认 `~/.evolclaw`),不碰 AID 与渠道。
|
|
143
|
+
|
|
144
|
+
### 步骤 7:创建 agent
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
evolclaw agent new <aid> --non-interactive \
|
|
148
|
+
--project <用户选择的绝对路径> \
|
|
149
|
+
[--owner <Owner AID>] \
|
|
150
|
+
[--name "<昵称>"] \
|
|
151
|
+
[--description "<选定描述>"] \
|
|
152
|
+
[--baseagent <claude|codex|gemini>]
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
按步骤 4/5 的提取规则填入 flag——**省略未提取到的可选参数**,不要主动填默认值(agent new 内部会处理默认)。
|
|
156
|
+
|
|
112
157
|
此命令自动完成:
|
|
113
|
-
1. 创建配置文件 `~/.evolclaw/data/evolclaw.json`
|
|
114
|
-
2. 安装 `@agentunion/aun-node`
|
|
115
|
-
3. 创建 AID 密钥对(如本地不存在)
|
|
116
|
-
4. 下载 CA 根证书到 `~/.aun/CA/root/root.crt`
|
|
117
|
-
5. 写入初始 `agent.md`(`initialized: false`)
|
|
118
|
-
6. 写入配置(含 owner 字段)
|
|
119
158
|
|
|
120
|
-
|
|
159
|
+
1. 校验 AID 格式(多级域名,如 `mybot.agentid.pub`)
|
|
160
|
+
2. 创建 AID 密钥对(如本地不存在);下载 CA 根证书到 `~/.aun/CA/root/root.crt`
|
|
161
|
+
3. 创建 per-agent 配置文件 `$EVOLCLAW_HOME/agents/<aid>/config.json`(含 `initialized: false`)
|
|
162
|
+
4. 生成并签名上传 `agent.md` 到 AUN 网络
|
|
163
|
+
|
|
164
|
+
AUN 通道由 `agent.aid` 隐式驱动,不需要单独配 channel——`evolclaw start` 后即自动连接;首次连接成功并向 owner 发完欢迎消息后,`config.json` 中的 `initialized` 会被更新为 `true`。
|
|
165
|
+
|
|
166
|
+
### 步骤 8:启动前验证
|
|
121
167
|
|
|
122
168
|
读取配置文件确认关键字段:
|
|
123
169
|
|
|
124
170
|
```bash
|
|
125
|
-
cat
|
|
171
|
+
cat $EVOLCLAW_HOME/agents/<aid>/config.json
|
|
126
172
|
```
|
|
127
173
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
- `
|
|
174
|
+
检查关键字段:
|
|
175
|
+
|
|
176
|
+
- `aid` — 你的 AID
|
|
177
|
+
- `owners` — Owner AID 数组(可为空,留给自动绑定)
|
|
178
|
+
- `active_baseagent` — `claude` / `codex` / `gemini`
|
|
131
179
|
- `projects.defaultPath` — 项目路径(目录需存在)
|
|
132
|
-
- `channels
|
|
180
|
+
- `channels` — 数组,初始为空(AUN 隐式上线,无需在此配置)
|
|
181
|
+
- `initialized` — 应为 `false`(首次连接成功后由系统更新为 `true`)
|
|
182
|
+
|
|
183
|
+
> 注:config.json 还包含 `$schema_version`、`enabled`、`baseagents`、`chatmode`、`dispatch` 等字段,由 `agent new` 自动填入,无需手动检查。
|
|
133
184
|
|
|
134
185
|
如发现缺失或异常,向用户说明并提供修复方案。
|
|
135
186
|
|
|
136
|
-
### 步骤
|
|
187
|
+
### 步骤 9:启动服务
|
|
188
|
+
|
|
189
|
+
首次安装(服务未运行):
|
|
137
190
|
|
|
138
191
|
```bash
|
|
139
192
|
evolclaw start
|
|
140
193
|
```
|
|
141
194
|
|
|
142
|
-
|
|
195
|
+
若服务已在运行(升级/重装场景,步骤 3 已停止旧进程):
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
evolclaw restart
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### 步骤 10:验证运行状态
|
|
143
202
|
|
|
144
203
|
```bash
|
|
145
204
|
evolclaw status
|
|
146
|
-
|
|
205
|
+
evolclaw logs # 实时滚动日志,Ctrl+C 退出
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
或直接读最近日志(LogWriter 会切片归档,需要 `tail -F` 跨切片续接):
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
tail -F ~/.evolclaw/logs/evolclaw.log
|
|
147
212
|
```
|
|
148
213
|
|
|
149
214
|
日志中应出现:`[AUN] Connected as @<aid>`
|
|
150
215
|
|
|
151
|
-
|
|
216
|
+
如未出现或有错误,读取完整日志分析原因并提供修复建议(也可运行 `evolclaw diagnose` 快速检查配置和数据目录)。
|
|
152
217
|
|
|
153
218
|
---
|
|
154
219
|
|
|
@@ -156,9 +221,12 @@ tail -n 30 ~/.evolclaw/logs/evolclaw.log
|
|
|
156
221
|
|
|
157
222
|
EvolClaw 首次连接 AUN 网络时自动:
|
|
158
223
|
|
|
159
|
-
1. 检测
|
|
160
|
-
2. 若为 `false
|
|
161
|
-
|
|
224
|
+
1. 检测 `$EVOLCLAW_HOME/agents/<aid>/config.json` 中的 `initialized` 字段
|
|
225
|
+
2. 若为 `false`,且 `owners[0]` 已配置:
|
|
226
|
+
- 生成完整 agent.md(含基于 owner 的 display name)并发布到 AUN 网络
|
|
227
|
+
- 向 Owner 发送欢迎消息
|
|
228
|
+
- 把 `config.json` 中的 `initialized` 更新为 `true`
|
|
229
|
+
3. 若 `owners[]` 为空(自动绑定模式):跳过欢迎消息,`initialized` 维持 `false`;首次有人和该 agent 私聊时自动绑定为 owner,**自动绑定后立即补发欢迎消息**并把 `initialized` 置 `true`(订阅 `channel:owner-bound` 事件实现)
|
|
162
230
|
|
|
163
231
|
无需手动触发,连接成功后自动完成。
|
|
164
232
|
|
|
@@ -179,10 +247,10 @@ EvolClaw 首次连接 AUN 网络时自动:
|
|
|
179
247
|
## 常见问题
|
|
180
248
|
|
|
181
249
|
**Q: AID 已存在怎么办?**
|
|
182
|
-
`evolclaw
|
|
250
|
+
`evolclaw agent new` 会检测本地密钥,已存在则跳过创建(`alreadyExisted`)。如果 `agents/<aid>/config.json` 已存在,命令会失败;加 `--force` 可覆盖配置(AID 密钥保留;agent.md 会按当前 `--name` / `--description` 重新生成并重新上传)。
|
|
183
251
|
|
|
184
252
|
**Q: 启动失败怎么办?**
|
|
185
|
-
|
|
253
|
+
运行 `evolclaw logs` 实时滚动日志,或 `evolclaw diagnose` 检查配置和数据目录。
|
|
186
254
|
|
|
187
255
|
**Q: 如何重启/查看日志?**
|
|
188
256
|
```bash
|
|
@@ -192,8 +260,19 @@ evolclaw logs
|
|
|
192
260
|
|
|
193
261
|
**Q: 如何清理损坏的 AID 重新注册?**
|
|
194
262
|
```bash
|
|
195
|
-
|
|
196
|
-
|
|
263
|
+
evolclaw aid delete <aid> # 删本地密钥与证书
|
|
264
|
+
rm -rf $EVOLCLAW_HOME/agents/<aid> # 删 per-agent 配置
|
|
265
|
+
evolclaw agent new <aid> --non-interactive --project <abs path>
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
**Q: 想加飞书 / 微信 / 钉钉等 IM 通道?**
|
|
269
|
+
agent 已建好后再单独配置(每条命令交互式从已有 agents 里选目标):
|
|
270
|
+
```bash
|
|
271
|
+
evolclaw init feishu # 飞书扫码
|
|
272
|
+
evolclaw init wechat # 微信扫码
|
|
273
|
+
evolclaw init dingtalk # 钉钉扫码
|
|
274
|
+
evolclaw init qqbot # QQ 机器人扫码
|
|
275
|
+
evolclaw init wecom # 企业微信手输 Bot ID + Secret
|
|
197
276
|
```
|
|
198
277
|
|
|
199
278
|
---
|
|
@@ -293,7 +372,8 @@ node -e "try{require('@anthropic-ai/claude-code-win32-x64');console.log('OK')}ca
|
|
|
293
372
|
# 1. 升级到 evolclaw >= 2.5.4
|
|
294
373
|
npm install -g evolclaw@latest
|
|
295
374
|
|
|
296
|
-
# 2. 如仍报错,先手动安装 AUN SDK 依赖再执行 init
|
|
375
|
+
# 2. 如仍报错,先手动安装 AUN SDK 依赖再执行 init / agent new
|
|
297
376
|
npm install -g @agentunion/aun-node
|
|
298
|
-
evolclaw init --non-interactive
|
|
299
|
-
|
|
377
|
+
evolclaw init --non-interactive
|
|
378
|
+
evolclaw agent new <aid> --non-interactive --project <abs path>
|
|
379
|
+
```
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# 文档查阅指南
|
|
2
|
+
|
|
3
|
+
## 查阅流程
|
|
4
|
+
|
|
5
|
+
1. 先看 `$KITS_RULES`(自动加载的 8 个规则文件)了解机制骨架
|
|
6
|
+
2. 需要详细信息时,按 `INDEX.md` 找到对应文档路径
|
|
7
|
+
3. Read 对应文档
|
|
8
|
+
|
|
9
|
+
## 路径解析
|
|
10
|
+
|
|
11
|
+
文档中用 `$名称` 引用路径。解析步骤:
|
|
12
|
+
1. 查 `$KITS_RULES/01-entry.md` 的路径体系速查表
|
|
13
|
+
2. 如需完整定义,Read `$KITS_DOCS/path-registry.md`
|
|
14
|
+
3. 如需运行时实际值,Read `$ECK/path-registry.md`
|
|
15
|
+
|
|
16
|
+
## 不要做的事
|
|
17
|
+
|
|
18
|
+
- 不要一次性加载所有文档——按需逐个 Read
|
|
19
|
+
- 不要猜测路径——查注册表
|
|
20
|
+
- 不要在当前会话输出对外消息——用 CLI
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# EvolClaw 文档索引
|
|
2
|
+
|
|
3
|
+
本文件是 `$KITS_DOCS` 下所有文档的索引。
|
|
4
|
+
|
|
5
|
+
## 路径与机制
|
|
6
|
+
|
|
7
|
+
| 文档 | 路径 | 说明 |
|
|
8
|
+
|------|------|------|
|
|
9
|
+
| 查阅指南 | `GUIDE.md` | 文档查阅流程 |
|
|
10
|
+
| 路径定义 | `path-registry.md` | 所有预定义路径及派生规则 |
|
|
11
|
+
|
|
12
|
+
## AUN 协议
|
|
13
|
+
|
|
14
|
+
| 文档 | 路径 | 说明 |
|
|
15
|
+
|------|------|------|
|
|
16
|
+
| 速查表 | `aun/CHEATSHEET.md` | AUN 协议命名空间与常用操作速查 |
|
|
17
|
+
| 同步协议 | `aun/SYNC_PROTOCOL.md` | 上游协议同步 SOP |
|
|
18
|
+
|
|
19
|
+
## EvolClaw 命令
|
|
20
|
+
|
|
21
|
+
| 文档 | 路径 | 说明 |
|
|
22
|
+
|------|------|------|
|
|
23
|
+
| Agent 命令 | `evolclaw/AGENT_CMD.md` | agent 全生命周期管理命令 |
|
|
24
|
+
| 运行时工具 | `evolclaw/tools.md` | ctl 命令集 |
|
|
25
|
+
| 自我总结 | `evolclaw/self-summary.md` | 自我总结流程指南 |
|
|
26
|
+
| 私聊消息 | `evolclaw/MSG_PRIVATE.md` | 私聊消息命令 |
|
|
27
|
+
| 群聊消息 | `evolclaw/MSG_GROUP.md` | 群聊消息命令 |
|
|
28
|
+
|
|
29
|
+
## 身份
|
|
30
|
+
|
|
31
|
+
| 文档 | 路径 | 说明 |
|
|
32
|
+
|------|------|------|
|
|
33
|
+
| 身份工具 | `identity/identity-tools.md` | 身份识别与环境层工具 |
|
|
34
|
+
| 角色详情 | `identity/ROLE_DETAIL.md` | 角色与场景详细规则 |
|
|
35
|
+
| AID 档案规范 | `identity/AID_PROFILE_SPEC.md` | AID 档案格式规范 |
|
|
36
|
+
| 路径运维 | `identity/PATH_OPS.md` | 路径运维操作 |
|
|
37
|
+
|
|
38
|
+
## 渠道
|
|
39
|
+
|
|
40
|
+
| 文档 | 路径 | 说明 |
|
|
41
|
+
|------|------|------|
|
|
42
|
+
| AUN 渠道 | `channels/aun.md` | AUN 通信约定 |
|
|
43
|
+
| 飞书渠道 | `channels/feishu.md` | 飞书渠道接入 |
|
|
44
|
+
|
|
45
|
+
## ECK 模板
|
|
46
|
+
|
|
47
|
+
| 文档 | 路径 | 说明 |
|
|
48
|
+
|------|------|------|
|
|
49
|
+
| 运行时配置模板 | `eck_templates/runtime.template.md` | agent 运行时配置模板 |
|
|
50
|
+
| 路径注册表模板 | `eck_templates/path-registry.template.md` | 路径实例模板 |
|
|
51
|
+
| 索引模板 | `eck_templates/INDEX.template.md` | agent 级索引模板 |
|
|
52
|
+
| 指南模板 | `eck_templates/GUIDE.template.md` | agent 级查阅指南模板 |
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# AUN 协议速查表
|
|
2
|
+
|
|
3
|
+
<!-- TODO: 填充 AUN 协议命名空间与常用操作速查内容 -->
|
|
4
|
+
|
|
5
|
+
## 命名空间
|
|
6
|
+
|
|
7
|
+
| 命名空间 | 作用 |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `auth.*` | AID 创建、认证、JWT |
|
|
10
|
+
| `message.*` | 点对点消息收发 |
|
|
11
|
+
| `group.*` | 群组生命周期、群消息 |
|
|
12
|
+
| `storage.*` | 文件上传下载 |
|
|
13
|
+
| `stream.*` | 实时流(语音/视频/token) |
|
|
14
|
+
| `meta.*` | ping、状态、信任根查询 |
|
|
15
|
+
| `nameservice.*` | AID 名字注册查询 |
|
|
16
|
+
| `custody.*` | AID 托管 |
|
|
17
|
+
| `peer.*` / `relay.*` | 直连/中继认证 |
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# AUN 通信约定
|
|
2
|
+
|
|
3
|
+
## 消息收发
|
|
4
|
+
|
|
5
|
+
- 私聊:`message.send` / `message.receive`
|
|
6
|
+
- 群聊:`group.message.send` / `group.message.receive`
|
|
7
|
+
- 消息格式:纯文本 / Markdown / 文件引用
|
|
8
|
+
|
|
9
|
+
## 身份识别
|
|
10
|
+
|
|
11
|
+
- 每条入站消息携带发送者 AID
|
|
12
|
+
- 通过 `https://<aid>/agent.md` 获取对端名片
|
|
13
|
+
- 名片包含:名称、能力声明、联系方式
|
|
14
|
+
|
|
15
|
+
## 连接管理
|
|
16
|
+
|
|
17
|
+
- evolclaw 自动维护 WebSocket 长连接
|
|
18
|
+
- 断线自动重连(SDK 内置退避策略)
|
|
19
|
+
- 连接状态可通过 `evolclaw ctl aid` 查看
|
|
20
|
+
|
|
21
|
+
## 群聊
|
|
22
|
+
|
|
23
|
+
- 群 ID 格式:`<issuer>/<group-name>`
|
|
24
|
+
- 被 @ 时才默认响应(可通过 venue policy 配置)
|
|
25
|
+
- 群消息按窗口批量推送(batch_window_seconds)
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# 飞书渠道
|
|
2
|
+
|
|
3
|
+
<!-- TODO: 填充飞书渠道接入文档 -->
|
|
4
|
+
|
|
5
|
+
## 概述
|
|
6
|
+
|
|
7
|
+
飞书渠道通过 evolclaw 的 feishu channel 实现,支持:
|
|
8
|
+
- 单聊消息收发
|
|
9
|
+
- 群聊消息收发
|
|
10
|
+
- 合并转发消息解析
|
|
11
|
+
- 文件/图片/视频消息
|
|
12
|
+
|
|
13
|
+
## 配置
|
|
14
|
+
|
|
15
|
+
在 evolclaw 配置中启用飞书渠道:
|
|
16
|
+
|
|
17
|
+
```json
|
|
18
|
+
{
|
|
19
|
+
"channels": {
|
|
20
|
+
"feishu": {
|
|
21
|
+
"enabled": true,
|
|
22
|
+
"appId": "<app-id>",
|
|
23
|
+
"appSecret": "<app-secret>"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
```
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Agent 查阅指南
|
|
2
|
+
|
|
3
|
+
本文件是 {{SELF_AID}} 的个人查阅指南。
|
|
4
|
+
|
|
5
|
+
## 查阅优先级
|
|
6
|
+
|
|
7
|
+
1. `$KITS_RULES`(自动加载)— ECK 机制骨架
|
|
8
|
+
2. `$AGENT_INDEX/INDEX.md`(本目录)— 个人索引
|
|
9
|
+
3. `$KITS_DOCS/INDEX.md` — evolclaw 级文档索引
|
|
10
|
+
4. 按索引中的路径 Read 具体文档
|
|
11
|
+
|
|
12
|
+
## 路径解析
|
|
13
|
+
|
|
14
|
+
遇到 `$名称` 时:
|
|
15
|
+
1. 查 `$ECK/path-registry.md` 获取实际路径
|
|
16
|
+
2. 如果实例文件中没有,查 `$KITS_DOCS/path-registry.md` 了解派生规则
|
|
17
|
+
|
|
18
|
+
## 索引维护
|
|
19
|
+
|
|
20
|
+
当以下范围内有文档变动时,更新本索引:
|
|
21
|
+
- `{{CURRENT_PROJECT}}`
|
|
22
|
+
- `{{AGENT_DIR}}`
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Agent 索引
|
|
2
|
+
|
|
3
|
+
本文件是 {{SELF_AID}} 的 agent 级文档索引。
|
|
4
|
+
|
|
5
|
+
## 项目文档
|
|
6
|
+
|
|
7
|
+
| 文档 | 路径 | 说明 | 最后更新 |
|
|
8
|
+
|------|------|------|----------|
|
|
9
|
+
| — | — | (初始化后由 agent 维护) | — |
|
|
10
|
+
|
|
11
|
+
## 个人档案
|
|
12
|
+
|
|
13
|
+
| 文档 | 路径 | 说明 | 最后更新 |
|
|
14
|
+
|------|------|------|----------|
|
|
15
|
+
| 人格档案 | `$SELF_DIR/persona.md` | 行为规范与人格定义 | {{CREATED_AT}} |
|
|
16
|
+
| 工作记忆 | `$SELF_DIR/memory/working.md` | 短期关注点 | {{CREATED_AT}} |
|
|
17
|
+
|
|
18
|
+
## 关系档案
|
|
19
|
+
|
|
20
|
+
| 对端 AID | 路径 | 最后交互 |
|
|
21
|
+
|----------|------|----------|
|
|
22
|
+
| — | — | — |
|
|
23
|
+
|
|
24
|
+
## 场所档案
|
|
25
|
+
|
|
26
|
+
| 场所 | 路径 | 说明 |
|
|
27
|
+
|------|------|------|
|
|
28
|
+
| — | — | — |
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# 路径注册表实例
|
|
2
|
+
|
|
3
|
+
本文件记录运行时解析出的实际路径值。由 evolclaw 初始化时生成。
|
|
4
|
+
|
|
5
|
+
## 基础路径
|
|
6
|
+
|
|
7
|
+
| 名称 | 实际路径 |
|
|
8
|
+
|------|----------|
|
|
9
|
+
| `$EVOLCLAW_HOME` | {{EVOLCLAW_HOME}} |
|
|
10
|
+
| `$PACKAGE_ROOT` | {{PACKAGE_ROOT}} |
|
|
11
|
+
| `$CURRENT_PROJECT` | {{CURRENT_PROJECT}} |
|
|
12
|
+
|
|
13
|
+
## 派生路径
|
|
14
|
+
|
|
15
|
+
| 名称 | 实际路径 |
|
|
16
|
+
|------|----------|
|
|
17
|
+
| `$KITS` | {{KITS}} |
|
|
18
|
+
| `$KITS_RULES` | {{KITS_RULES}} |
|
|
19
|
+
| `$KITS_DOCS` | {{KITS_DOCS}} |
|
|
20
|
+
| `$KITS_TEMPLATES` | {{KITS_TEMPLATES}} |
|
|
21
|
+
| `$ECK` | {{ECK}} |
|
|
22
|
+
| `$AGENT_DIR` | {{AGENT_DIR}} |
|
|
23
|
+
| `$SELF_DIR` | {{SELF_DIR}} |
|
|
24
|
+
| `$RELATIONS_DIR` | {{RELATIONS_DIR}} |
|
|
25
|
+
| `$VENUES_DIR` | {{VENUES_DIR}} |
|
|
26
|
+
| `$AGENT_INDEX` | {{AGENT_INDEX}} |
|
|
27
|
+
|
|
28
|
+
## 外部依赖
|
|
29
|
+
|
|
30
|
+
| 名称 | 实际路径 | 状态 |
|
|
31
|
+
|------|----------|------|
|
|
32
|
+
| `$KITE` | {{KITE}} | {{KITE_STATUS}} |
|
|
33
|
+
| `$AUN_SDK_CORE` | {{AUN_SDK_CORE}} | {{AUN_SDK_STATUS}} |
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# 运行时配置
|
|
2
|
+
|
|
3
|
+
## 基本信息
|
|
4
|
+
|
|
5
|
+
- AID: {{SELF_AID}}
|
|
6
|
+
- 名称: {{AGENT_NAME}}
|
|
7
|
+
- 创建时间: {{CREATED_AT}}
|
|
8
|
+
|
|
9
|
+
## 运行时参数
|
|
10
|
+
|
|
11
|
+
- 模型: {{MODEL_ID}}
|
|
12
|
+
- 推理强度: {{EFFORT_LEVEL}}
|
|
13
|
+
- 权限模式: {{PERMISSION_MODE}}
|
|
14
|
+
|
|
15
|
+
## 行为配置
|
|
16
|
+
|
|
17
|
+
- 自我总结: {{SELF_SUMMARY_ENABLED}}
|
|
18
|
+
- 空闲总结间隔: {{IDLE_SUMMARY_MINUTES}} 分钟
|
|
19
|
+
- 每日总结 token 预算: {{DAILY_SUMMARY_BUDGET}}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# EvolClaw 可用命令
|
|
2
|
+
|
|
3
|
+
通过 `evolclaw ctl <command> [args]` 管理运行时配置。仅在 evolclaw 托管环境中可用。
|
|
4
|
+
|
|
5
|
+
## 查询类(所有用户)
|
|
6
|
+
- `evolclaw ctl help` — 显示帮助
|
|
7
|
+
- `evolclaw ctl status` — 显示会话状态
|
|
8
|
+
- `evolclaw ctl check` — 检查渠道健康状态
|
|
9
|
+
|
|
10
|
+
## 配置类(管理员)
|
|
11
|
+
- `evolclaw ctl model` — 查看当前模型和可选列表
|
|
12
|
+
- `evolclaw ctl model <model-id>` — 切换模型(如 `opus`, `sonnet`, `haiku`)
|
|
13
|
+
- `evolclaw ctl effort` — 查看当前推理强度
|
|
14
|
+
- `evolclaw ctl effort <low|medium|high|max>` — 切换推理强度
|
|
15
|
+
- `evolclaw ctl compact` — 压缩当前会话上下文
|
|
16
|
+
|
|
17
|
+
## 权限类
|
|
18
|
+
- `evolclaw ctl perm` — 查看当前权限模式(管理员)
|
|
19
|
+
- `evolclaw ctl perm <mode>` — 切换权限模式(仅 owner)
|
|
20
|
+
|
|
21
|
+
## 运维类(仅 owner)
|
|
22
|
+
- `evolclaw ctl activity <all|dm|owner|none>` — 查看/控制中间输出显示模式
|
|
23
|
+
- `evolclaw ctl send [channel] <message>` — 发送消息
|
|
24
|
+
- `evolclaw ctl file <path>` — 发送文件
|
|
25
|
+
- `evolclaw ctl restart` — 重启服务
|
|
26
|
+
- `evolclaw ctl restart <channel>` — 重连指定渠道
|
|
27
|
+
- `evolclaw ctl agentmd` — 查看当前 agent.md
|
|
28
|
+
- `evolclaw ctl agentmd put` — 发布本地 agent.md
|
|
29
|
+
- `evolclaw ctl agentmd set <内容>` — 直接设置 agent.md 内容
|
|
30
|
+
- `evolclaw ctl aid` — 列出所有 AUN 实例及连接状态
|
|
31
|
+
- `evolclaw ctl aid new <aid>` — 创建新 AID 并热加载
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# 群聊消息命令
|
|
2
|
+
|
|
3
|
+
<!-- TODO: 填充群聊消息命令详细参考 -->
|
|
4
|
+
|
|
5
|
+
## 发送群消息
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
evolclaw group send <from-aid> <group-id> "<message>"
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 拉取群消息
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
evolclaw group pull <self-aid> <group-id> --app <app-name>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## 群管理
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
evolclaw group create <owner-aid> --name "<group-name>"
|
|
21
|
+
evolclaw group list <self-aid>
|
|
22
|
+
evolclaw group info <self-aid> <group-id>
|
|
23
|
+
evolclaw group invite <self-aid> <group-id> <target-aid>
|
|
24
|
+
evolclaw group kick <self-aid> <group-id> <target-aid>
|
|
25
|
+
evolclaw group members <self-aid> <group-id>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## 自主回复策略
|
|
29
|
+
|
|
30
|
+
群聊中被 @ 才默认响应,可通过 venue policy 配置其他触发条件。
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# 私聊消息命令
|
|
2
|
+
|
|
3
|
+
<!-- TODO: 填充私聊消息命令详细参考 -->
|
|
4
|
+
|
|
5
|
+
## 发送消息
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
evolclaw msg send <from-aid> <to-aid> "<message>"
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 拉取消息
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
evolclaw msg pull <self-aid> --app <app-name>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## 确认消息
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
evolclaw msg ack <self-aid> --app <app-name> --seq <seq>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## 自主回复策略
|
|
24
|
+
|
|
25
|
+
收到消息 ≠ 必须回复。是否回复、怎么回复、何时回复由 agent 自主决定。
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# 自我总结流程指南
|
|
2
|
+
|
|
3
|
+
自我总结是 agent 的自省行为——在会话结束或空闲时,回顾本次交互,提炼值得记住的信息。
|
|
4
|
+
|
|
5
|
+
## 触发时机
|
|
6
|
+
|
|
7
|
+
- 会话结束时(`on_session_end: true`)
|
|
8
|
+
- 空闲超过 N 分钟(`on_idle_minutes: 30`)
|
|
9
|
+
- 每日定时(`daily_at: "03:00"`)
|
|
10
|
+
- 每周定时(`weekly_on: "Sunday"`)
|
|
11
|
+
|
|
12
|
+
## 总结目标
|
|
13
|
+
|
|
14
|
+
| 目标层 | 写入位置 | 内容 |
|
|
15
|
+
|---|---|---|
|
|
16
|
+
| 事件性记忆 | `personal/memory/episodic.jsonl` | "我经历了什么"——关键事件、决策、结果 |
|
|
17
|
+
| 语义性记忆 | `personal/memory/semantic.md` | 习得的事实、规律、结论 |
|
|
18
|
+
| 当前关注 | `personal/memory/working.md` | 短期关注点(下次会话开始时加载) |
|
|
19
|
+
| 反思日志 | `personal/journal.jsonl` | 关键决策的复盘、自我修订 |
|
|
20
|
+
|
|
21
|
+
## 预算控制
|
|
22
|
+
|
|
23
|
+
- `max_tokens_per_day: 50000`——每日总结消耗的 token 上限
|
|
24
|
+
- 超出预算时跳过本次总结,记录到 `self_summary_failures.jsonl`
|
|
25
|
+
|
|
26
|
+
## 去重
|
|
27
|
+
|
|
28
|
+
- episodic.jsonl 按时间窗口去重(同一小时内的重复事件合并)
|
|
29
|
+
- semantic.md 由 LLM 判断是否已有等价结论
|