@xdxer/dingtalk-agent 0.1.4-beta.8 → 0.1.4

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 (254) hide show
  1. package/CHANGELOG.md +233 -0
  2. package/README.en.md +167 -0
  3. package/README.md +101 -248
  4. package/dist/bin/dingtalk-agent.js +1255 -25
  5. package/dist/bin/dingtalk-agent.js.map +1 -1
  6. package/dist/src/actions.js +98 -14
  7. package/dist/src/actions.js.map +1 -1
  8. package/dist/src/agent-audit.js +1385 -0
  9. package/dist/src/agent-audit.js.map +1 -0
  10. package/dist/src/agent-bindings.js +132 -0
  11. package/dist/src/agent-bindings.js.map +1 -0
  12. package/dist/src/agent-definition.js +182 -0
  13. package/dist/src/agent-definition.js.map +1 -0
  14. package/dist/src/agent-enhance.js +711 -0
  15. package/dist/src/agent-enhance.js.map +1 -0
  16. package/dist/src/agent-platform.js +299 -0
  17. package/dist/src/agent-platform.js.map +1 -0
  18. package/dist/src/bootstrap.js +125 -17
  19. package/dist/src/bootstrap.js.map +1 -1
  20. package/dist/src/config.js +1 -7
  21. package/dist/src/config.js.map +1 -1
  22. package/dist/src/development-workspace.js +755 -0
  23. package/dist/src/development-workspace.js.map +1 -0
  24. package/dist/src/doctor.js +74 -15
  25. package/dist/src/doctor.js.map +1 -1
  26. package/dist/src/dws.js +145 -0
  27. package/dist/src/dws.js.map +1 -1
  28. package/dist/src/eval-evidence.js +193 -0
  29. package/dist/src/eval-evidence.js.map +1 -0
  30. package/dist/src/host-detect.js +146 -0
  31. package/dist/src/host-detect.js.map +1 -0
  32. package/dist/src/instruction-path.js +270 -0
  33. package/dist/src/instruction-path.js.map +1 -0
  34. package/dist/src/invocation.js +36 -0
  35. package/dist/src/invocation.js.map +1 -0
  36. package/dist/src/lab.js +679 -0
  37. package/dist/src/lab.js.map +1 -0
  38. package/dist/src/lease.js +100 -0
  39. package/dist/src/lease.js.map +1 -0
  40. package/dist/src/map.js +157 -0
  41. package/dist/src/map.js.map +1 -0
  42. package/dist/src/memory/candidates.js +451 -0
  43. package/dist/src/memory/candidates.js.map +1 -0
  44. package/dist/src/memory/completion-evidence.js +536 -0
  45. package/dist/src/memory/completion-evidence.js.map +1 -0
  46. package/dist/src/memory/operational.js +263 -0
  47. package/dist/src/memory/operational.js.map +1 -0
  48. package/dist/src/memory/remote-state.js +478 -0
  49. package/dist/src/memory/remote-state.js.map +1 -0
  50. package/dist/src/memory/task-checkpoints.js +204 -0
  51. package/dist/src/memory/task-checkpoints.js.map +1 -0
  52. package/dist/src/multica-deploy.js +1538 -0
  53. package/dist/src/multica-deploy.js.map +1 -0
  54. package/dist/src/multica-provider.js +685 -0
  55. package/dist/src/multica-provider.js.map +1 -0
  56. package/dist/src/opencode-evals.js +1547 -0
  57. package/dist/src/opencode-evals.js.map +1 -0
  58. package/dist/src/opencode-isolation.js +124 -0
  59. package/dist/src/opencode-isolation.js.map +1 -0
  60. package/dist/src/opencode-provider.js +532 -0
  61. package/dist/src/opencode-provider.js.map +1 -0
  62. package/dist/src/opencode-workspace.js +208 -0
  63. package/dist/src/opencode-workspace.js.map +1 -0
  64. package/dist/src/perception.js +225 -0
  65. package/dist/src/perception.js.map +1 -0
  66. package/dist/src/personal-event-evals.js +595 -0
  67. package/dist/src/personal-event-evals.js.map +1 -0
  68. package/dist/src/promotion.js +786 -0
  69. package/dist/src/promotion.js.map +1 -0
  70. package/dist/src/remote-semantic-state-live-evals.js +888 -0
  71. package/dist/src/remote-semantic-state-live-evals.js.map +1 -0
  72. package/dist/src/remote-semantic-state-worker.js +38 -0
  73. package/dist/src/remote-semantic-state-worker.js.map +1 -0
  74. package/dist/src/remote-state-evals.js +502 -0
  75. package/dist/src/remote-state-evals.js.map +1 -0
  76. package/dist/src/response-gate.js +51 -0
  77. package/dist/src/response-gate.js.map +1 -0
  78. package/dist/src/robot-evals.js +771 -0
  79. package/dist/src/robot-evals.js.map +1 -0
  80. package/dist/src/sessions.js +66 -105
  81. package/dist/src/sessions.js.map +1 -1
  82. package/dist/src/setup.js +6 -5
  83. package/dist/src/setup.js.map +1 -1
  84. package/dist/src/skill-manager.js +162 -24
  85. package/dist/src/skill-manager.js.map +1 -1
  86. package/dist/src/skills.js +2 -1
  87. package/dist/src/skills.js.map +1 -1
  88. package/dist/src/storage-evals.js +26 -0
  89. package/dist/src/storage-evals.js.map +1 -0
  90. package/dist/src/types.js.map +1 -1
  91. package/dist/src/upgrade.js +23 -27
  92. package/dist/src/upgrade.js.map +1 -1
  93. package/dist/src/version.js +73 -0
  94. package/dist/src/version.js.map +1 -0
  95. package/dist/src/waits.js +5 -1
  96. package/dist/src/waits.js.map +1 -1
  97. package/dist/src/workspace.js +28 -3
  98. package/dist/src/workspace.js.map +1 -1
  99. package/docs/INSTALLATION.md +50 -3
  100. package/docs/SECOND-AGENT-ACCEPTANCE.md +62 -0
  101. package/docs/architecture/agent-memory-topology.png +0 -0
  102. package/docs/architecture/agent-memory-topology.svg +132 -0
  103. package/docs/architecture/general-agent-kernel-topology.png +0 -0
  104. package/docs/architecture/general-agent-kernel-topology.svg +149 -0
  105. package/docs/architecture/provider-bound-development-workspace.png +0 -0
  106. package/docs/architecture/provider-bound-development-workspace.svg +141 -0
  107. package/docs/architecture/task-completion-gate.png +0 -0
  108. package/docs/architecture/task-completion-gate.svg +191 -0
  109. package/docs/assets/agent-delivery-lifecycle.svg +103 -0
  110. package/docs/schemas/agent-audit-load-evidence.schema.json +14 -0
  111. package/docs/schemas/agent-audit.schema.json +92 -0
  112. package/docs/schemas/agent-bindings.schema.json +54 -0
  113. package/docs/schemas/agent-definition.schema.json +78 -0
  114. package/docs/schemas/agent-enhancement-plan.schema.json +88 -0
  115. package/docs/schemas/agent-enhancement-receipt.schema.json +37 -0
  116. package/docs/schemas/agent-platform.schema.json +13 -0
  117. package/docs/schemas/enriched-invocation.schema.json +46 -0
  118. package/docs/schemas/eval-candidate-plan.schema.json +28 -0
  119. package/docs/schemas/eval-candidate-result.schema.json +20 -0
  120. package/docs/schemas/eval-candidate.schema.json +30 -0
  121. package/docs/schemas/invocation.schema.json +19 -0
  122. package/docs/schemas/memory-candidate-proposal.schema.json +18 -0
  123. package/docs/schemas/memory-candidate.schema.json +76 -0
  124. package/docs/schemas/memory-publish-target.schema.json +25 -0
  125. package/docs/schemas/multica-deployment-list.schema.json +29 -0
  126. package/docs/schemas/multica-deployment-operation.schema.json +51 -0
  127. package/docs/schemas/multica-deployment-plan.schema.json +70 -0
  128. package/docs/schemas/multica-deployment-receipt.schema.json +87 -0
  129. package/docs/schemas/multica-deployment-status.schema.json +23 -0
  130. package/docs/schemas/multica-workspace-inspection.schema.json +77 -0
  131. package/docs/schemas/multica-workspace-plan.schema.json +68 -0
  132. package/docs/schemas/multica-workspace-resource-list.schema.json +27 -0
  133. package/docs/schemas/multica-workspace-status.schema.json +34 -0
  134. package/docs/schemas/observation.schema.json +21 -0
  135. package/docs/schemas/operational-memory-provider.schema.json +36 -0
  136. package/docs/schemas/operational-memory-record.schema.json +24 -0
  137. package/docs/schemas/perception-input.schema.json +56 -0
  138. package/docs/schemas/project.schema.json +115 -0
  139. package/docs/schemas/promotion-list.schema.json +36 -0
  140. package/docs/schemas/promotion-plan.schema.json +60 -0
  141. package/docs/schemas/promotion-policy.schema.json +29 -0
  142. package/docs/schemas/promotion-receipt.schema.json +43 -0
  143. package/docs/schemas/promotion-status.schema.json +23 -0
  144. package/docs/schemas/release-readiness.schema.json +66 -0
  145. package/docs/schemas/remote-semantic-state-live-eval.schema.json +60 -0
  146. package/docs/schemas/remote-semantic-state-manifest.schema.json +79 -0
  147. package/docs/schemas/remote-semantic-state-provider.schema.json +98 -0
  148. package/docs/schemas/response-gate.schema.json +20 -0
  149. package/docs/schemas/task-checkpoint.schema.json +71 -0
  150. package/docs/schemas/task-completion-evidence.schema.json +154 -0
  151. package/docs/schemas/workspace-doctor.schema.json +56 -0
  152. package/docs/schemas/workspace-state.schema.json +39 -0
  153. package/evals/README.md +17 -0
  154. package/evals/baselines/2026-07-16/opencode-basic-010-completion-summary.json +123 -0
  155. package/evals/baselines/2026-07-16/opencode-basic-skill-required-summary.json +69 -0
  156. package/evals/baselines/2026-07-16/opencode-multi-surface-summary.json +63 -0
  157. package/evals/baselines/2026-07-16/remote-state-live-summary.json +70 -0
  158. package/evals/baselines/2026-07-17/agent-enhance-opencode-dogfood-summary.json +98 -0
  159. package/evals/baselines/2026-07-17/personal-event-live-readiness-summary.json +68 -0
  160. package/examples/agents/fde-coach/AGENTS.md +26 -0
  161. package/examples/agents/fde-coach/MEMORY.md +3 -0
  162. package/examples/agents/fde-coach/fields/default/field.json +24 -0
  163. package/examples/agents/fde-coach/knowledge/INDEX.md +4 -0
  164. package/examples/agents/fde-coach/skills/fde-coach/SKILL.md +13 -0
  165. package/examples/agents/release-manager/AGENTS.md +26 -0
  166. package/examples/agents/release-manager/MEMORY.md +3 -0
  167. package/examples/agents/release-manager/fields/default/field.json +24 -0
  168. package/examples/agents/release-manager/knowledge/INDEX.md +4 -0
  169. package/examples/agents/release-manager/skills/release-manager/SKILL.md +13 -0
  170. package/lab/README.md +109 -0
  171. package/lab/agent-eval/catalog.json +91 -0
  172. package/lab/agent-eval/classic-failures.json +177 -0
  173. package/lab/agent-eval/completion-gate-regression.json +99 -0
  174. package/lab/agent-eval/personal-event-live.example.json +94 -0
  175. package/lab/agent-eval/remote-semantic-state-live.example.json +70 -0
  176. package/lab/agent-eval/remote-semantic-state-provider.fixture.json +47 -0
  177. package/lab/agent-eval/remote-state-workspace/AGENTS.md +8 -0
  178. package/lab/agent-eval/remote-state-workspace/opencode.json +7 -0
  179. package/lab/agent-eval/remote-state-workspace/skills/remote-state-operator/SKILL.md +13 -0
  180. package/lab/agent-eval/remote-state.example.json +31 -0
  181. package/lab/agent-eval/workspace/AGENTS.md +7 -0
  182. package/lab/agent-eval/workspace/MEMORY.md +4 -0
  183. package/lab/agent-eval/workspace/artifacts/pending-review.md +3 -0
  184. package/lab/agent-eval/workspace/knowledge/INDEX.md +4 -0
  185. package/lab/agent-eval/workspace/opencode.json +20 -0
  186. package/lab/manifest.example.json +27 -0
  187. package/lab/manifest.personal-event.example.json +27 -0
  188. package/lab/project-workspace/README.md +11 -0
  189. package/lab/project-workspace/fake-multica-provider.mjs +277 -0
  190. package/lab/project-workspace/multica-deploy.fixture.json +29 -0
  191. package/lab/project-workspace/multica-readonly.fixture.json +69 -0
  192. package/lab/project-workspace/observation.fixture.json +14 -0
  193. package/lab/project-workspace/opencode-provider-suite.json +65 -0
  194. package/lab/project-workspace/project.fixture.json +44 -0
  195. package/lab/project-workspace/promotion-policy.fixture.json +15 -0
  196. package/lab/robot-eval/pool.example.json +30 -0
  197. package/lab/robot-eval/suite.json +123 -0
  198. package/lab/robot-eval/workspace/AGENTS.md +21 -0
  199. package/lab/robot-eval/workspace/MEMORY.md +3 -0
  200. package/lab/robot-eval/workspace/knowledge/INDEX.md +5 -0
  201. package/lab/robot-eval/workspace/opencode.json +22 -0
  202. package/lab/schemas/agent-eval-catalog.schema.json +47 -0
  203. package/lab/schemas/lab-manifest.schema.json +70 -0
  204. package/lab/schemas/personal-event-eval.schema.json +91 -0
  205. package/lab/schemas/remote-state-eval.schema.json +66 -0
  206. package/lab/schemas/robot-eval-suite.schema.json +184 -0
  207. package/lab/schemas/robot-pool.schema.json +56 -0
  208. package/package.json +28 -9
  209. package/skills/README.md +23 -0
  210. package/skills/core/dingtalk-agent-compose/SKILL.md +151 -0
  211. package/skills/core/dingtalk-agent-compose/assets/AGENTS.template.md +35 -0
  212. package/skills/core/dingtalk-agent-compose/assets/agent.bindings.dingtalk-doc.template.json +13 -0
  213. package/skills/core/dingtalk-agent-compose/assets/agent.bindings.local.template.json +13 -0
  214. package/skills/core/dingtalk-agent-compose/assets/hosts/opencode/opencode.template.json +12 -0
  215. package/skills/core/dingtalk-agent-compose/assets/role-skill.template.md +32 -0
  216. package/skills/core/dingtalk-agent-compose/evals/evals.json +129 -0
  217. package/skills/core/dingtalk-agent-compose/references/agent-definition-contract.md +55 -0
  218. package/skills/core/dingtalk-agent-compose/references/host-loading-contract.md +58 -0
  219. package/skills/core/dingtalk-agent-compose/references/hosts/claude-code.md +48 -0
  220. package/skills/core/dingtalk-agent-compose/references/hosts/opencode.md +77 -0
  221. package/skills/core/dingtalk-agent-compose/references/storage-routing.md +20 -0
  222. package/skills/core/dingtalk-agent-eval/SKILL.md +140 -0
  223. package/skills/core/dingtalk-agent-eval/assets/eval-catalog.template.json +18 -0
  224. package/skills/core/dingtalk-agent-eval/evals/evals.json +83 -0
  225. package/skills/core/dingtalk-agent-eval/references/eval-topology.md +48 -0
  226. package/skills/core/dingtalk-agent-eval/references/evidence-contract.md +52 -0
  227. package/skills/core/dingtalk-agent-eval/references/failure-to-case.md +35 -0
  228. package/skills/core/dingtalk-agent-eval/references/interactive-debug-channels.md +93 -0
  229. package/skills/core/dingtalk-agent-eval/references/local-connector-smoke.md +75 -0
  230. package/skills/core/dingtalk-agent-eval/references/scenario-taxonomy.md +25 -0
  231. package/skills/core/dingtalk-agent-eval/references/storage-modes.md +75 -0
  232. package/skills/core/dingtalk-basic-behavior/SKILL.md +87 -0
  233. package/skills/core/dingtalk-basic-behavior/assets/memory-candidate-proposal.json +10 -0
  234. package/skills/{dingtalk-basic-behavior/assets/task-checkpoint.md → core/dingtalk-basic-behavior/assets/task-checkpoint.json} +2 -21
  235. package/skills/{dingtalk-basic-behavior → core/dingtalk-basic-behavior}/references/action-contract.md +2 -0
  236. package/skills/core/dingtalk-basic-behavior/references/memory-and-evolution.md +53 -0
  237. package/skills/core/dingtalk-basic-behavior/references/perception-and-gates.md +28 -0
  238. package/skills/core/dingtalk-basic-behavior/references/risk-authority-and-privacy.md +62 -0
  239. package/skills/{dingtalk-basic-behavior → core/dingtalk-basic-behavior}/references/task-lifecycle.md +47 -10
  240. package/skills/core/dingtalk-basic-behavior/references/truth-and-recovery.md +65 -0
  241. package/skills/platforms/deap/PLATFORM.md +3 -0
  242. package/skills/platforms/deap/README.md +3 -0
  243. package/skills/platforms/multica-dingtalk/PLATFORM.md +40 -0
  244. package/skills/platforms/multica-dingtalk/dingtalk-agent-boot-multica/SKILL.md +40 -0
  245. package/skills/platforms/multica-dingtalk/dingtalk-agent-deploy-multica/SKILL.md +60 -0
  246. package/skills/platforms/multica-dingtalk/dingtalk-agent-deploy-multica/references/multica-deployment-contract.md +49 -0
  247. package/skills/platforms/multica-dingtalk/dingtalk-agent-deploy-multica/references/promotion-observation-contract.md +49 -0
  248. package/skills/platforms/multica-dingtalk/multica-external/SKILL.md +282 -0
  249. package/skills/platforms/multica-dingtalk/multica-external/scripts/bootstrap.sh +78 -0
  250. package/skills/platforms/multica-dingtalk/multica-external/scripts/multica_ext.py +1180 -0
  251. package/skills/dingtalk-basic-behavior/SKILL.md +0 -86
  252. package/skills/dingtalk-basic-behavior/references/memory-and-evolution.md +0 -27
  253. /package/skills/{dingtalk-basic-behavior → core/dingtalk-basic-behavior}/references/event-to-behavior.md +0 -0
  254. /package/skills/{dingtalk-basic-behavior → core/dingtalk-basic-behavior}/references/runtime-modes.md +0 -0
package/README.md CHANGED
@@ -2,313 +2,166 @@
2
2
 
3
3
  # dingtalk-agent
4
4
 
5
- **让 AI Agent 像钉钉里的可靠同事一样感知、判断、行动与留痕。**
5
+ **让数字员工继承同一套可验证的行为底座。**
6
6
 
7
7
  [![npm](https://img.shields.io/npm/v/%40xdxer%2Fdingtalk-agent?logo=npm&color=cb3837)](https://www.npmjs.com/package/@xdxer/dingtalk-agent)
8
8
  [![CI](https://github.com/D1-2004/dingtalk-agent/actions/workflows/ci.yml/badge.svg)](https://github.com/D1-2004/dingtalk-agent/actions/workflows/ci.yml)
9
9
  [![Node.js](https://img.shields.io/node/v/%40xdxer%2Fdingtalk-agent)](https://nodejs.org/)
10
10
  [![License](https://img.shields.io/badge/license-MIT-2ea44f)](LICENSE)
11
11
 
12
- [快速开始](#两分钟开始) · [核心模型](#核心模型) · [架构](#架构) · [行为协议](#数字员工行为协议) · [评测](#评测与验证)
12
+ [快速开始](#快速开始) · [工作方式](#工作方式) · [支持范围](#支持范围) · [文档](#文档)
13
13
 
14
- </div>
15
-
16
- `dingtalk-agent` 是一个 **Skill-first 的钉钉数字员工行为框架**。它不内置模型,也不复制 DWS;它把“像同事一样工作”拆成三层:
17
-
18
- - **Basic Behavior Skill**:判断何时响应、追问、确认或保持沉默;
19
- - **CLI Runtime**:冻结身份、目标和事务边界,提供可审计的员工级原子动作;
20
- - **DWS**:执行钉钉消息、文档、待办、日历等具体产品能力。
21
-
22
- 它可以被 Claude Code、Codex 或其他 Agent Host 使用,也可以作为更完整数字员工系统的基础蓝本。
23
-
24
- ![dingtalk-agent Skill-first 架构](docs/architecture/dingtalk-agent-blueprint.png)
14
+ 简体中文 · [English](README.en.md)
25
15
 
26
- ## 为什么需要它
16
+ </div>
27
17
 
28
- “会调用钉钉 API”不等于“会像员工一样工作”。真实协作还要求 Agent
18
+ `dingtalk-agent`(`dta`)是钉钉数字员工的 **Skill-first 行为内核与交付工具链**。它把角色定义、公共行为、岗位能力和执行门禁装配成一个可创建、测试、发布和审计的 Agent Project。
29
19
 
30
- - 群里未被提及时默认不抢话,被 `@` 或私聊时才获得响应资格;
31
- - 信息完整就直接交付,只有真正阻塞时才问一个问题;
32
- - 不从消息正文猜收件人、身份、文档 ID 或权限;
33
- - 长任务能确认收到、等待依赖、从下一条事件继续,而不是假装一直在线;
34
- - 区分“命令执行过”“平台写入成功”“回读可见”和“对方确认”;
35
- - 将任务状态、长期记忆、运行时锁和幂等回执放在正确的存储层。
20
+ > **Skill 劝,CLI 拦,DWS 做。** Skill 判断何时、为何行动;CLI 固定身份、目标、预算、幂等与回读;DWS 执行钉钉能力。
36
21
 
37
- 本项目把这些约束从一段巨型 Prompt 中拆出来:**Skill 负责判断,CLI 负责硬边界,DWS 负责平台能力。**
22
+ ![从 Agent 定义到两类身份交付的完整路径](docs/assets/agent-delivery-lifecycle.svg)
38
23
 
39
- ## 两分钟开始
24
+ ## 快速开始
40
25
 
41
- > 要求 Node.js 18.3+。CLI 固定安装到用户目录 `~/.local`,不依赖系统级写权限。
26
+ 要求 Node.js 18.3+。
42
27
 
43
28
  ```bash
44
29
  npm install --global --prefix "$HOME/.local" \
45
30
  --registry=https://registry.npmjs.org @xdxer/dingtalk-agent@beta
46
- "$HOME/.local/bin/dta" setup --skip-cli-install
47
- ```
48
-
49
- 这里不使用 `npx @xdxer/dingtalk-agent...` 启动自身。Why:机器上已有旧版 `dta` 时,npm exec 可能复用 PATH 中的旧 binary;`npm install --prefix` 会确定性替换用户级版本,随后绝对路径不依赖当前 shell 是否已刷新 PATH。
50
31
 
51
- `setup` 会按顺序完成四件事:
52
-
53
- 1. 将 CLI 安装到用户目录 `~/.local/bin`,必要时幂等补充 shell PATH;
54
- 2. 检查 Node.js、DWS 版本和 `dws auth status`;
55
- 3. 安装并验证 Basic Behavior Skill;
56
- 4. 报告 Claude Code、Codex、OpenCode 是否能够发现 Skill。
57
-
58
- 当前终端尚未加载新 PATH 时,setup 会打印一条可直接执行的 `export PATH=...`。验证结果:
59
-
60
- ```bash
61
- dta --version
32
+ "$HOME/.local/bin/dta" setup --skip-cli-install
62
33
  dta doctor
63
34
  ```
64
35
 
65
- 之后升级不再重复安装步骤,直接运行:
66
-
67
- ```bash
68
- dta upgrade # beta 版默认继续跟随 beta
69
- dta upgrade --channel latest # 显式切换稳定通道
70
- dta upgrade --dry-run # 只查看目标版本和将执行的命令
71
- ```
72
-
73
- 升级完成后,新的 CLI 会自动重新执行 setup,复核 PATH、DWS、Skill 与三个 Agent 客户端。
74
-
75
- 安装后推荐使用短命令 `dta`;完整名称 `dingtalk-agent` 与它完全等价。错误会同时输出原因和一条可复制的 `提示:`,命令或子命令拼错时会给出最接近的建议。
76
-
77
- 安装后,Skill 只有一份 canonical copy:
78
-
79
- ```text
80
- ~/.agents/skills/dingtalk-basic-behavior/ # Codex、OpenCode 直接发现
81
- ~/.claude/skills/dingtalk-basic-behavior # Claude Code → canonical 相对链接
82
- ```
83
-
84
- 如果只想临时运行、不做用户级安装,任何命令都可以通过 npm exec 执行:
85
-
86
- ```bash
87
- "$HOME/.local/bin/dta" doctor
88
- "$HOME/.local/bin/dta" skill install
89
- ```
90
-
91
- 也兼容开放的 `skills` CLI。仓库有访问权限时,可只安装 Skill 到三个客户端:
92
-
93
- ```bash
94
- npx skills add D1-2004/dingtalk-agent \
95
- --skill dingtalk-basic-behavior --global --yes \
96
- --agent claude-code --agent codex --agent opencode
97
- ```
98
-
99
- 从本地 checkout 安装则使用:
100
-
101
- ```bash
102
- npx skills add ./skills/dingtalk-basic-behavior \
103
- --global --yes --agent claude-code --agent codex --agent opencode
104
- ```
105
-
106
- `dta skill install` 内部也直接委托 `npx skills add`,不再维护独立的复制、软链、marker 或卸载链路。`npx skills` 只安装行为说明,不安装 `dingtalk-agent` CLI,也不检查 DWS;需要真实执行钉钉动作时仍应运行 `setup` 或 `doctor`。完整排障见 [安装与首次使用](docs/INSTALLATION.md)。
36
+ `setup` 安装 Basic Behavior 与 Compose Skills,并检查 DWS 认证和常见 Agent Host。普通会话无需初始化 Workspace。
107
37
 
108
- 普通 Agent 会话无需初始化项目。进入任意目录后可直接发现上下文:
109
-
110
- ```bash
111
- dta bootstrap --json
112
- ```
38
+ ## 为什么需要它
113
39
 
114
- 只有可信事件宿主需要冻结目标并建立 Prepared Run:
40
+ 模型会说话,不等于数字员工能可靠工作。`dta` 把最容易漂移的部分变成可继承、可验证的合同:
115
41
 
116
- ```bash
117
- mkdir fde-coach && cd fde-coach
118
- dta init
119
- dta prepare --event-file event.json --json
120
- ```
42
+ - **会判断**:先判断是否该回复,再判断说什么;群聊未 `@` 默认安静。
43
+ - **不越权**:身份、目标、权限、授权和回复渠道不能从正文或模型记忆猜测。
44
+ - **不虚报**:命令成功、平台可见、消息送达和人类接受是不同的完成层级。
45
+ - **可复用**:新 Agent 继承公共行为,只补岗位差异,不复制巨型 Prompt。
121
46
 
122
- ## 核心模型
47
+ ## 工作方式
123
48
 
124
- ### 三种运行模式
49
+ 一个 Agent 由四层合同组成:
125
50
 
126
- | 模式 | 初始化 | 上下文 | 适用场景 |
127
- |---|---:|---|---|
128
- | **Direct Session** | 不需要 | 当前请求与宿主提供的信息 | 普通 Claude Code / Codex 会话 |
129
- | **Mounted Session** | 不需要 | 本地 Markdown 或钉钉文档快照 | 带身份、记忆和知识的长期员工 |
130
- | **Prepared Run** | Workspace 一次性初始化 | 可信事件冻结的目标、身份与策略 | 自动化事件处理和强可靠外发 |
51
+ | | 负责什么 |
52
+ |---|---|
53
+ | **`AGENTS.md`** | 定义角色、岗位底线、做事范式和常犯错误;声明每轮先应用 Basic |
54
+ | **Basic Behavior** | 所有数字员工共享的响应资格、作用域、授权、隐私、完成与记忆协议 |
55
+ | **Role Skills** | 某个岗位的专业判断、流程、禁区和验收标准 |
56
+ | **Gate + Receipt** | 把身份、目标、预算、幂等、状态迁移和平台回读变成硬约束 |
131
57
 
132
- 本地内容直接挂载,不复制:
58
+ Prompt 只保留必须常驻、必须严格定义的内容;完整行为树进入 Skill;不能依赖模型自觉的约束进入 Gate。
133
59
 
134
- ```bash
135
- dingtalk-agent bootstrap --storage local-dir:/path/to/workspace --json
136
- ```
60
+ ### 创建 → 测试 → 发布
137
61
 
138
- 远端内容由 DWS 探测并拉成隐藏的只读快照:
62
+ | 阶段 | 关键产物 | 门禁 |
63
+ |---|---|---|
64
+ | **创建** | `AGENTS.md`、Basic、Role Skills、bindings | 占位符未补全时保持 `partial` |
65
+ | **测试** | 隔离 Workspace、load probe、行为评测、四类证据 | Definition/Skills 没有真实加载就不能 ready |
66
+ | **发布** | 平台预检、部署 Receipt、远端 readback | 指定 Eval 未通过或身份链不完整就不能 promote |
67
+ | **运行** | 数字员工账号或机器人入口、task trace | 无证据不声称写入、送达或完成 |
139
68
 
140
69
  ```bash
141
- dingtalk-agent bootstrap \
142
- --storage 'dingtalk-doc:<node-id-or-url>' \
143
- --state-dir /path/to/session-state \
144
- --json
145
- ```
146
-
147
- ### 四个消息原子行为
70
+ # 1. 创建零写入计划,再显式落盘
71
+ dta agent enhance --project-name release-agent --role-skill release-manager --dry-run --json
72
+ dta agent enhance --project-name release-agent --role-skill release-manager \
73
+ --plan-id <plan-id> --yes --json
148
74
 
149
- Prepared Run 只开放四个消息动作:
75
+ # 2. 审计、运行与评测
76
+ dta agent audit --bindings agent.bindings.json --require-skill release-manager --json
77
+ dta workspace run local-dev --json
78
+ dta workspace eval local-dev --json
150
79
 
151
- ```bash
152
- dingtalk-agent act ack
153
- dingtalk-agent act reply --text-file reply.txt
154
- dingtalk-agent act ask --text "一个真正阻塞的问题"
155
- dingtalk-agent act silence --reason unmentioned
80
+ # 3. 云端预检、发布与观测
81
+ dta workspace inspect multica-dev --execute --yes --json
82
+ dta workspace remote-list multica-dev --execute --yes --json
83
+ dta promote --source local-dev --target multica-dev --dry-run --json
84
+ dta observe --promotion-id <promotion-id> --input <observation.json> --dry-run --json
156
85
  ```
157
86
 
158
- | 动作 | 员工语义 | 关键边界 |
159
- |---|---|---|
160
- | `ack` | 看到了,确实需要时间处理 | 不等于接单、承诺或完成 |
161
- | `reply` | 已有可交付结果 | 只回复原消息,CLI 没有 `--to` |
162
- | `ask` | 缺少阻塞信息 | 一次只问一个问题,随后释放沙箱等待事件 |
163
- | `silence` | 有意识地不打扰 | 仍留下结构化 reason 和本地回执 |
164
-
165
- 文档写入、待办创建等能力继续由 DWS 提供。只有当一个员工意图需要固定作用域、权限、幂等、回读、状态迁移或跨产品组合时,才值得包装成新的 CLI 动作。
166
-
167
- ## 架构
168
-
169
- ```mermaid
170
- flowchart TB
171
- SIGNAL["钉钉消息 / @ / DM / 心跳"] --> HOST["Claude Code / Codex / Agent Host"]
172
- BASIC["Basic Behavior Skill\n响应资格与员工协议"] --> HOST
173
- ROLE["岗位 / Workflow Skill\nFDE、周报、事故处理"] --> HOST
174
- HOST --> BOOT["bootstrap\n按需水合身份、记忆与知识"]
175
- BOOT --> LOCAL["Local Markdown"]
176
- BOOT --> DOC["DingTalk Doc Snapshot"]
177
- HOST --> MODE{"可信事件?"}
178
- MODE -- "否" --> DIRECT["Direct / Mounted Session"]
179
- MODE -- "是" --> RUNTIME["Prepared Run Runtime\nSession / Run / Wait / Gate"]
180
- RUNTIME --> ACTION["ack / reply / ask / silence"]
181
- DIRECT --> DWS["DWS"]
182
- ACTION --> DWS
183
- DWS --> PRODUCTS["消息 / 文档 / 待办 / 日历"]
184
- ```
185
-
186
- ### 事件驱动的异步进程
87
+ 所有计划默认零写入;所有远端写入都需要明确目标、当前 `planId` 和显式确认。
187
88
 
188
- 每条新信号可以启动一个新沙箱,但同一件事仍回到同一个 Session:
89
+ ## 支持范围
189
90
 
190
- ```text
191
- Field / Workspace = 长期身份、知识与 Skill(Heap)
192
- Session = 一件工作的显式上下文(Stack)
193
- Run = 一次事件唤醒的新沙箱
194
- Wait = await continuation,由宿主持久化和恢复
195
- Action = 受约束的系统调用
196
- Receipt = 可审计的外部效果证据
197
- ```
91
+ ### 平台、Harness 与运行时
198
92
 
199
- `ask` 后当前 Run 结束;匹配事件到达时,宿主恢复原 Session 并创建新 Run。系统持久化显式 checkpoint,而不是序列化 JavaScript 或模型的隐藏调用栈。
93
+ 这三个概念彼此独立:
200
94
 
201
- ### 存储边界
95
+ - **Managed Agent Platform** 管 Workspace、Runtime、Agent、Skill、身份绑定和观测。
96
+ - **Agent Harness** 加载 Definition/Skills,隔离执行并采集证据。
97
+ - **dta Kernel** 依赖统一合同,不依赖某个 Harness 的私有 Prompt 或目录结构。
202
98
 
203
- | Markdown / 钉钉文档 | 宿主状态存储 |
99
+ | 维度 | 当前支持 |
204
100
  |---|---|
205
- | 身份、长期知识、社交记忆、任务 checkpoint、Skill 候选 | EventIndex、Wait、锁、generation、幂等键、Action intent/receipt |
101
+ | **Managed Platform** | Multica(DingTalk)已支持;DEAP Coming soon;更多平台通过 registry + adapter 接入 |
102
+ | **本地运行** | Claude Code、Codex、OpenCode 等 Direct/Mounted Session;OpenCode 是当前完整的本地 managed Harness 参考实现 |
103
+ | **云上运行** | Multica Workspace / Runtime / Agent;沿用相同的 Definition、Skills、Gate 与证据合同 |
104
+ | **交付身份** | 数字员工/账号身份;机器人应用身份;两者都不能改变角色职责或扩大权限 |
206
105
 
207
- Why:文档适合人和 Agent 共同审查,但没有可靠 CAS;请求超时也不能证明写失败,因此不能承担并发控制或副作用去重。
106
+ OpenCode 不是运行前提,Multica 也不是特殊旁路。任何 Harness 要进入可晋级路径,都必须证明同一件事:Definition 与 Skills 已加载、身份和隔离已固定、运行轨迹可取、结果可回读。
208
107
 
209
- ## 数字员工行为协议
108
+ “支持多平台”指架构、注册表和 adapter 合同可扩展;不把尚未开放的平台宣称为已部署或已 Live 验证。
210
109
 
211
- 新任务遵循:
212
-
213
- ```text
214
- UNDERSTAND → CLARIFY → PLAN → EXECUTE → WAIT → VERIFY → COMPLETE
215
- ```
110
+ ### 三种运行模式
216
111
 
217
- - **UNDERSTAND**:从当前消息和可信 continuation 还原目标、交付物、范围、完成条件、权限与时点;
218
- - **CLARIFY**:先查线程、附件、Workspace 和岗位 Skill;信息足够就做,真阻塞才问;
219
- - **PLAN**:单步任务不表演计划,多步任务建立 2~5 个可观察检查点;
220
- - **EXECUTE**:外部副作用前重新核对对象、权限、幂等和最新状态;
221
- - **WAIT**:记录等待谁、什么输入、从哪里继续,然后释放沙箱;
222
- - **VERIFY**:通过工具结果和必要回读区分生成、保存、送达与确认;
223
- - **COMPLETE**:回到原线程交付结果、证据、遗留项和下一责任人。
112
+ | 模式 | 用于 | 关键边界 |
113
+ |---|---|---|
114
+ | **Direct Session** | 普通交互会话 | 无可信事件就不猜外发目标 |
115
+ | **Mounted Session** | 挂载本地或钉钉语义内容 | 锁、幂等和 Receipt 不放进 Markdown |
116
+ | **Prepared Run** | 事件驱动的可靠副作用 | 动作只走 typed Broker 或 `dta act` |
224
117
 
225
- 只有跨消息、等待依赖、已经产生副作用、需要换沙箱接手或用户明确要求跟踪的事项才创建 checkpoint。单轮问答不制造“伪任务”。
118
+ Prepared Run 只开放 `ack`、`reply`、`ask`、`silence` 四个消息原子动作。`ack` 不等于接单,`reply` 不等于对方接受。
226
119
 
227
- ## Skill、CLI DWS 如何组合
120
+ ## 创建出来的 Agent 会继承什么
228
121
 
229
122
  ```text
230
- Basic Behavior Skill 每个钉钉员工共享的社交与安全底座
231
- +
232
- Role / Workflow Skill 某个岗位如何完成 FDE 评价、周报、事故处理
233
- +
234
- Agent Definition 身份、服务对象、知识源、记忆与权限
235
- +
236
- dingtalk-agent CLI 需要强约束的员工级事务边界
237
- +
238
- DWS 钉钉标准产品能力
239
- ```
240
-
241
- 这意味着一个 FDE 教练只需在基础行为之上叠加教练身份、评价方法与学员资料;基础层无需知道任何 FDE 业务细节。
242
-
243
- ## 常用命令
244
-
245
- ```bash
246
- dingtalk-agent --help
247
- dingtalk-agent doctor
248
- dingtalk-agent setup
249
- dingtalk-agent skill install
250
- dingtalk-agent skill status
251
- dingtalk-agent bootstrap --json
252
- dingtalk-agent init
253
- dingtalk-agent prepare --event-file event.json --json
254
- dingtalk-agent help runtime
255
- dingtalk-agent help adapters
123
+ my-agent/
124
+ ├── AGENTS.md 角色宪法 + Basic 继承锚点
125
+ ├── agent.bindings.json Definition 与存储路由
126
+ ├── dingtalk-agent.json Agent Project 期望状态
127
+ ├── .agents/skills/
128
+ │ ├── dingtalk-basic-behavior/ 完整公共行为树
129
+ │ └── <role>/ Host 可发现的岗位 Skill
130
+ ├── skills/<role>/SKILL.md 岗位能力的版本化来源
131
+ └── .dingtalk-agent/ 私有状态、证据与 Receipt
256
132
  ```
257
133
 
258
- `listen` 是可选的开发联调 Adapter,不是 Agent 主进程。云端 Driver、Claude Code 插件或本地 DWS 都可以提供事件,并从标准化事件之后复用同一 Session / Run / Action 内核。
134
+ 生成的 `AGENTS.md` 只保留四块原子合同:**定义、不能做的底线、做事标准范式、常犯错误**。模板同时声明每个任务先应用 `dingtalk-basic-behavior`,再按任务加载 Role Skills。
259
135
 
260
- ## 评测与验证
136
+ “文件存在”不是继承证据。`agent audit --verify-load` 会把真实加载结果绑定到 Definition/Skill hash、Host/模型版本、隔离探针和原始 run/export:
261
137
 
262
138
  ```bash
263
- npm ci
264
- npm run typecheck
265
- npm run eval:contract
139
+ dta agent audit \
140
+ --bindings agent.bindings.json \
141
+ --require-skill <role-skill-name> \
142
+ --verify-load --yes --json
266
143
  ```
267
144
 
268
- 当前确定性合同包含 **31 个场景**,覆盖:
269
-
270
- - 通过 `npx skills` 委托全局 Skill 安装、发现、重装和卸载;
271
- - 首次 setup、用户级 PATH、DWS 版本/认证和三端客户端发现;
272
- - `dta` 短命令安装,以及命令、子命令和参数错误的可恢复提示;
273
- - CLI 自升级、新 binary 版本校验和升级后 setup 复核;
274
- - 无 init bootstrap、本地/远端 Storage 与类型闸门;
275
- - Direct Session 外发边界;
276
- - Session continuation、Wait、幂等和目标防篡改;
277
- - Skill 冻结、动作预算和 Receipt。
278
-
279
- 模型行为还可通过 Claude shadow 做 with-skill / baseline 对照;它只允许读取冻结输入并输出 ActionRequest,不产生任何钉钉副作用。完整晋级门禁见 [自测与持续进化](docs/SELF-TEST.md)。
145
+ ## 不可绕过的边界
280
146
 
281
- ## 项目结构
147
+ - 普通 Session 不自动运行 `dingtalk-agent init`。
148
+ - target、actor、conversation、DWS profile 与权限只来自可信宿主或事件。
149
+ - Prepared Run 的消息副作用只走 typed Broker 或 `dta act`,不能绕过 Gate。
150
+ - 在线 Run 可以提出记忆或 Skill 候选,但不能热修改当前身份、权限或策略。
151
+ - 模型自述、命令退出 0、平台写入可见、消息送达与人类接受必须分别举证。
282
152
 
283
- ```text
284
- bin/ CLI composition root
285
- src/ TypeScript runtime
286
- skills/dingtalk-basic-behavior/ 可安装的基础行为 Skill
287
- templates/ Workspace 与行为模板
288
- evals/ 合同、fixture 与 shadow runner
289
- docs/ 架构、决策和调研文档
290
- .github/ CI 与协作模板
291
- ```
153
+ ## 文档
292
154
 
293
- ## 深入阅读
294
-
295
- - [代码与运行架构](docs/ARCHITECTURE.md)
296
- - [安装与首次使用](docs/INSTALLATION.md)
297
- - [最小 Workspace 决策记录](docs/MINIMAL-WORKSPACE-V1.md)
298
- - [自测与持续进化](docs/SELF-TEST.md)
299
- - [开源项目差异与共同范式](docs/OPEN-SOURCE-REFERENCES.md)
300
- - [贡献指南](CONTRIBUTING.md)
301
- - [安全策略](SECURITY.md)
302
-
303
- ## 当前边界
304
-
305
- - 不把 `listen` 作为 Agent 的强制主入口;
306
- - 不自动初始化或污染任意代码仓库;
307
- - 不复制整个 DWS 命令面;
308
- - 不把钉钉文档当锁、事务数据库或副作用回执;
309
- - 不允许在线 Run 自动扩大身份、权限或启用新 Skill;
310
- - 当前 `dingtalk-doc` 只读水合,远端写入必须经过显式授权 Provider 并回读。
155
+ | 想做什么 | 从这里开始 |
156
+ |---|---|
157
+ | 理解架构与状态模型 | [Architecture](docs/ARCHITECTURE.md) |
158
+ | 安装、升级与排障 | [Installation](docs/INSTALLATION.md) |
159
+ | 理解评测与证据分层 | [Self-test](docs/SELF-TEST.md) |
160
+ | 创建或审计 Agent | [Compose Skill](skills/core/dingtalk-agent-compose/SKILL.md) |
161
+ | 测试或调试已交付的 Agent | [Eval Skill](skills/core/dingtalk-agent-eval/SKILL.md) |
162
+ | 查看公共行为协议 | [Basic Behavior Skill](skills/core/dingtalk-basic-behavior/SKILL.md) |
163
+ | 复制完整示例 | [Example Agents](examples/agents) |
311
164
 
312
- ## License
165
+ 行为资产来自可观察合同、反例修正和可部署验证;本项目不声称获得任何产品的隐藏系统提示词原文。
313
166
 
314
- [MIT](LICENSE)
167
+ MIT License