evolclaw 3.0.0 → 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 (99) hide show
  1. package/README.md +1 -1
  2. package/bin/ec.js +29 -0
  3. package/dist/agents/baseagent-normalize.js +19 -0
  4. package/dist/agents/claude-runner.js +7 -9
  5. package/dist/agents/codex-runner.js +2 -0
  6. package/dist/agents/gemini-runner.js +9 -9
  7. package/dist/agents/kit-renderer.js +281 -0
  8. package/dist/aun/aid/identity.js +28 -0
  9. package/dist/aun/aid/index.js +1 -1
  10. package/dist/aun/aid/lifecycle-log.js +33 -0
  11. package/dist/aun/msg/group.js +3 -1
  12. package/dist/aun/msg/p2p.js +4 -1
  13. package/dist/channels/aun.js +353 -125
  14. package/dist/channels/dingtalk.js +2 -1
  15. package/dist/channels/feishu.js +118 -5
  16. package/dist/channels/qqbot.js +2 -1
  17. package/dist/channels/wechat.js +3 -1
  18. package/dist/channels/wecom.js +2 -1
  19. package/dist/cli/bench.js +1219 -0
  20. package/dist/cli/index.js +279 -19
  21. package/dist/cli/link-rules.js +245 -0
  22. package/dist/cli/net-check.js +640 -0
  23. package/dist/cli/watch-msg.js +589 -0
  24. package/dist/config-store.js +37 -5
  25. package/dist/core/channel-loader.js +23 -10
  26. package/dist/core/command-handler.js +46 -22
  27. package/dist/core/evolagent.js +5 -10
  28. package/dist/core/message/im-renderer.js +50 -44
  29. package/dist/core/message/items-formatter.js +11 -4
  30. package/dist/core/message/message-bridge.js +7 -2
  31. package/dist/core/message/message-log.js +2 -0
  32. package/dist/core/message/message-processor.js +150 -99
  33. package/dist/core/message/message-queue.js +10 -3
  34. package/dist/core/permission.js +95 -3
  35. package/dist/core/session/session-manager.js +98 -64
  36. package/dist/core/trigger/scheduler.js +1 -1
  37. package/dist/data/error-dict.json +118 -0
  38. package/dist/eck/baseagent-caps.js +18 -0
  39. package/dist/eck/detect.js +47 -0
  40. package/dist/eck/init.js +77 -0
  41. package/dist/eck/rules-loader.js +28 -0
  42. package/dist/index.js +137 -16
  43. package/dist/net-check.js +640 -0
  44. package/dist/paths.js +31 -40
  45. package/dist/utils/aid-lifecycle-log.js +33 -0
  46. package/dist/utils/atomic-write.js +10 -0
  47. package/dist/utils/cross-platform.js +17 -8
  48. package/dist/utils/error-utils.js +10 -2
  49. package/dist/utils/instance-registry.js +6 -5
  50. package/dist/utils/log-writer.js +2 -1
  51. package/dist/utils/logger.js +10 -0
  52. package/dist/utils/npm-ops.js +35 -3
  53. package/dist/utils/process-introspect.js +16 -38
  54. package/dist/watch-msg.js +26 -11
  55. package/evolclaw-install-aun.md +14 -2
  56. package/kits/docs/GUIDE.md +20 -0
  57. package/kits/docs/INDEX.md +52 -0
  58. package/kits/docs/aun/CHEATSHEET.md +17 -0
  59. package/kits/docs/aun/SYNC_PROTOCOL.md +15 -0
  60. package/kits/docs/channels/feishu.md +27 -0
  61. package/kits/docs/eck_templates/GUIDE.template.md +22 -0
  62. package/kits/docs/eck_templates/INDEX.template.md +28 -0
  63. package/kits/docs/eck_templates/path-registry.template.md +33 -0
  64. package/kits/docs/eck_templates/runtime.template.md +19 -0
  65. package/kits/docs/evolclaw/MSG_GROUP.md +30 -0
  66. package/kits/docs/evolclaw/MSG_PRIVATE.md +25 -0
  67. package/kits/docs/identity/AID_PROFILE_SPEC.md +27 -0
  68. package/kits/docs/identity/PATH_OPS.md +16 -0
  69. package/kits/docs/identity/ROLE_DETAIL.md +20 -0
  70. package/kits/docs/path-registry.md +43 -0
  71. package/kits/eck_manifest.json +95 -0
  72. package/kits/rules/01-overview.md +120 -0
  73. package/kits/rules/02-navigation.md +75 -0
  74. package/kits/rules/03-identity.md +34 -0
  75. package/kits/rules/04-relation.md +49 -0
  76. package/kits/rules/05-venue.md +45 -0
  77. package/kits/rules/06-channel.md +43 -0
  78. package/kits/templates/system-fragments/baseagent.md +2 -0
  79. package/kits/templates/system-fragments/channel.md +10 -0
  80. package/kits/templates/system-fragments/identity.md +12 -0
  81. package/kits/templates/system-fragments/relation.md +9 -0
  82. package/kits/templates/system-fragments/runtime.md +19 -0
  83. package/kits/templates/system-fragments/venue.md +5 -0
  84. package/package.json +7 -5
  85. package/dist/agents/templates.js +0 -122
  86. package/dist/data/prompts.md +0 -137
  87. package/kits/aun/meta.md +0 -25
  88. package/kits/aun/role.md +0 -25
  89. package/kits/templates/group.md +0 -20
  90. package/kits/templates/private.md +0 -9
  91. package/kits/templates/system-fragments/personal-context.md +0 -3
  92. package/kits/templates/system-fragments/self-intro.md +0 -5
  93. package/kits/templates/system-fragments/speaker-intro.md +0 -5
  94. package/kits/templates/system-fragments/venue-intro.md +0 -5
  95. /package/kits/{channels → docs/channels}/aun.md +0 -0
  96. /package/kits/{evolclaw/commands.md → docs/evolclaw/AGENT_CMD.md} +0 -0
  97. /package/kits/{evolclaw → docs/evolclaw}/self-summary.md +0 -0
  98. /package/kits/{evolclaw → docs/evolclaw}/tools.md +0 -0
  99. /package/kits/{evolclaw → docs/identity}/identity-tools.md +0 -0
@@ -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,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,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,27 @@
1
+ # AID 档案规范
2
+
3
+ <!-- TODO: 填充 AID 档案格式规范 -->
4
+
5
+ ## 档案类型
6
+
7
+ | 类型 | 位置 | 说明 |
8
+ |------|------|------|
9
+ | 自身人格 | `$SELF_DIR/persona.md` | 行为规范、人格定义 |
10
+ | 关系档案 | `$RELATIONS_DIR/<peer-aid>.md` | 对端关系记录 |
11
+ | 场所档案 | `$VENUES_DIR/<venue-id>.md` | 群/场所的策略与记忆 |
12
+
13
+ ## persona.md 结构
14
+
15
+ ```markdown
16
+ # <agent-name>
17
+
18
+ ## 基本信息
19
+ - AID: <aid>
20
+ - 名称: <name>
21
+
22
+ ## 行为规范
23
+ (定义称呼、语气、风格等)
24
+
25
+ ## 能力声明
26
+ (对外公开的能力描述)
27
+ ```
@@ -0,0 +1,16 @@
1
+ # 路径运维操作
2
+
3
+ <!-- TODO: 填充路径失效处理、迁移、新增路径等运维操作 -->
4
+
5
+ ## 路径失效处理
6
+
7
+ 当 `$ECK/path-registry.md` 中某路径不存在时:
8
+ 1. 检查路径是否已迁移(查 git log)
9
+ 2. 尝试按派生规则重新计算
10
+ 3. 如无法恢复,标记为 `❌` 并通知用户
11
+
12
+ ## 新增路径
13
+
14
+ 1. 在 `$KITS_DOCS/path-registry.md` 添加定义
15
+ 2. 在 `$ECK/path-registry.md` 添加实例值
16
+ 3. 更新 `$KITS_DOCS/INDEX.md`
@@ -0,0 +1,20 @@
1
+ # 角色与场景详细规则
2
+
3
+ <!-- TODO: 填充权限矩阵、场景矩阵、对端发现流程 -->
4
+
5
+ ## 权限矩阵
6
+
7
+ | 角色 | 对话 | 配置 | 管理 | 运维 |
8
+ |------|------|------|------|------|
9
+ | owner | Yes | Yes | Yes | Yes |
10
+ | admin | Yes | Yes | Yes | No |
11
+ | guest | Yes | No | No | No |
12
+ | anonymous | 按配置 | No | No | No |
13
+
14
+ ## 场景矩阵
15
+
16
+ | 场景 | 响应策略 | 工具可用性 |
17
+ |------|----------|-----------|
18
+ | coding | 每条响应 | 全部 |
19
+ | private | 自主决定 | 全部 |
20
+ | group | 被@响应 | 全部 |
@@ -0,0 +1,43 @@
1
+ # 路径定义
2
+
3
+ 本文件定义所有预定义路径的含义和派生规则。运行时实际值在 `$ECK/path-registry.md`。
4
+
5
+ ## 基础路径(三个锚点)
6
+
7
+ | 名称 | 含义 | 来源 |
8
+ |------|------|------|
9
+ | `$EVOLCLAW_HOME` | evolclaw 用户数据根 | 环境变量 `EVOLCLAW_HOME` 或默认 `~/.evolclaw` |
10
+ | `$PACKAGE_ROOT` | evolclaw 包根目录 | `require.resolve('evolclaw')` 所在目录 |
11
+ | `$CURRENT_PROJECT` | 当前工作目录 | `process.cwd()` |
12
+
13
+ ## 包内路径(从 $PACKAGE_ROOT 派生)
14
+
15
+ | 名称 | 派生规则 | 说明 |
16
+ |------|----------|------|
17
+ | `$KITS` | `$PACKAGE_ROOT/kits` | kits 根目录 |
18
+ | `$KITS_RULES` | `$KITS/rules` | 自动加载的规则文件 |
19
+ | `$KITS_DOCS` | `$KITS/docs` | 按需加载的文档 |
20
+ | `$KITS_TEMPLATES` | `$KITS/templates` | 运行时 prompt 组装模板 |
21
+
22
+ ## 用户数据路径(从 $EVOLCLAW_HOME 派生)
23
+
24
+ | 名称 | 派生规则 | 说明 |
25
+ |------|----------|------|
26
+ | `$ECK` | `$EVOLCLAW_HOME/eck` | ECK 实例数据(路径注册表实例等) |
27
+ | `$AGENTS_DIR` | `$EVOLCLAW_HOME/agents` | 所有 agent 数据根 |
28
+ | `$AGENT_DIR` | `$AGENTS_DIR/<self-aid>` | 当前 agent 数据目录 |
29
+ | `$SELF_DIR` | `$AGENT_DIR/personal` | 自己的身份档案 |
30
+ | `$RELATIONS_DIR` | `$AGENT_DIR/relations` | 对端关系档案 |
31
+ | `$VENUES_DIR` | `$AGENT_DIR/venues` | 场所档案 |
32
+ | `$AGENT_INDEX` | `$AGENT_DIR/index` | agent 级索引 |
33
+
34
+ ## 外部依赖路径(需寻找)
35
+
36
+ | 名称 | 寻找规则 | 说明 |
37
+ |------|----------|------|
38
+ | `$KITE` | 在 `$EVOLCLAW_HOME/config.json` 的 `kitePath` 字段查找 | Kite 框架根 |
39
+ | `$AUN_SDK_CORE` | `$KITE/aun-sdk-core` | AUN SDK 源码 |
40
+
41
+ ## 路径实例文件
42
+
43
+ 运行时实际路径值写入 `$ECK/path-registry.md`,格式见 `$KITS_DOCS/eck_templates/path-registry.template.md`。
@@ -0,0 +1,95 @@
1
+ {
2
+ "$schema_version": 1,
3
+ "sections": [
4
+ {
5
+ "id": "rules",
6
+ "type": "directory",
7
+ "path": "$PACKAGE_ROOT/kits/rules",
8
+ "order": 10,
9
+ "needsInjection": false,
10
+ "when": "always",
11
+ "description": "ECK 核心规则(自动载入)"
12
+ },
13
+ {
14
+ "id": "identity-layer",
15
+ "type": "file",
16
+ "file": "$PACKAGE_ROOT/kits/templates/system-fragments/identity.md",
17
+ "order": 20,
18
+ "needsInjection": true,
19
+ "when": {
20
+ "var": "scene",
21
+ "neq": "coding"
22
+ },
23
+ "description": "身份层:我是谁"
24
+ },
25
+ {
26
+ "id": "relation-layer",
27
+ "type": "file",
28
+ "file": "$PACKAGE_ROOT/kits/templates/system-fragments/relation.md",
29
+ "order": 30,
30
+ "needsInjection": true,
31
+ "when": {
32
+ "var": "scene",
33
+ "in": ["private", "group"]
34
+ },
35
+ "description": "关系层:跟我聊天的是谁"
36
+ },
37
+ {
38
+ "id": "peer-profile",
39
+ "type": "file",
40
+ "file": "$EVOLCLAW_HOME/agents/{{selfAid}}/relations/{{peerKey}}/profile.md",
41
+ "order": 35,
42
+ "needsInjection": false,
43
+ "when": {
44
+ "var": "peerKey",
45
+ "neq": null
46
+ },
47
+ "description": "当前对端的关系档案"
48
+ },
49
+ {
50
+ "id": "venue-layer",
51
+ "type": "file",
52
+ "file": "$PACKAGE_ROOT/kits/templates/system-fragments/venue.md",
53
+ "order": 40,
54
+ "needsInjection": true,
55
+ "when": {
56
+ "var": "chatType",
57
+ "neq": null
58
+ },
59
+ "description": "环境层:我在什么场景下"
60
+ },
61
+ {
62
+ "id": "channel-layer",
63
+ "type": "file",
64
+ "file": "$PACKAGE_ROOT/kits/templates/system-fragments/channel.md",
65
+ "order": 50,
66
+ "needsInjection": true,
67
+ "when": {
68
+ "var": "channel",
69
+ "neq": null
70
+ },
71
+ "description": "渠道层:我通过什么通信"
72
+ },
73
+ {
74
+ "id": "runtime",
75
+ "type": "file",
76
+ "file": "$PACKAGE_ROOT/kits/templates/system-fragments/runtime.md",
77
+ "order": 60,
78
+ "needsInjection": true,
79
+ "when": "always",
80
+ "description": "运行时参数"
81
+ },
82
+ {
83
+ "id": "baseagent",
84
+ "type": "file",
85
+ "file": "$PACKAGE_ROOT/kits/templates/system-fragments/baseagent.md",
86
+ "order": 70,
87
+ "needsInjection": true,
88
+ "when": {
89
+ "var": "baseAgent",
90
+ "neq": null
91
+ },
92
+ "description": "Base Agent 特定配置"
93
+ }
94
+ ]
95
+ }
@@ -0,0 +1,120 @@
1
+ # EvolClaw Context Kit (ECK)
2
+
3
+ ECK 的总览:前置概念和框架结构。
4
+
5
+ ## Base Agent
6
+
7
+ Base agent 是提供推理与生成能力的底层智能——如 Claude Code、Codex、Gemini 等。你就是当前会话的 base agent。
8
+
9
+ ## AUN 是什么
10
+
11
+ AUN(Agent Union Network)是 agent 间安全通信的网络协议,SDK 的 npm 包名 `@agentunion/fastaun`。
12
+
13
+ ### AID
14
+
15
+ AID(Agent Identifier)是主体在 AUN 网络中的唯一身份标识,格式为 `{name}.{issuer}`(如 `alice.aid.pub`)。任何拥有域名的组织都可以作为 Issuer 签发 AID——去中心化,无需中央权威。AID 同时也是通信地址:身份即入口。
16
+
17
+ 访问 `https://{aid}` 可获取该主体的个人主页。
18
+
19
+ 信任通过四级 X.509 证书链建立:Root CA → Registry CA → Issuer CA → Agent Certificate。
20
+
21
+ ### [agent.md](http://agent.md)
22
+
23
+ `https://{aid}/agent.md` 是主体在 AUN 网络上的标准名片。格式为 YAML frontmatter + Markdown 正文 + 密码学签名。
24
+
25
+ 核心字段:`aid`、`name`(显示名)、`type`(human/Claude Code/CodeX/Gemini CLI等,除了human都视作agent)、`description`(一句话简介)、`avatar`、`tags`、`visibility`(public/unlisted/private)、`skills`。
26
+
27
+ 你的名字、描述、对外展示信息都在这里。修改名片通过 AUN SDK 的 `uploadAgentMd()` 上传到网络。
28
+
29
+ ### AUN网关
30
+
31
+ AUN Gateway 是主要接入点,负责认证、路由和消息投递。浏览器、移动端、桌面端、服务器和 agent 通常都通过 Gateway 接入 AUN 网络,使用 JWT 完成连接认证。通信基于 WebSocket + JSON-RPC 2.0,TLS 1.3 加密,可选端到端加密(E2EE)。
32
+
33
+ agent 通过 AID 发现网关:`GET https://{aid}/.well-known/aun-gateway`,返回带优先级的网关列表,客户端按优先级尝试连接。
34
+
35
+ ### 核心服务
36
+
37
+ | 命名空间 | 作用 |
38
+ | --- | --- |
39
+ | auth.* | AID 注册、认证、token 管理 |
40
+ | message.* | 点对点消息、离线队列 |
41
+ | group.* | 群组生命周期、群消息 |
42
+ | storage.* | 文件上传下载 |
43
+ | stream.* | 实时流 |
44
+ | meta.* | 健康检查、状态查询 |
45
+
46
+ 完整协议文档(含 mail/search/relay/ca/peer/task 等):Read `$AUN_PROTOCOL_DOCS`。
47
+
48
+ ### 自主模式
49
+
50
+ AUN 把 agent 当网络主体(具备社会人属性:身份/通信/自主),不是服务端点。收到消息 ≠ 必须回复,你自主决定是否响应。
51
+
52
+ ```
53
+ AUN 网络
54
+ Gateway(路由/认证/投递)
55
+ ┬ ┬
56
+ AUN SDK AUN SDK
57
+ │ │
58
+ Evol 前端 EvolClaw
59
+ (App/Web/Desktop) Channel 适配层(AUN/飞书/微信/...)
60
+ 或其它 AUN 客户端 关系层 / 环境层 / 个人数据层 / 上下文注入
61
+ Base Agent(Claude Code / Codex / Gemini/...)
62
+
63
+ ```
64
+
65
+ ## EvolClaw 是什么
66
+
67
+ EvolClaw 是一个 Node.js 项目,通过 `npm install -g evolclaw@latest` 安装,包根目录为 `$PACKAGE_ROOT`。
68
+ 它运行在你之上,为你接入 AUN 通信网络并构建身份、关系、环境感知、持久记忆。你提供智能,它提供社会性。
69
+
70
+ ### Evol
71
+
72
+ Evol 是 AUN 原生的消息应用(App / Web / Desktop)——人和 agent 都是其中的主体。用户通过 Evol 与 agent 和其他人对话。
73
+
74
+ ### Channel
75
+
76
+ Channel 是能收发消息的通信方式。渠道两端是两个主体,通过渠道收发消息。
77
+
78
+ 接入 EvolClaw这一端的 agent 始终以 AID 为身份标识。另一端,不同 channel 以各自的账号体系标识对端——飞书用 user_id,微信用 openid,钉钉用 unionId。Evol 作为 AUN 原生应用,对端同样以 AID 标识(在 [agent.md](http://agent.md) 中 type 为 human)。
79
+
80
+ 不同 channel 有不同的通信方式,你通过对应的命令行工具完成收发消息。
81
+
82
+ ## ECK 是什么
83
+
84
+ ECK(EvolClaw Context Kit)是 EvolClaw 的上下文组装系统。你正在阅读的就是 ECK 的自动载入部分。
85
+
86
+ ### 三部分
87
+
88
+ | 部分 | 位置 | 加载方式 |
89
+ |------|------|----------|
90
+ | 自动载入 | `$KITS_RULES/`(本目录) | 全量加载到每个会话 |
91
+ | 按需载入 | `$KITS_DOCS/` | 通过索引定位,需要时 Read |
92
+ | 动态注入 | evolclaw 代码 | 上下文组装时注入参数和文件 |
93
+
94
+ ### 四层架构
95
+
96
+ | 层 | 解决的问题 | 详见 |
97
+ |----|-----------|------|
98
+ | 身份层 | 我是谁 | `03-identity.md` |
99
+ | 关系层 | 跟我聊天的是谁 | `04-relation.md` |
100
+ | 环境层 | 我在什么场景下 | `05-venue.md` |
101
+ | 渠道层 | 我通过什么通信 | `06-channel.md` |
102
+
103
+ ### 上下文组装流程
104
+
105
+ evolclaw 收到消息后,按场景决定加载哪些层:
106
+
107
+ | 场景 | 加载的层 |
108
+ |------|----------|
109
+ | coding | 仅 rules(不加载身份层、关系层) |
110
+ | private | rules + 身份层 + 关系层(对端)+ 环境层 + 渠道层 |
111
+ | group | rules + 身份层 + 关系层(群)+ 环境层 + 渠道层 |
112
+
113
+ ## 术语
114
+
115
+ - **主体(Principal)**:通信参与者——人或 agent。AUN 网络上的主体持有 AID;非 AUN 渠道(飞书/微信等)的对端以该渠道的账号标识,同样是主体
116
+ - **对端**:和你通信的主体
117
+ - **本端(self)**:你自己
118
+ - **用户**:对端中的人类一方
119
+ - **环境(Venue)**:渠道 + 场景(私聊/群聊)构成的交互空间
120
+
@@ -0,0 +1,75 @@
1
+ # 导航:怎么找到我需要的信息
2
+
3
+ ## 路径体系
4
+
5
+ ### 三个基础路径
6
+
7
+ | 路径 | 含义 |
8
+ |------|------|
9
+ | `$EVOLCLAW_HOME` | 用户数据根(默认 `~/.evolclaw`) |
10
+ | `$PACKAGE_ROOT` | evolclaw 包根目录 |
11
+ | `$CURRENT_PROJECT` | 当前工作目录 |
12
+
13
+ ### 派生路径
14
+
15
+ | 名称 | 派生自 | 含义 |
16
+ |------|--------|------|
17
+ | `$KITS` | `$PACKAGE_ROOT/kits` | ECK 知识包根 |
18
+ | `$KITS_RULES` | `$KITS/rules` | 自动载入部分(本目录) |
19
+ | `$KITS_DOCS` | `$KITS/docs` | 按需载入文档 |
20
+ | `$KITS_TEMPLATES` | `$KITS/templates` | prompt 模板 |
21
+ | `$ECK` | `$EVOLCLAW_HOME/eck` | 运行时配置 |
22
+ | `$AGENTS_DIR` | `$EVOLCLAW_HOME/agents` | per-agent 数据根 |
23
+ | `$AGENT_DIR` | `$AGENTS_DIR/<self-aid>` | 当前 agent 根 |
24
+ | `$SELF_DIR` | `$AGENT_DIR/personal` | 个人数据层(身份层) |
25
+ | `$RELATIONS_DIR` | `$AGENT_DIR/relations` | 关系层 |
26
+ | `$VENUES_DIR` | `$AGENT_DIR/venues` | 环境层 |
27
+ | `$AGENT_INDEX` | `$AGENT_DIR/index` | agent 级文档索引 |
28
+
29
+ 会话级动态注入:`$PEER_DIR` → 当前对端的关系目录。
30
+
31
+ ## 路径注册表机制
32
+
33
+ 路径用 `$名称` 引用,不写死实际路径。
34
+
35
+ ### 三层结构
36
+
37
+ | 层 | 位置 | 性质 | 内容 |
38
+ |----|------|------|------|
39
+ | 机制描述 | 本文件 | 只读 | 语法、规则 |
40
+ | 路径定义 | `$KITS_DOCS/path-registry.md` | 只读,按需加载 | 所有路径的派生规则或寻找规则 |
41
+ | 路径实例 | `$ECK/path-registry.md` | 可变,按需加载 | 已解析的真实值 + 用户自定义路径 |
42
+
43
+ ### 两类路径
44
+
45
+ - **可直接派生**:从基础路径按固定规则算出(如 `$KITS = $PACKAGE_ROOT/kits`)
46
+ - **不可直接派生**:需按寻找规则搜索,找到后写入实例文件。例如:
47
+ - `$AUN_SDK`:寻找规则 `npm list -g @agentunion/fastaun --parseable`
48
+ - `$AUN_PROTOCOL_DOCS`:`$AUN_SDK/docs/protocol`(AUN 协议详细文档)
49
+
50
+ ### 按需加载时机
51
+
52
+ 路径定义和实例文件**不自动加载**,仅在以下场景 Read:
53
+ - 需要访问某个 `$名称` 但当前上下文中没有真实值
54
+ - 需要寻找外部依赖位置
55
+ - 用户要求注册或查看路径
56
+
57
+ ## 索引机制
58
+
59
+ | 层 | 位置 | 维护者 | 写入权限 |
60
+ |----|------|--------|----------|
61
+ | evolclaw 级 | `$KITS_DOCS/INDEX.md` | 开发时维护 | 只读,过时时呈报用户 |
62
+ | agent 级 | `$AGENT_INDEX/INDEX.md` | agent 会话 | 可写,直接更新 |
63
+
64
+ agent 级索引范围:`$CURRENT_PROJECT` + `$AGENT_DIR`。
65
+
66
+ 触发时机:上述范围内有文档新增或较大幅度修改时,主动重建索引。
67
+
68
+ ## Bootstrap(独立使用 ECK 时)
69
+
70
+ 无 evolclaw 动态注入时,路径确定顺序:
71
+ 1. `$EVOLCLAW_HOME`:环境变量 → 默认 `~/.evolclaw`
72
+ 2. 读取 `$ECK/runtime.md` 获取基础路径和运行时参数
73
+ 3. 按派生规则构造其余路径
74
+
75
+ 参数加载优先级:evolclaw 动态注入 > 环境变量 > `$ECK/runtime.md` > 硬编码默认值。