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.
Files changed (142) hide show
  1. package/README.md +21 -12
  2. package/bin/ec.js +29 -0
  3. package/dist/agents/baseagent-normalize.js +19 -0
  4. package/dist/agents/claude-runner.js +108 -46
  5. package/dist/agents/codex-runner.js +13 -14
  6. package/dist/agents/gemini-runner.js +15 -17
  7. package/dist/agents/kit-renderer.js +281 -0
  8. package/dist/agents/resolve.js +134 -0
  9. package/dist/aun/aid/agentmd.js +186 -0
  10. package/dist/aun/aid/client.js +134 -0
  11. package/dist/aun/aid/identity.js +159 -0
  12. package/dist/aun/aid/index.js +3 -0
  13. package/dist/aun/aid/lifecycle-log.js +33 -0
  14. package/dist/aun/aid/types.js +1 -0
  15. package/dist/aun/aid/validation.js +21 -0
  16. package/dist/aun/msg/group.js +293 -0
  17. package/dist/aun/msg/index.js +4 -0
  18. package/dist/aun/msg/p2p.js +147 -0
  19. package/dist/aun/msg/payload-type.js +27 -0
  20. package/dist/aun/msg/upload.js +98 -0
  21. package/dist/aun/outbox.js +138 -0
  22. package/dist/aun/rpc/caller.js +42 -0
  23. package/dist/aun/rpc/connection.js +34 -0
  24. package/dist/aun/rpc/index.js +2 -0
  25. package/dist/aun/storage/download.js +29 -0
  26. package/dist/aun/storage/index.js +3 -0
  27. package/dist/aun/storage/manage.js +10 -0
  28. package/dist/aun/storage/upload.js +35 -0
  29. package/dist/channels/aun.js +1340 -349
  30. package/dist/channels/dingtalk.js +59 -5
  31. package/dist/channels/feishu.js +381 -32
  32. package/dist/channels/qqbot.js +68 -12
  33. package/dist/channels/wechat.js +63 -4
  34. package/dist/channels/wecom.js +59 -5
  35. package/dist/cli/agent.js +800 -0
  36. package/dist/cli/bench.js +1219 -0
  37. package/dist/cli/index.js +4513 -0
  38. package/dist/{utils → cli}/init-channel.js +211 -621
  39. package/dist/cli/init.js +178 -0
  40. package/dist/cli/link-rules.js +245 -0
  41. package/dist/cli/net-check.js +640 -0
  42. package/dist/cli/watch-msg.js +589 -0
  43. package/dist/config-store.js +645 -0
  44. package/dist/core/{agent-loader.js → baseagent-loader.js} +6 -12
  45. package/dist/core/channel-loader.js +176 -12
  46. package/dist/core/command-handler.js +883 -848
  47. package/dist/core/evolagent-registry.js +191 -371
  48. package/dist/core/evolagent.js +202 -238
  49. package/dist/core/interaction-router.js +52 -5
  50. package/dist/core/message/im-renderer.js +486 -0
  51. package/dist/core/message/items-formatter.js +68 -0
  52. package/dist/core/message/message-bridge.js +109 -56
  53. package/dist/core/message/message-log.js +93 -0
  54. package/dist/core/message/message-processor.js +430 -212
  55. package/dist/core/message/message-queue.js +13 -6
  56. package/dist/core/permission.js +116 -11
  57. package/dist/core/session/adapters/codex-session-file-adapter.js +24 -2
  58. package/dist/core/session/session-fs-store.js +230 -0
  59. package/dist/core/session/session-manager.js +740 -777
  60. package/dist/core/session/session-mapper.js +87 -0
  61. package/dist/core/trigger/manager.js +122 -0
  62. package/dist/core/trigger/parser.js +128 -0
  63. package/dist/core/trigger/scheduler.js +224 -0
  64. package/dist/data/error-dict.json +118 -0
  65. package/dist/eck/baseagent-caps.js +18 -0
  66. package/dist/eck/detect.js +47 -0
  67. package/dist/eck/init.js +77 -0
  68. package/dist/eck/rules-loader.js +28 -0
  69. package/dist/index.js +560 -283
  70. package/dist/ipc.js +49 -0
  71. package/dist/net-check.js +640 -0
  72. package/dist/paths.js +73 -9
  73. package/dist/types.js +8 -2
  74. package/dist/utils/aid-lifecycle-log.js +33 -0
  75. package/dist/utils/atomic-write.js +89 -0
  76. package/dist/utils/channel-helpers.js +46 -0
  77. package/dist/utils/cross-platform.js +17 -26
  78. package/dist/utils/error-utils.js +10 -2
  79. package/dist/utils/instance-registry.js +434 -0
  80. package/dist/utils/log-writer.js +217 -0
  81. package/dist/utils/logger.js +34 -77
  82. package/dist/utils/media-cache.js +23 -0
  83. package/dist/utils/npm-ops.js +163 -0
  84. package/dist/utils/process-introspect.js +122 -0
  85. package/dist/utils/stats.js +192 -0
  86. package/dist/watch-msg.js +544 -0
  87. package/evolclaw-install-aun.md +127 -47
  88. package/kits/docs/GUIDE.md +20 -0
  89. package/kits/docs/INDEX.md +52 -0
  90. package/kits/docs/aun/CHEATSHEET.md +17 -0
  91. package/kits/docs/aun/SYNC_PROTOCOL.md +15 -0
  92. package/kits/docs/channels/aun.md +25 -0
  93. package/kits/docs/channels/feishu.md +27 -0
  94. package/kits/docs/eck_templates/GUIDE.template.md +22 -0
  95. package/kits/docs/eck_templates/INDEX.template.md +28 -0
  96. package/kits/docs/eck_templates/path-registry.template.md +33 -0
  97. package/kits/docs/eck_templates/runtime.template.md +19 -0
  98. package/kits/docs/evolclaw/AGENT_CMD.md +31 -0
  99. package/kits/docs/evolclaw/MSG_GROUP.md +30 -0
  100. package/kits/docs/evolclaw/MSG_PRIVATE.md +25 -0
  101. package/kits/docs/evolclaw/self-summary.md +29 -0
  102. package/kits/docs/evolclaw/tools.md +25 -0
  103. package/kits/docs/identity/AID_PROFILE_SPEC.md +27 -0
  104. package/kits/docs/identity/PATH_OPS.md +16 -0
  105. package/kits/docs/identity/ROLE_DETAIL.md +20 -0
  106. package/kits/docs/identity/identity-tools.md +26 -0
  107. package/kits/docs/path-registry.md +43 -0
  108. package/kits/eck_manifest.json +95 -0
  109. package/kits/rules/01-overview.md +120 -0
  110. package/kits/rules/02-navigation.md +75 -0
  111. package/kits/rules/03-identity.md +34 -0
  112. package/kits/rules/04-relation.md +49 -0
  113. package/kits/rules/05-venue.md +45 -0
  114. package/kits/rules/06-channel.md +43 -0
  115. package/kits/templates/system-fragments/baseagent.md +2 -0
  116. package/kits/templates/system-fragments/channel.md +10 -0
  117. package/kits/templates/system-fragments/identity.md +12 -0
  118. package/kits/templates/system-fragments/relation.md +9 -0
  119. package/kits/templates/system-fragments/runtime.md +19 -0
  120. package/kits/templates/system-fragments/venue.md +5 -0
  121. package/package.json +10 -6
  122. package/data/evolclaw.sample.json +0 -60
  123. package/dist/agents/templates.js +0 -122
  124. package/dist/channels/aun-ops.js +0 -275
  125. package/dist/cli.js +0 -2178
  126. package/dist/config.js +0 -591
  127. package/dist/core/agent-registry.js +0 -450
  128. package/dist/core/evolagent-schema.js +0 -72
  129. package/dist/core/message/stream-flusher.js +0 -238
  130. package/dist/core/message/thought-emitter.js +0 -162
  131. package/dist/core/reload-hooks.js +0 -87
  132. package/dist/prompts/templates.js +0 -122
  133. package/dist/templates/prompts.md +0 -104
  134. package/dist/templates/skills.md +0 -66
  135. package/dist/utils/channel-fingerprint.js +0 -59
  136. package/dist/utils/error-dict.js +0 -63
  137. package/dist/utils/format.js +0 -32
  138. package/dist/utils/init.js +0 -645
  139. package/dist/utils/migrate-project.js +0 -122
  140. package/dist/utils/reload-hooks.js +0 -87
  141. package/dist/utils/stats-collector.js +0 -99
  142. package/dist/utils/upgrade.js +0 -100
@@ -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
- | `--aun-aid` | **必填**,Agent 自身的 AID,作为 bot 在 AUN 网络上的独立身份 | `mybot.agentid.pub` |
78
- | `--aun-owner` | **必填**,Owner 的 AID,用于接收欢迎消息和管理权限 | `alice.agentid.pub` |
79
- | `--default-path` | 默认项目路径(bot 会话未显式 `/bind` 时使用的工作目录) | `/home/user/myproject` |
83
+ ```
84
+ 安装 evolclaw(npm install -g evolclaw),读取包内的安装文档完成配置
85
+ 你要使用的AID是:aibot.agentid.pub
86
+ 你的主人AID是:elean.agentid.pub
87
+ 你的昵称是:我是小艾
88
+ ```
80
89
 
81
- **注意**:`--aun-aid` 和 `--aun-owner` 必须是不同的 AID。Agent 需要独立身份,不能与 Owner 相同。
90
+ 提取规则(每条都是"消息中有则用,无则不带 flag"):
82
91
 
83
- 如果用户在触发安装时已提供 Owner AID(例如消息中包含"将 xxx 添加为 Owner ID"),直接使用该值,否则询问用户。Agent AID 必须单独询问用户,不能默认使用 Owner AID。
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
- 1. **推荐默认**:`~/projects/default`(EvolClaw 约定的默认工作区;若不存在会自动创建)
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
- > 请选择默认项目目录(bot 未显式 `/bind` 时使用的工作目录):
94
- > 1) `~/projects/default`(推荐,EvolClaw 默认工作区)
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
- 将用户选择的目录作为 `--default-path` 传入:
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
- ### 步骤 6:启动前验证
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 ~/.evolclaw/data/evolclaw.json
171
+ cat $EVOLCLAW_HOME/agents/<aid>/config.json
126
172
  ```
127
173
 
128
- 检查:
129
- - `channels.aun.aid` — 你的 AID
130
- - `channels.aun.owner` — Owner AID
174
+ 检查关键字段:
175
+
176
+ - `aid` — 你的 AID
177
+ - `owners` — Owner AID 数组(可为空,留给自动绑定)
178
+ - `active_baseagent` — `claude` / `codex` / `gemini`
131
179
  - `projects.defaultPath` — 项目路径(目录需存在)
132
- - `channels.defaultChannel` — 应为 `"aun"`
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
- ### 步骤 7:启动服务
187
+ ### 步骤 9:启动服务
188
+
189
+ 首次安装(服务未运行):
137
190
 
138
191
  ```bash
139
192
  evolclaw start
140
193
  ```
141
194
 
142
- ### 步骤 8:验证运行状态
195
+ 若服务已在运行(升级/重装场景,步骤 3 已停止旧进程):
196
+
197
+ ```bash
198
+ evolclaw restart
199
+ ```
200
+
201
+ ### 步骤 10:验证运行状态
143
202
 
144
203
  ```bash
145
204
  evolclaw status
146
- tail -n 30 ~/.evolclaw/logs/evolclaw.log
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. 检测 `~/.aun/AIDs/<aid>/agent.md` 中的 `initialized` 字段
160
- 2. 若为 `false`,生成完整 agent.md 并发布到 AUN 网络
161
- 3. Owner 发送欢迎消息
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 init --non-interactive` 会检测本地密钥,已存在则跳过创建。
250
+ `evolclaw agent new` 会检测本地密钥,已存在则跳过创建(`alreadyExisted`)。如果 `agents/<aid>/config.json` 已存在,命令会失败;加 `--force` 可覆盖配置(AID 密钥保留;agent.md 会按当前 `--name` / `--description` 重新生成并重新上传)。
183
251
 
184
252
  **Q: 启动失败怎么办?**
185
- 查看 `~/.evolclaw/logs/evolclaw.log` 或运行 `evolclaw diagnose`。
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
- rm -rf ~/.aun/AIDs/<aid>
196
- evolclaw init --non-interactive --channel aun --aun-aid <aid> --aun-owner <owner>
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 --channel aun --aun-aid <aid> --aun-owner <owner>
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,15 @@
1
+ # AUN 协议同步 SOP
2
+
3
+ <!-- TODO: 填充上游协议同步流程 -->
4
+
5
+ ## 同步时机
6
+
7
+ - AUN SDK 有新版本发布时
8
+ - 协议文档有重大变更时
9
+
10
+ ## 同步步骤
11
+
12
+ 1. 拉取上游最新协议文档
13
+ 2. 对比本地认知包与上游差异
14
+ 3. 更新 `$KITS_RULES/04-aun.md` 和 `$KITS_DOCS/aun/` 下相关文档
15
+ 4. 更新索引
@@ -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 判断是否已有等价结论