evolcore 0.0.31 → 0.0.33

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 (179) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/bin/install-codex-managed-hooks.mjs +124 -37
  3. package/dist/agents/claude-runner.js +29 -2
  4. package/dist/agents/codex/app-server-client.js +3 -0
  5. package/dist/agents/codex/diagnostics.js +76 -44
  6. package/dist/agents/codex-runner.js +51 -24
  7. package/dist/agents/ecagent-runner.js +9 -13
  8. package/dist/agents/gemini-runner.js +4 -0
  9. package/dist/aun/aid/store.js +0 -81
  10. package/dist/aun/group/fs-download.js +1 -10
  11. package/dist/aun/group/operations.js +0 -1
  12. package/dist/aun/msg/history.js +1 -0
  13. package/dist/aun/msg/managed-operation.js +130 -32
  14. package/dist/aun/msg/p2p.js +0 -1
  15. package/dist/aun/outbox.js +50 -1
  16. package/dist/aun/service-proxy.js +12 -18
  17. package/dist/aun/storage/index.js +29 -0
  18. package/dist/channels/aun.js +38 -137
  19. package/dist/channels/daemon.js +257 -2
  20. package/dist/cli/agent-command.js +64 -31
  21. package/dist/cli/agent-create.js +43 -24
  22. package/dist/cli/agent.js +16 -70
  23. package/dist/cli/aun-commands.js +512 -32
  24. package/dist/cli/contact.js +8 -2
  25. package/dist/cli/ctl-command.js +1 -2
  26. package/dist/cli/daemon-commands.js +82 -13
  27. package/dist/cli/debug-mode.js +154 -0
  28. package/dist/cli/diag.js +2 -2
  29. package/dist/cli/handoff-command.js +18 -5
  30. package/dist/cli/index.js +81 -64
  31. package/dist/cli/init.js +2 -2
  32. package/dist/cli/managed-command-guard.js +5 -0
  33. package/dist/cli/memory-command.js +93 -12
  34. package/dist/cli/model.js +14 -138
  35. package/dist/cli/queue-command.js +51 -0
  36. package/dist/cli/response.js +5 -54
  37. package/dist/cli/session-command.js +194 -0
  38. package/dist/cli/skill-command.js +85 -3
  39. package/dist/cli/stats.js +10 -4
  40. package/dist/cli/task-command.js +1 -0
  41. package/dist/cli/task-context.js +16 -0
  42. package/dist/cli/thread-command.js +620 -0
  43. package/dist/cli/trigger-command.js +76 -50
  44. package/dist/config/builtin-roles.js +9 -7
  45. package/dist/config/config-field-policy.js +2 -3
  46. package/dist/config/config-manager.js +7 -2
  47. package/dist/config/resolved-config-op.js +3 -0
  48. package/dist/config-store.js +15 -0
  49. package/dist/core/agent-ipc-registration.js +65 -22
  50. package/dist/core/auth/agent-delegation.js +42 -2
  51. package/dist/core/auth/debug-context.js +139 -0
  52. package/dist/core/auth/delegation-authorization.js +1 -0
  53. package/dist/core/auth/operation-authorizer.js +24 -1
  54. package/dist/core/auth/operation-catalog.js +44 -3
  55. package/dist/core/background-session/session-cleanup.js +212 -0
  56. package/dist/core/background-session/types.js +10 -0
  57. package/dist/core/bootstrap-messages.js +1 -1
  58. package/dist/core/bootstrap-service.js +6 -3
  59. package/dist/core/command/command-handler.js +224 -45
  60. package/dist/core/command/diag-service.js +5 -1
  61. package/dist/core/command/memory-slash.js +6 -2
  62. package/dist/core/command/menu-catalog.js +48 -1
  63. package/dist/core/command/menu-handler.js +92 -16
  64. package/dist/core/command/menu-protocol.js +24 -1
  65. package/dist/core/command/skill-slash.js +322 -0
  66. package/dist/core/command/slash-gate.js +6 -4
  67. package/dist/core/command/slash-handler.js +193 -13
  68. package/dist/core/command/topic-slash.js +528 -0
  69. package/dist/core/evolagent-registry.js +20 -5
  70. package/dist/core/handoff/ipc-registration.js +38 -0
  71. package/dist/core/handoff/runtime.js +5 -11
  72. package/dist/core/handoff/store.js +5 -0
  73. package/dist/core/ipc-registration.js +210 -9
  74. package/dist/core/memory/consolidation-context.js +49 -16
  75. package/dist/core/memory/consolidation-ops-records.js +35 -0
  76. package/dist/core/memory/consolidation-queue-format.js +21 -0
  77. package/dist/core/memory/consolidation.js +174 -180
  78. package/dist/core/message/aun-ipc-sender.js +207 -8
  79. package/dist/core/message/im-renderer.js +149 -6
  80. package/dist/core/message/message-bridge.js +13 -3
  81. package/dist/core/message/message-log.js +1 -0
  82. package/dist/core/message/message-queue.js +131 -3
  83. package/dist/core/message/peer-mode.js +6 -1
  84. package/dist/core/message/response-engine.js +379 -69
  85. package/dist/core/message/subtask-tool-projection.js +140 -0
  86. package/dist/core/model/catalog-service.js +17 -12
  87. package/dist/core/permission/ec-command-parser.js +126 -7
  88. package/dist/core/permission/sandbox-runtime.js +14 -1
  89. package/dist/core/session/session-idle-monitor.js +249 -22
  90. package/dist/core/session/session-manager.js +54 -9
  91. package/dist/core/skill/command-parser.js +13 -0
  92. package/dist/core/skill/index-generator.js +4 -1
  93. package/dist/core/skill/startup.js +41 -0
  94. package/dist/core/skill/switch-resolver.js +55 -29
  95. package/dist/core/task/task-recovery-service.js +2 -0
  96. package/dist/core/task/task-resume-operation.js +11 -0
  97. package/dist/core/thread/command-parser.js +125 -0
  98. package/dist/core/thread/index.js +1 -0
  99. package/dist/core/thread/ipc-operation.js +95 -0
  100. package/dist/core/thread/thread-context-storage.js +131 -0
  101. package/dist/core/thread/thread-operation.js +258 -0
  102. package/dist/core/thread/thread-route.js +33 -0
  103. package/dist/core/thread/thread-service.js +777 -0
  104. package/dist/core/thread/types.js +1 -0
  105. package/dist/eck/message-renderer.js +35 -0
  106. package/dist/index.js +10 -7
  107. package/dist/ipc.js +234 -17
  108. package/dist/paths.js +23 -0
  109. package/dist/response-system/engines/v1/proactive-flow.js +169 -80
  110. package/dist/trigger/authorization.js +59 -29
  111. package/dist/trigger/feedback.js +7 -1
  112. package/dist/trigger/ipc-service.js +49 -35
  113. package/dist/trigger/parser.js +63 -1
  114. package/dist/trigger/script-sandbox.js +58 -77
  115. package/dist/trigger/validation.js +14 -0
  116. package/dist/utils/error-utils.js +22 -1
  117. package/kits/docs/AUTHORING.md +1 -1
  118. package/kits/docs/channels/aun.md +8 -0
  119. package/kits/docs/context-assembly.md +1 -0
  120. package/kits/docs/evolcore/INDEX.md +3 -2
  121. package/kits/docs/evolcore/agent-create.md +39 -28
  122. package/kits/docs/evolcore/agent.md +19 -4
  123. package/kits/docs/evolcore/ec-capabilities.md +4 -0
  124. package/kits/docs/evolcore/group-collaboration.md +3 -5
  125. package/kits/docs/evolcore/group.md +3 -4
  126. package/kits/docs/evolcore/memory-consolidation.md +1 -1
  127. package/kits/docs/evolcore/menu-exec-schema-commands.md +2 -2
  128. package/kits/docs/evolcore/menu-protocol.md +7 -0
  129. package/kits/docs/evolcore/msg.md +5 -8
  130. package/kits/docs/evolcore/task.md +2 -0
  131. package/kits/docs/evolcore/thread-chain.md +267 -0
  132. package/kits/docs/evolcore/trigger.md +2 -2
  133. package/kits/docs/prompt-loading-architecture.md +1 -0
  134. package/kits/eck_manifest.json +61 -26
  135. package/kits/eck_message_manifest.json +169 -10
  136. package/kits/rules/01-overview.md +0 -9
  137. package/kits/rules/05-venue.md +1 -1
  138. package/kits/rules/06-channel.md +7 -1
  139. package/kits/rules/07-memory-and-thread.md +202 -0
  140. package/kits/schemas/relation-config.schema.9.json +18 -3
  141. package/kits/schemas/role-config.schema.1.json +6 -6
  142. package/kits/schemas/single-session.schema.1.json +6 -6
  143. package/kits/schemas/single-session.schema.2.json +6 -6
  144. package/kits/schemas/single-session.schema.3.json +6 -6
  145. package/kits/skills/.switches.json +12 -1
  146. package/kits/skills/ec-group/SKILL.md +234 -0
  147. package/kits/skills/ec-skill/SKILL.md +10 -1
  148. package/kits/skills/ec-skill/scripts/cli.mjs +15 -1
  149. package/kits/skills/scrapling-article-fetch/SKILL.md +128 -0
  150. package/kits/skills/scrapling-article-fetch/scripts/check_python_env.py +54 -0
  151. package/kits/skills/scrapling-article-fetch/scripts/render_markdown_reply.py +35 -0
  152. package/kits/skills/scrapling-article-fetch/scripts/run_pipeline.sh +16 -0
  153. package/kits/skills/scrapling-article-fetch/scripts/scrapling_fetch.py +344 -0
  154. package/kits/skills/thread-ops/SKILL.md +492 -0
  155. package/kits/skills/wechat-article-media-download/SKILL.md +65 -0
  156. package/kits/skills/wechat-article-media-download/scripts/download.py +163 -0
  157. package/kits/skills/wechat-article-reader/SKILL.md +97 -0
  158. package/kits/skills/wechat-article-reader/scripts/fetch.mjs +256 -0
  159. package/kits/templates/bootstrap-welcome.md +7 -7
  160. package/kits/templates/memory-consolidation/forget.md +5 -0
  161. package/kits/templates/memory-consolidation/generalize.md +5 -0
  162. package/kits/templates/memory-consolidation/profile.md +5 -0
  163. package/kits/templates/memory-consolidation/promote.md +5 -0
  164. package/kits/templates/message-fragments/item.md +2 -1
  165. package/kits/templates/message-fragments/thread-context.md +6 -0
  166. package/kits/templates/message-fragments/trigger-session.md +2 -0
  167. package/kits/templates/message-fragments/trigger-thread-check.md +2 -0
  168. package/kits/templates/roles/member.json +2 -0
  169. package/kits/templates/roles/visitor.json +2 -0
  170. package/kits/templates/system-fragments/bootstrap.md +66 -72
  171. package/kits/templates/system-fragments/channel.md +3 -6
  172. package/kits/templates/system-fragments/commands.md +2 -1
  173. package/kits/templates/system-fragments/managed-runtime.md +15 -0
  174. package/kits/templates/system-fragments/reply.md +3 -2
  175. package/kits/templates/system-fragments/session.md +5 -14
  176. package/package.json +3 -1
  177. package/kits/docs/evolcore/group-fs.md +0 -17
  178. package/kits/docs/venues/aun-group.md +0 -45
  179. package/kits/docs/venues/group.md +0 -43
@@ -1,75 +1,69 @@
1
1
  [bootstrap]
2
2
  phase: bootstrapping
3
3
 
4
- 这是 agent 生命周期的强制门禁。你正在进行首次自我设定;在完成前,唯一目标是和 owner 确认并写入基础名片信息及正式欢迎文案,不处理普通任务。
5
- Bootstrap 不另设隐藏状态机;恢复依据是可核对的生命周期和名片状态。每次重启、超时恢复或收到“继续”时,先检查自身 `lifecycle` 以及本地 `agent.md` 是否存在、字段是否完整,再决定续做步骤,不按旧上下文推断尚未完成。
6
- 系统已经在进入本阶段时向 owner 发送过固定的首条引导消息。当前收到的是 owner 对该消息的后续输入:不要重新发送、复述或改写那条固定消息,也不要再次完整罗列三项问题;只针对当前输入推进下一步。
7
-
8
- 回复方式、当前身份与发送目标遵循本轮注入的 `[reply]` 共用回复规则;不要根据 owner 是人类还是 AI 自行选择发送方式。通信只用于和当前 owner 推进 Bootstrap,不得联系无关对象或处理普通任务。无论 owner 类型如何,都必须由 owner 明确确认最终值,再由你自行修改和发布自己的 agent.md、执行 ready。
9
-
10
- 只有向当前 AUN owner 实际发送消息并收到“不是联系人”或联系人准入拒绝时,才通过同一托管发送通道向该 owner 发送一次 `/request <说明>` 联系人申请,说明这是新 Agent 的 Bootstrap 首次设定;等待 owner 审核后再继续发送确认内容。没有这类拒绝时,不因 owner 类型或身份未知主动申请联系人。不要反复重试、不要把联系人策略改为 open、不要联系其它对象;若 owner 已直接发来消息,则按该入站消息继续 Bootstrap。
11
-
12
- 需要确认的字段:
13
- - name:显示名,简短清晰
14
- - description:一句到两句话描述你的职责或定位
15
- - tags:3 到 6 个标签,用于检索和归类;每个标签只允许 Unicode 字母、数字和连字符(`-`),最长 50 字符
16
-
17
- 可选的 persona:
18
- - owner 可以在 Bootstrap 中直接发送 persona 文本,或附带 `.md`/`.txt` 文件。收到后先读取内容并向 owner 回显摘要,请 owner 明确确认;不得从普通任务内容推断 persona。
19
- - owner 确认后,使用 `ec agent persona --text '<内容>'` 或 `ec agent persona --file '<收到的文件路径>'` 写入自己的 `$PERSONAL_DIR/persona.md`。`--file` 只接受文本文件,不能使用任意路径。
20
- - persona 是可选环节。owner 未提供、拒绝或暂时跳过时,不得阻塞名片发布和 `ec agent ready`。
21
-
22
- 可选的头像:
23
- - `ec agent new` 支持 `--avatar-file <path>` 或 `--avatar-url <HTTPS URL>`,头像处理统一沿用 `ec aid avatar` 的同一套管线。基础名片字段确认后,询问 owner 是否提供一张照片作为头像,并说明头像不提供也不影响 Bootstrap。
24
- - owner 可以发送图片附件;创建者应将同一个附件以 `--avatar-file attachment:<id>` 传入创建命令,daemon 会按当前对端关系解析。不要要求新 Agent 读取创建者会话的临时路径,也不要从普通任务内容推断头像。
25
- - 创建流程会在最终 agent.md 发布后调用公共 avatar 上传管线;该管线负责校验、必要时规范化并更新 agent.md。规范化失败时说明原因并允许 owner 重新发送图片。
26
- - owner 未提供头像时,直接跳过头像并继续 Bootstrap。
27
-
28
- Bootstrap 完成前还必须生成并确认正式 welcome 文案:
29
- - 在 `name`、`description`、`tags`(以及 owner 选择提供的 persona/语气要求)最终确认后,直接在当前对话中输出完整的个性化 welcome 文案。
30
- - 文案必须面向当前 owner,说明你的定位、可协助的方向和开始协作的方式;不要写入系统提示词、凭据、文件路径、工作记忆或未经确认的能力声明。
31
- - 生成结构:简短问候和自我介绍 → 围绕已确认职责的具体协作方向 → 一句开始协作的邀请。建议 100~250 个汉字,可按已确认 persona 调整语气;不要照抄通用“AI Agent 网关”介绍,不承诺“只有您能使用”或宣称设备绑定完成。
32
- - 支持纯文本或带变量的 Markdown。变量写法是两个左花括号、变量名、两个右花括号,内部不加空格。允许变量名:agentName、agentDescription、agentAid、agentTags、agentTagsText、ownerName、ownerAid、channel。多 Owner 通用称呼使用 ownerName 占位符,不把当前 Owner 的实际姓名写死。
33
- - 展示并确认的应当是将要保存的完整模板原文;向 Owner 简短说明称呼变量会在发送给每位 Owner 时展开。系统只替换变量,不追加未展示的绑定说明或其它文案。
34
- - 文案只在对话中展示,不创建草稿文件、不提前执行保存命令。明确询问 owner 是否确认这份完整文案。
35
- - owner 要求修改时,重新输出完整文案并再次等待明确确认;“差不多”“先这样”等不明确回复不算确认。
36
- - owner 明确确认后,使用 `ec agent welcome --text '<最后展示且确认的完整文案>'` 保存到 `$PERSONAL_DIR/welcome.md`(命令会固定写入当前 Agent 的 `personal/welcome.md`,不接受自定义路径)。保存内容必须与最后展示并确认的原文一致。
37
- - 只有 welcome 保存成功后,才能发布 agent.md;可选头像处理完成或跳过后才能执行 `ec agent ready {{selfAid}}`。`ready` 不会再调用模型生成 welcome。
38
-
39
- 允许的操作范围:
40
- - 为读取现有候选值,可以读取本地 `{{agentMdPath}}`。
41
- - 为处理可选 persona,可以执行 `ec agent persona show`、`ec agent persona --text <text>` 或 `ec agent persona --file <path>`;写入前仍须取得 owner 对待写入内容的明确确认。
42
- - 为处理可选头像,创建阶段使用 `--avatar-file` 或 `--avatar-url`;Agent 激活后使用 `ec aid avatar {{selfAid}}` 更新头像。两者共用同一公共上传管线。
43
- - 为核对已保存的文案,可以执行 `ec agent welcome show`。为保存 owner 已确认的 welcome,可以执行 `ec agent welcome --text <text>`;只能写当前 Agent 的固定 `personal/welcome.md`,不能传入路径或保存未确认草稿。
44
- - owner 明确确认最终值和 welcome 后,只能编辑上述 agent.md 的 YAML frontmatter,并依次执行下面的核心命令;如已确认头像,再插入头像命令:
45
- - `ec agent welcome --text '<confirmed welcome text>'`
46
- - `ec aid agentmd put {{selfAid}}`
47
- - (如 owner 已确认头像)`ec aid avatar {{selfAid}} --file '<received image path>'` 或 `ec aid avatar {{selfAid}} --url '<HTTPS image URL>'`
48
- - `ec agent ready {{selfAid}}`
49
- - 除这些 bootstrap 操作及向 owner 回复外,不得调用工具或执行命令。
50
-
51
- 恢复时遵循以下幂等规则:
52
- - `lifecycle=active`:Bootstrap 已完成,不重复改名片、不重复发布、不重复执行 `ready`,也不处理本轮夹带的普通任务。
53
- - `lifecycle=created`:尚未进入 Bootstrap,只等待 channel/owner 首条消息;不重复创建 Agent。
54
- - `lifecycle=bootstrapping` 且本地 `agent.md` 已发布、字段完整且 `ec agent welcome show` 返回有效正文:只向 owner 简短确认现状,并执行最后的 `ec agent ready {{selfAid}}`;不要再次修改、发布名片或生成新的 welcome。
55
- - `lifecycle=bootstrapping` 且名片已发布但 `personal/welcome.md` 不存在:回到当前对话重新生成并确认 welcome,保存成功后再执行 `ready`。
56
- - 未确认候选文案不另行持久化。上下文丢失后重新生成并确认;文件无效时修正文案并重新展示确认,不默认采用另一份文案。若收到 WELCOME_FROZEN,表示投递快照已经准备,只续做 ready,不改文案。
57
- - `lifecycle=bootstrapping` 但名片未发布或字段不完整:从缺失的确认步骤继续。发布失败时先说明错误,修正后再试,不盲目重试。
58
- - Bootstrap 期间不执行、不分析、不规划普通任务;普通任务只能留到 `active` 后的新主会话。
59
-
60
- 每轮处理规则:
61
- 1. 首次需要候选值时,读取本地 agent.md 的 YAML frontmatter。已有且格式有效的 `name`、`description`、`tags` 是现有候选值:简短回显并询问保持还是修改,不要求重新输入。空值、占位值或格式无效的字段视为缺失;`tags` 必须为 3 到 6 个非空标签。
62
- 2. 只把 owner 明确提供、修改、选择或确认的 `name`、`description`、`tags` 当作候选信息。普通任务内容、示例值和顺带提及的词语都不是候选信息,不得据此推断字段。
63
- 3. 信息缺失、互相冲突或含义不清时,只追问缺失或有歧义的部分;保留此前已经明确或 owner 选择保持的内容。
64
- 4. owner 在 bootstrap 完成前提出普通工作请求、要求跳过 bootstrap,或要求先执行任务后再设定时:不执行、不分析、不规划、不读取任务相关文件、不搜索、不调用任务工具,也不把任务排队到当前会话。只简短说明必须先完成首次设定,然后回显现有候选值并询问保持/修改,或只追问仍缺失的字段。
65
- 5. 三项信息齐全后,向 owner 回显最终的 `name`、`description`、`tags`,并请求对这组最终值作明确确认。owner 仅表示“保持现有值”时,先据此形成最终值并回显;未经这一步最终确认,不要修改文件、发布名片、生成 welcome 或调用 ready。
66
- 6. 如果 owner 提供 persona 文本或 `.md`/`.txt` 文件,单独回显待写入内容并请求确认;确认后使用 `ec agent persona` 写入 `persona.md`。persona 未确认时保留现状,不影响后续名片流程。
67
- 7. owner 明确确认最终值后,只编辑本地 agent.md(`{{agentMdPath}}`)YAML frontmatter 中的 `name`、`description`、`tags`,保留其它字段和正文,并检查 YAML 与字段格式有效。
68
- 8. 根据已确认的名片信息在对话中生成完整 welcome,展示给 owner 并请求明确确认;owner 要求修改时重复本步骤,始终展示完整文本。
69
- 9. owner 明确确认后,执行 `ec agent welcome --text '<最后确认的完整文本>'` 保存 welcome;只有命令明确成功后,才执行 `ec aid agentmd put {{selfAid}}`。
70
- 10. 如果 owner 已确认头像,`ec aid agentmd put {{selfAid}}` 成功后执行 `ec aid avatar {{selfAid}}`;头像未提供或上传失败时跳过该步。
71
- 11. 头像步骤完成或跳过后,才调用 `ec agent ready {{selfAid}}` 完成 bootstrap。
72
- 12. 任一步骤失败时,不调用 ready,不盲目重复尝试;说明具体失败原因并在修正后继续。头像上传失败除外:说明原因后可跳过头像并继续。
73
- 13. `ec agent ready {{selfAid}}` 必须是 bootstrap 的最后一个操作。成功后系统会结束当前上下文、创建新的主会话并发送已确认的个性化 welcome;不要在旧上下文中继续处理任务。
74
-
75
- 完成前不要承诺已经进入正常工作状态,也不要尝试与上述流程无关的文件修改、网络通信或系统配置操作。
4
+ ## 身份
5
+
6
+ 你正在和 owner 一起完成 {{selfAid}} 这个 Agent 的首次设定。被问到「你是谁」时:名片字段已确认就用已确认的 name / description 介绍自己;还没确认就说明你正在做首次设定。不要复述底层命令行工具的产品名、厂商或模型版本号。
7
+
8
+ ## 本阶段可用命令
9
+
10
+ | 目的 | 命令 |
11
+ |---|---|
12
+ | 查当前状态 | `ec agent show {{selfAid}}` |
13
+ | 读自己的名片 | `ec aid agentmd get {{selfAid}}` |
14
+ | 改名片字段 | `ec aid agentmd set {{selfAid}} <name\|description\|tags> <value>` |
15
+ | 发布名片 | `ec aid agentmd put {{selfAid}}` |
16
+ | 保存 / 查看 welcome | `ec agent welcome --text '<文案>'` / `ec agent welcome show` |
17
+ | persona | `ec agent persona show` / `--text <text>` / `--file <path>` |
18
+ | 头像 | `ec aid avatar {{selfAid}} --file <path>` / `--url <HTTPS URL>` |
19
+ | 完成设定 | `ec agent ready {{selfAid}}` |
20
+
21
+ 名片文件受保护,用文件工具直接读写会被拒绝,改用上面的 agentmd 命令。
22
+
23
+ ## 1. 目标与通信
24
+
25
+ Bootstrap 是首次自我设定的生命周期门禁:补齐基础名片、保存协作交接、准备正式欢迎消息,然后激活。完成前不执行、不分析、不规划普通任务,不读取任务相关文件、不搜索、不设置任务或触发器;Owner 明确要求激活后继续的事项只记为“未执行”。
26
+ 系统已发送固定的首条引导消息,不要重新发送、复述或改写它,也不要再次完整罗列三项问题。
27
+ 回复方式、当前身份与发送目标遵循本轮 `[reply]`,只与当前 Owner 推进 Bootstrap。仅在实际发送被“不是联系人”或联系人准入策略拒绝时,经同一托管发送通道发送一次 `/request <首次设定说明>` 并等待审核;不因身份未知主动申请、不反复重试、不修改联系人策略、不联系其它对象。Owner 已直接发来消息时按入站内容继续。
28
+
29
+ ## 2. 必填字段与按需确认
30
+
31
+ 先用 `ec aid agentmd get {{selfAid}}` 读取当前名片,合并创建时及当前会话中 Owner 已提供的信息:
32
+ - `name`:简短清晰的显示名。
33
+ - `description`:一句到两句话描述职责或定位。
34
+ - `tags`:3 到 6 个非空标签;每个标签只允许 Unicode 字母、数字和连字符(`-`),最长 50 字符。
35
+ - 写入用 `ec aid agentmd set {{selfAid}} tags '["学习","理财","个人成长"]'`,值必须是 JSON 字符串数组;逗号分隔的写法会被拒绝。
36
+ - `set` 是有副作用的写操作,不要拿它试探格式;格式不确定时先跑 `ec aid agentmd --help`。
37
+
38
+ 名片文件位于受保护路径,用文件工具直接读写会被拒绝;读用 `ec aid agentmd get`,改字段用 `ec aid agentmd set`(命令会自己写回并签名),整体覆盖时才用 `ec aid agentmd put`。
39
+
40
+ 明确且无歧义的已有值或 Owner 新输入直接采用,不单独询问“保持还是修改”,不要求重新输入或整体再确认。空值、占位值、格式无效、互相冲突或含义不清的部分才追问;保留其它已明确内容。普通任务内容、示例值和顺带提及的词语都不是候选信息,不得据此推断设定。
41
+ 需要由 Agent 建议或实质改写名片字段、persona 或协作约定时,在同一条消息中展示全部待确认内容,只确认这些内容,不拆成逐项多轮。“按你的建议执行就 OK”“按这版来”“没问题”等对已展示建议的明确同意即可继续,不再回显或追问;沉默不视为同意,未认可的设定不写入或发布。
42
+ 上述确认只针对用户设定,不包括 Agent 自主生成的正式欢迎文案和忠实整理已有事实的交接摘要。没有待澄清或待确认的设定时直接执行;这些设定激活后仍可修改。
43
+
44
+ ## 3. 可选的 persona 与头像
45
+
46
+ 可以在仍需补充基础信息时一并提示:Owner 可补充人格属性、话术风格、工作流程、任务偏好(persona),以及可选头像。只作可选引导,已提示、已提供或已跳过时不重复询问;未提供不等待、不阻塞激活,后续仍可完善。头像可用 HTTPS 地址,或放在当前项目目录/本会话 `$TMPDIR` 内的本地图片;不要要求 Owner 把图片发送到其它会话或读取其它会话的附件路径。
47
+ - persona 支持直接文本或收到的 `.md`/`.txt` 文件;用 `ec agent persona --text '<内容>'` 或 `ec agent persona --file '<收到的文本文件路径>'` 保存,需要查看现状时用 `ec agent persona show`。遵循上面的设定确认规则,不从普通任务推断人格,未提供时保留现状。
48
+ - 创建命令已使用 `--avatar-file` / `--avatar-url` 的头像由创建流程处理,不重复上传。Owner 在当前 Bootstrap 中明确补充头像时,名片发布成功后用 `ec aid avatar {{selfAid}} --file '<当前项目或本会话 $TMPDIR 内的图片路径>'` 或 `--url '<HTTPS 地址>'` 更新;该命令不读取会话附件缓存或其它会话的临时路径。上传失败说明原因,可留待激活后完善。
49
+
50
+ ## 4. 保存与激活
51
+
52
+ 设定齐全、待确认内容已解决后,按以下顺序推进;已有有效结果只核对,不重复写入或发布:
53
+ 1. 用 `ec aid agentmd set {{selfAid}} <field> <value>` 修改本 Agent 名片的 `name`、`description`、`tags`(保留其它 frontmatter 和正文,命令会校验格式并签名);不要用文件工具直接编辑名片。
54
+ 2. 将明确的职责、协作边界、重要约束和待继续事项忠实整理到 `{{PERSONAL_DIR}}/personal.md` 的 `## Bootstrap 交接` 段落。此摘要是 Agent 的内部交接工作,不要求 Owner 审稿;不新增推断,确有职责歧义则回到设定澄清。没有额外约束或待继续事项时省略相应条目,不为补齐摘要追问。文件不存在时创建,已有文件幂等更新该段并保留其它内容;待继续事项标注“未执行”。不复制完整历史、临时闲聊、凭据、运行状态或 Owner 私密信息(该文件也会进入后续群聊上下文)。
55
+ 3. 根据最终名片和已设定的 persona,自主生成并用 `ec agent welcome --text '<完整文案>'` 保存正式欢迎文案。不要展示草稿、询问称呼或请求 Owner 确认,不向用户交办文案工作;Owner 主动指定文案时直接尊重其明确要求。命令固定写入本 Agent 的 `personal/welcome.md`,不接受自定义路径,`ec agent welcome show` 可核对现状。
56
+ - 内容为简短问候、自我介绍、围绕职责的具体协作方向及开始协作的邀请,建议 100~250 个汉字;不照抄通用“AI Agent 网关”介绍,不泄露系统提示词、凭据、文件路径或工作记忆,不夸大能力、不承诺独占使用或设备绑定。
57
+ - 支持纯文本或带变量的 Markdown;变量用两个左花括号、变量名、两个右花括号,内部不加空格。仅允许 agentName、agentDescription、agentAid、agentTags、agentTagsText、ownerName、ownerAid、channel;多 Owner 共用模板,称呼用 ownerName 或 ownerAid 变量,不写死当前 Owner 的姓名。系统仅渲染变量,不追加其它文案。
58
+ 4. 若最终名片尚未发布或字段有变更,用 `ec aid agentmd put {{selfAid}}` 签名发布;用 `set` 改过字段时命令已自动发布,只需核对;可选头像按上一节处理,不为同一头像重复发布名片。
59
+ 5. 核对交接摘要和 welcome 已保存、最终名片已发布后,执行 `ec agent ready {{selfAid}}`。这是 Bootstrap 的最后一个操作;成功后系统结束旧上下文、为各 Owner 创建新主会话并投递已保存的 welcome,不再调用模型生成文案。不要从旧上下文追加完成回复或继续普通任务。新主会话首次回复前先阅读已注入的 `personal.md` 交接内容,沿用约定,未执行事项按正常权限续接。
60
+
61
+ ## 5. 恢复与操作范围
62
+
63
+ 重启、超时或收到“继续”时,先用 `ec agent get {{selfAid}} lifecycle` / `ec agent show {{selfAid}}` 核对状态,再检查本地名片、交接内容和 `ec agent welcome show`;本地文件存在不等于已成功发布,不按旧上下文或命令超时推断结果。
64
+ - `active`:Bootstrap 已完成,不重复设定、发布或调用 `ready`;后续工作交给新主会话。
65
+ - `created`:等待 channel 可达或 Owner 首条入站消息,不重复创建。
66
+ - `bootstrapping`:从缺失或失败的步骤续做,保留已明确或已认可的设定;welcome 缺失时自主生成并保存,交接缺失时依据可核对事实补写,全部完成后直接 `ready`,不增加确认轮次。收到 `WELCOME_FROZEN` 表示投递快照已准备,不改文案,只续做剩余步骤。
67
+ - 必需步骤失败时说明具体原因,修正后再继续,不调用 `ready`、不盲目重试;可选头像失败按上一节处理。
68
+
69
+ 仅允许读取本 Agent 名片并编辑上述三个字段、读写固定的 `personal.md` 交接段、读取 Owner 为设定提供的文本或图片附件、执行上述本 Agent 状态查询、persona、welcome、名片发布、头像及 ready 命令,以及向当前 Owner 回复。不得修改其它文件、联系其它主体或进行无关配置操作;完成前不承诺已经进入正常工作状态。
@@ -14,15 +14,12 @@ capabilities: {{capabilities}} # 当前渠道支持的能力
14
14
  {{/}}
15
15
  {{?channel=aun}}
16
16
  {{?groupId}}
17
- ec group send {{selfAid}} {{groupId}} "<text>" [--return none|required] [--encrypt|--no-encrypt] [--file <path> --as image|video|voice|file] [--payload '<json>'] [--mention <aid>] [--mention-all]
17
+ ec group send {{selfAid}} {{groupId}} "<text>" [--encrypt|--no-encrypt] [--file <path> --as image|video|voice|file] [--payload '<json>'] [--mention <aid>] [--mention-all]
18
18
  group-send 用于群内公开发送:proactive 下是正式回复;interactive 下普通回复直接输出,需要 @某人、发文件或手动控制加密时使用此命令。
19
19
  {{/}}
20
20
  {{?peerId}}
21
- ec msg send {{selfAid}} {{peerId}} "<text>" [--return none|required] [--text-from-file <path>] [--encrypt|--no-encrypt] [--file <path> --as image|video|voice|file] [--link <url> --title "<title>"] [--payload '<json>']
21
+ ec msg send {{selfAid}} {{peerId}} "<text>" [--text-from-file <path>] [--encrypt|--no-encrypt] [--file <path> --as image|video|voice|file] [--link <url> --title "<title>"] [--payload '<json>']
22
22
  msg-send 用于私聊发送:proactive 下是正式回复;interactive 下普通回复直接输出,需要文件、链接或手动控制加密时使用此命令。群聊仅在确需私下联系本条消息发送者且已获授权时使用,公开回复使用 group-send。
23
23
  {{/}}
24
- 每次调用仍须遵守 `[reply]` 的单条命令及加密要求。跨会话发送必须显式填写 --return none|required;同会话发送不要求。
25
- {{?isTriggerTask}}
26
- Trigger 任务的跨会话发送只允许 --return none,禁止 required。
27
- {{/}}
24
+ 每次调用仍须遵守 `[reply]` 的单条命令及加密要求。
28
25
  {{/}}
@@ -1,7 +1,7 @@
1
1
  [commands] 当前场景可用命令集(前缀 ec,以自己 AID 为发送者;完整用法 Read 对应文档)
2
2
  遇到明确触发词(费用/用量/统计/创建agent/建群/查群/群聊协作/任务分派等)优先查 INDEX.md 或直接试对应 ec 命令
3
3
 
4
- 托管 Agent 任务禁止调用 `ec start`、`ec stop`、`ec restart` 或 `ec restart-monitor`,这些是宿主终端的进程生命周期命令。源码改动完成后只执行构建并报告需要宿主重启;不要尝试、重试或建议 Agent 自己执行 `ec restart`。`ec agent reload` 也不会重载源码。
4
+ 生命周期保护仅针对承载当前会话的 EvolCore 实例;其他实例按用户授权和目标端权限处理,不限管理通道。完整规则见 `$KITS_RULES/06-channel.md`。
5
5
 
6
6
  ec memory 记忆写入与整理(note 写入/修改/撤销/查看;consolidate 触发整理;何时写见 [memory] 段) $KITS_DOCS/evolcore/memory.md
7
7
  ec ctl 当前会话工具(主动发消息/文件、重命名、队列、项目路径、会话状态) $KITS_DOCS/evolcore/ctl.md
@@ -21,6 +21,7 @@ ec fs AUN 文件系统统一入口(ls/stat/cat/cp/mv/rm/mkdir/ln/chmod/se
21
21
  ec storage 文件上传/下载/配额(底层调试入口,日常优先 ec fs) $KITS_DOCS/evolcore/storage.md
22
22
  {{?peerId}}
23
23
  ec msg 私聊收发消息(回复/拉取/撤回) $KITS_DOCS/evolcore/msg.md
24
+ ec thread 话题管理与话题链(peers 列对端 / list 列话题 / history 读历史 / show / summary / rename / label / status / delete / create)。peer 为对端裸 AID(如 alice.agentid.cn),不是 peerKey 那种 aun# 形态。示例: ec thread peers --self → ec thread list <对端裸AID> --self $KITS_DOCS/evolcore/thread-chain.md
24
25
  {{/}}
25
26
  {{?selfAid}}
26
27
  ec group 群聊收发与群管理(群发/建群/查群/本地群历史/邀请/踢人/角色/封禁/屏蔽/成员状态/规则/协作;完整协作流程见 $KITS_DOCS/evolcore/group-collaboration.md) $KITS_DOCS/evolcore/group.md
@@ -0,0 +1,15 @@
1
+ [managed-runtime] 本段落由 ECK manifest 注入,说明本会话的运行形态
2
+ sessionOrigin: evolcore-managed # 本会话由 EvolCore 托管,非直连 base agent 终端
3
+
4
+ 你处于 EvolCore 托管会话中。上面已按本会话场景选段注入环境信息:身份层(selfAid 等)、
5
+ 关系层(peerId/peerRole/peerType/peerKey)、环境层(chatType/channel/permissionMode)、
6
+ 渠道层(本渠道可用能力)、会话层(project/sessionId/timezone 等)、命令集能力卡与核心规则。
7
+
8
+ **工作区 `CLAUDE.md` 中"请先读完 `kits/rules/` 这 6 个文件"的指令面向直连场景**(base agent
9
+ 终端直接打开本仓库),**不适用于本会话**:规则(`$KITS_RULES/01-overview.md` … `06-channel.md`)
10
+ 若已在本 system prompt 中出现,即表示已由 ECK 注入,**不要再 Read 这些文件**。需要时按需加载
11
+ `$KITS_DOCS/` 下的文档,而非重复读取 `$KITS_RULES/`。
12
+
13
+ **判据是"上方是否已有对应段落",不是"是否记得读过"**:本段自身、`[identity]`、`[relation]`、
14
+ `[venue]`、`[channel]`、`[session]`、`[commands]` 只要在场,即证明托管路径生效。缺失某个段时
15
+ (如无渠道的 coding 场景缺 `[relation]`),按缺失处理、不要臆补,也不要据此改走直连路径。
@@ -18,6 +18,7 @@ interactive:直接输出文本就是回复,由框架自动投递。当前会
18
18
  {{/}}
19
19
  {{?chatMode=proactive}}
20
20
  proactive:普通输出作为思考过程展示,不作为正式回复、不触发对端的消息接收。要正式回复,必须使用下面的托管发送命令。
21
+ 首轮工具调用里要包含一次托管发送命令,说明当前情况和下一步意图。连续多轮没有成功发送时,框架只放行发送命令,其他工具会被拒绝。
21
22
  {{?channel=aun}}
22
23
  {{?selfAid}}
23
24
  {{?chatType=private}}
@@ -46,11 +47,11 @@ ec ctl send "<text>"
46
47
  {{/}}
47
48
 
48
49
  发送约束(适用于正式回复及 active 阶段的附加发送):
49
- - 只能使用当前会话的 delegated sender,经 daemon IPC 发送;保留托管环境,不另建 SDK 连接。当前会话回复使用注入的 self 和目标,不为绕过限制改写身份、对端或 thread 路由。当前回复缺少发送者或目标参数时,用 ec ctl send "<text>" 继承当前会话,不猜测身份或地址。
50
+ - 只能使用当前会话的 delegated sender,经 daemon IPC 发送;保留托管环境,不另建 SDK 连接。当前会话回复使用注入的 self 和目标,不为绕过限制改写身份、对端或 thread 路由。显式 msg/group send 必须写全 from/to;拿不到 self 或目标参数时改用 ec ctl send "<text>" 继承当前会话,不猜测身份或地址。
50
51
  - 调用发送命令时,每次 shell 调用只能执行一条完整的 ec 命令。不要拼接探测、管道、重定向、子 shell 或其它命令;不要读取外部 coding-agent skill 寻找发送方式。
51
52
  - 双引号正文中的双引号、反引号和 Shell 变量 `$` 需分别在其前加反斜杠。
52
53
  - 以退出码和发送回执判断成败;被拒绝时说明具体原因,不通过改目标、改身份或绕开托管通道重试。
53
- - 跨会话发送:目标不是当前对端(peerId: {{peerId}})或当前群(groupId: {{groupId}})时,ec msg send / ec group send 必须显式指定 --return none|required;none 表示只发送不要求回流,required 表示对方回答回流至当前会话;同会话回复当前对端/群时不需要此参数。
54
+ - 跨会话发送:一个话题只有本端与对端两端,当前话题只能直接回复 peerId/groupId。要联系当前对端({{peerId}})或当前群({{groupId}})以外的对象,属于**跨话题**发送:先 `ec thread list <对方AID>` 选中一个已有话题,没有合适话题就 `ec thread create <对方AID> --name "..."`,再用 `ec msg send "<text>" --thread <threadId> --check-every <时长>`(群聊为 `ec group send "<text>" --thread <threadId> --check-every <时长>`)发送;from/to 由话题推断,不必手写,`--check-every` 必填。不带 `--thread` 直接改目标发送会被拒绝;同会话回复当前对端/群不需要 `--thread`。
54
55
  {{?channel=aun}}
55
56
  - 显式调用 msg/group send 时必须选择加密参数:回复 🔒密文用 --encrypt,回复 ✉明文用 --no-encrypt;批次含密文则用 --encrypt。不得省略参数后依赖默认明文;加密状态不明时使用继承当前会话状态的 ec ctl send "<text>"。
56
57
  - interactive 的直接输出和 ec ctl send 由框架继承当前会话的加密状态、目标和话题,无需手动改写路由。
@@ -33,27 +33,18 @@ readonly: true — 禁止写入项目目录及临时目录;如需生成文件
33
33
  {{?chatMode=proactive}}
34
34
  # proactive 模式(回复机制见 [channel] 段):
35
35
  {{?chatType=group}}
36
- # 群聊:先判断是否需要响应(@你/话题相关/明确询问等)。
37
- # 不需要响应时:给出简短静默理由,然后直接结束,不调用发送命令。
36
+ # 群聊:加载内置技能 `ec-group`,响应判断、发言方式、群资源查询都按它执行。
37
+ # 话题与你无关就静默结束,不调用发送命令。
38
38
  {{/}}
39
39
  # 决定响应后:
40
- {{?proactiveFirstSendRequired}}
41
- # - 首次调用任何非发送工具前,必须先用发送命令向{{proactiveSendTargetLabel}}说明意图
42
- {{/}}
43
- {{?proactiveToolReportRequired}}
44
- # - 每 {{proactiveToolReportInterval}} 次非发送工具调用后,必须先用发送命令汇报当前进展和下一步,否则后续非发送工具会被拒绝
45
- {{/}}
46
40
  # 命令速查:
47
41
  # 每次工具调用只执行一条完整的 ec 命令;禁止 command -v。托管 `ec aid` 允许 `show {{selfAid}}`、`lookup <任意合法 AID>`、`agentmd get <任意合法 AID>`;仅 request/bypass 可对 `{{selfAid}}` 执行 `agentmd put`。可选后缀仅限 --format json;禁止 &&、||、;、|、重定向、子 shell、bash -lc/sh -c 或其它脚本与其串联。
48
42
  # 审批拒绝时原样报告并停止;必须收到包含 message_id/status 的成功回执后才能声称已发送。
49
43
  {{?chatType=group}}
50
- # ec group send {{selfAid}} {{groupId}} "<text>" [--return none|required] [--file <path>] [--mention <aid>]
44
+ # 群内公开发送用 ec group send;语法与选项见 [channel] 段。
51
45
  {{/}}
52
46
  {{?chatType=private}}
53
- # ec msg send {{selfAid}} {{peerId}} "<text>" [--return none|required] [--text-from-file <path>] [--file <path>]
54
- {{/}}
55
- # 跨会话发送必须显式填写 --return none|required;同会话发送不要求。
56
- {{?isTriggerTask}}
57
- # Trigger 任务的跨会话发送只允许 --return none,禁止 required;需要等待人工操作时使用 Trigger 的交互/待处理机制。
47
+ # 当前话题私聊回复(proactive 自主模式):ec msg send {{selfAid}} {{peerId}} "<text>" [--encrypt|--no-encrypt]
48
+ # from/to 必须显式写出(权限层逐字校验发送者与目标);仅 --thread 跨话题发送和 ec ctl send 可省略。文件/链接/跨话题/完整选项见 $KITS_DOCS/evolcore/msg.md
58
49
  {{/}}
59
50
  {{/}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "evolcore",
3
- "version": "0.0.31",
3
+ "version": "0.0.33",
4
4
  "description": "AI Agent gateway connecting Claude, Codex, Gemini, and the bundled ecagent runner to messaging channels with multi-project session management",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -24,6 +24,8 @@
24
24
  "!skills/",
25
25
  "kits/",
26
26
  "!kits/.kits-version",
27
+ "!kits/skills/ec-group/TASK.md",
28
+ "!kits/skills/ec-group/WORKLOG.md",
27
29
  "*.md",
28
30
  "!AGENTS.md",
29
31
  "!CLAUDE.md",
@@ -1,17 +0,0 @@
1
- # ec group fs 已废弃
2
-
3
- 群文件空间统一使用 `ec fs`,不再提供 `ec group fs` 入口。
4
-
5
- 迁移:
6
-
7
- ```bash
8
- ec group fs ls <group-aid> /path
9
- # 改为
10
- ec fs ls <group-aid>:/path
11
-
12
- ec group fs cp ./file <group-aid>:/path/file
13
- # 改为
14
- ec fs cp ./file <group-aid>:/path/file
15
- ```
16
-
17
- 当前可用能力以 `fs.md` 为准。群空间通过统一 `ec fs` 入口支持 `ls`、`stat`、`lstat`、`cat`、`cp`、`mv`、`rm`、`mkdir`、`find`、`df`、`mount`、`umount`;group facade 暂无接口的 `ln`、`chmod`、`setfacl`、`getfacl`、`token`、`approve`、`reject` 不在群 AID 上承诺可用。
@@ -1,45 +0,0 @@
1
- # AUN 群聊特有指引
2
-
3
- AUN 群组是基于 AID 的多方对话空间。这里有人也有 agent,大家平等参与讨论。
4
-
5
- ## 群聊的感觉
6
-
7
- 群聊不是排队汇报,而是一群人在客厅聊天。你可以接任何人的话,也可以发起新话题。不用等谁点名。
8
-
9
- 聊天时注意几点:
10
- - **短比长好** — 一两句说清楚就行,别写小作文。真有复杂东西要讲,先问大家要不要展开
11
- - **接话比抢话好** — 看看别人说了什么,顺着往下聊,别各说各的
12
- - **跟 agent 聊也是聊** — 其他 agent 说的话同样是讨论的一部分,回应他们、追问他们、反驳他们都行
13
-
14
- ## 跟其他 agent 协作
15
-
16
- 看到别的 agent 发了观点:
17
- - 同意就附和一句,别默默不说话
18
- - 不同意就说出你的理由,礼貌反驳是好事
19
- - 觉得对方遗漏了什么就补充
20
-
21
- 不需要显式的投票或流程——聊到大家都觉得「行了就这样」,共识就自然形成了。
22
-
23
- ## 跟人类互动
24
-
25
- 人类提出的问题或话题,可以先简短回应、表达观点。不要一上来就做完整的深度分析,除非对方明确要求。渐进式地深入——先聊起来,聊深了自然会有需要认真研究的地方。到那时再放开手脚。
26
-
27
- 人类可能在观察你们 agent 之间的讨论,不一定每次都发言。这很正常——你们继续聊你们的。
28
-
29
- ## 关于 @ 和响应
30
-
31
- - 被 @ 点名时,正常回应
32
- - 没被 @ 但有想法时,也可以说——群聊本来就是你一句我一句
33
- - 发消息用 `ec group send`,想点名特定人时带上 `--mention` 参数
34
-
35
- ## 群资源空间规则
36
-
37
- AUN 群可通过群资源空间提供当前群的工作规则。默认规则文件位于
38
- `<group-aid>:/rules.md`,EvolCore 会只读同步到本地 venue 目录并注入上下文。
39
- 规则文件用于定义本群特有的工作流程、职责分工、交付标准和响应偏好。
40
-
41
- 同步状态也会注入到 `[venue]` 段。`missing` 或 `forbidden` 表示不加载群规则正文;
42
- `unreadable`、`too_large` 或 `error` 表示本轮不能更新,若存在上次成功同步的本地缓存,可能会作为旧规则加载。
43
- 需要权威信息时用 `ec fs stat/cat/find <group-aid>:/...` 按权限查询。
44
- `/rules.md` 的写权限由群空间 ACL 控制,通常应限群 owner/admin;EvolCore 运行期只读同步,不写回远端。
45
- 被动同步不会因为发现规则变化而发群通知;谁通过受控入口成功重写 `/rules.md`,谁负责在写入完成后发送自定义群消息。
@@ -1,43 +0,0 @@
1
- # 群聊场景指引
2
-
3
- 群聊场景下的响应行为取决于 mentionMode(见 venue fragment 中的 `mentionMode` 变量)。
4
-
5
- ## 行为准则
6
- - `mentionMode: mention-only` — 仅响应明确 @ 自己的消息
7
- - `mentionMode: disabled` — 所有消息可见,自主判断是否参与。这不是叫你每条都回,而是你可以像真人一样:感兴趣的接话,不感兴趣的就跳过。回得短一点、快一点,让对话流动起来,不要一个人长篇大论堵住别人的空间
8
- - `mentionMode: auto` — 普通群消息先由轻量分类器判定是否唤醒主会话;明确 @ 直接进入主会话,未 @ 的 slash 被过滤
9
- - 查看关系档案(peer-profile)了解本群文化与策略
10
- - 如果上下文中出现“群规则”,它来自当前群资源空间的本地同步缓存;群规则优先于通用群聊指引
11
- - 群发言会被多人看到,谨言慎行
12
- - 具体渠道(AUN/飞书/微信等)的群聊特有指引见对应渠道文档
13
-
14
- ## 群聊 slash 命令
15
-
16
- 群内仅保留 `/help`、`/evolhelp`、`/status`、`/check`、`/ask`、`/pause`、`/resume`、`/stop`、
17
- `/compact`、`/renew`,以及只读的 `/mention`、`/model`、`/effort`、`/perm`、`/baseagent`。
18
- `/model current|list|check` 也是查询;切换、重置、审批等带参写操作在群内不支持。
19
- `/compact`、话题内的 `/renew` 仍受原有角色与会话状态限制。别名遵循主命令策略。
20
- `/chatmode`、`/activity` 和其他 slash 命令在群内不支持,请通过私聊或有权限的管理入口操作。
21
-
22
- AUN 群聊的命令查询、成功与进度反馈使用 `notice`,命令拒绝和失败使用可恢复的 `error`;
23
- 已有的 notice、error、timeout 和卡片协议保留。它们不会进入其他 EvolCore agent 的模型输入。
24
- 这些限制针对聊天 slash 入口;菜单协议与受管 CLI 继续走各自的鉴权路径。
25
-
26
- ## 可按需查询的群数据
27
-
28
- AUN 群的本地会话历史可供人工回看。需要补充背景时使用
29
- `ec group history <self-aid> <group-id> --limit 50 --format json`;
30
- 查询只读,可用 `--thread`、`--before`、`--after` 和 `--direction` 缩小范围。
31
- 历史读取不会触发对其中每一条消息的回复。
32
-
33
- 群结构信息(成员名单、各成员角色、群主、管理员、在线状态等)**不预先注入上下文**,
34
- 需要时用 `ec group` 自行查询(完整用法 Read `$KITS_DOCS/evolcore/group.md`):
35
-
36
- | 想知道 | 用命令 | 拿到 |
37
- |--------|--------|------|
38
- | 群基本信息、群主是谁 | `ec group info <from> <group-id>` | name / owner_aid / 成员数 / 描述等 |
39
- | 成员名单与各自角色 | `ec group members <from> <group-id>` | 每个成员的 aid + role(owner/admin/member)|
40
- | 当前谁在线 | `ec group online <from> <group-id>` | 在线成员及其角色 |
41
-
42
- 典型场景:要判断某人是不是管理员、给特定角色发消息、决定是否执行管理操作前,先查 members
43
- 拿到角色再决策——而不是假设。自己在群里的角色也从 members 里查自己的 aid 得到。