@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.
- package/CHANGELOG.md +233 -0
- package/README.en.md +167 -0
- package/README.md +101 -248
- package/dist/bin/dingtalk-agent.js +1255 -25
- package/dist/bin/dingtalk-agent.js.map +1 -1
- package/dist/src/actions.js +98 -14
- package/dist/src/actions.js.map +1 -1
- package/dist/src/agent-audit.js +1385 -0
- package/dist/src/agent-audit.js.map +1 -0
- package/dist/src/agent-bindings.js +132 -0
- package/dist/src/agent-bindings.js.map +1 -0
- package/dist/src/agent-definition.js +182 -0
- package/dist/src/agent-definition.js.map +1 -0
- package/dist/src/agent-enhance.js +711 -0
- package/dist/src/agent-enhance.js.map +1 -0
- package/dist/src/agent-platform.js +299 -0
- package/dist/src/agent-platform.js.map +1 -0
- package/dist/src/bootstrap.js +125 -17
- package/dist/src/bootstrap.js.map +1 -1
- package/dist/src/config.js +1 -7
- package/dist/src/config.js.map +1 -1
- package/dist/src/development-workspace.js +755 -0
- package/dist/src/development-workspace.js.map +1 -0
- package/dist/src/doctor.js +74 -15
- package/dist/src/doctor.js.map +1 -1
- package/dist/src/dws.js +145 -0
- package/dist/src/dws.js.map +1 -1
- package/dist/src/eval-evidence.js +193 -0
- package/dist/src/eval-evidence.js.map +1 -0
- package/dist/src/host-detect.js +146 -0
- package/dist/src/host-detect.js.map +1 -0
- package/dist/src/instruction-path.js +270 -0
- package/dist/src/instruction-path.js.map +1 -0
- package/dist/src/invocation.js +36 -0
- package/dist/src/invocation.js.map +1 -0
- package/dist/src/lab.js +679 -0
- package/dist/src/lab.js.map +1 -0
- package/dist/src/lease.js +100 -0
- package/dist/src/lease.js.map +1 -0
- package/dist/src/map.js +157 -0
- package/dist/src/map.js.map +1 -0
- package/dist/src/memory/candidates.js +451 -0
- package/dist/src/memory/candidates.js.map +1 -0
- package/dist/src/memory/completion-evidence.js +536 -0
- package/dist/src/memory/completion-evidence.js.map +1 -0
- package/dist/src/memory/operational.js +263 -0
- package/dist/src/memory/operational.js.map +1 -0
- package/dist/src/memory/remote-state.js +478 -0
- package/dist/src/memory/remote-state.js.map +1 -0
- package/dist/src/memory/task-checkpoints.js +204 -0
- package/dist/src/memory/task-checkpoints.js.map +1 -0
- package/dist/src/multica-deploy.js +1538 -0
- package/dist/src/multica-deploy.js.map +1 -0
- package/dist/src/multica-provider.js +685 -0
- package/dist/src/multica-provider.js.map +1 -0
- package/dist/src/opencode-evals.js +1547 -0
- package/dist/src/opencode-evals.js.map +1 -0
- package/dist/src/opencode-isolation.js +124 -0
- package/dist/src/opencode-isolation.js.map +1 -0
- package/dist/src/opencode-provider.js +532 -0
- package/dist/src/opencode-provider.js.map +1 -0
- package/dist/src/opencode-workspace.js +208 -0
- package/dist/src/opencode-workspace.js.map +1 -0
- package/dist/src/perception.js +225 -0
- package/dist/src/perception.js.map +1 -0
- package/dist/src/personal-event-evals.js +595 -0
- package/dist/src/personal-event-evals.js.map +1 -0
- package/dist/src/promotion.js +786 -0
- package/dist/src/promotion.js.map +1 -0
- package/dist/src/remote-semantic-state-live-evals.js +888 -0
- package/dist/src/remote-semantic-state-live-evals.js.map +1 -0
- package/dist/src/remote-semantic-state-worker.js +38 -0
- package/dist/src/remote-semantic-state-worker.js.map +1 -0
- package/dist/src/remote-state-evals.js +502 -0
- package/dist/src/remote-state-evals.js.map +1 -0
- package/dist/src/response-gate.js +51 -0
- package/dist/src/response-gate.js.map +1 -0
- package/dist/src/robot-evals.js +771 -0
- package/dist/src/robot-evals.js.map +1 -0
- package/dist/src/sessions.js +66 -105
- package/dist/src/sessions.js.map +1 -1
- package/dist/src/setup.js +6 -5
- package/dist/src/setup.js.map +1 -1
- package/dist/src/skill-manager.js +162 -24
- package/dist/src/skill-manager.js.map +1 -1
- package/dist/src/skills.js +2 -1
- package/dist/src/skills.js.map +1 -1
- package/dist/src/storage-evals.js +26 -0
- package/dist/src/storage-evals.js.map +1 -0
- package/dist/src/types.js.map +1 -1
- package/dist/src/upgrade.js +23 -27
- package/dist/src/upgrade.js.map +1 -1
- package/dist/src/version.js +73 -0
- package/dist/src/version.js.map +1 -0
- package/dist/src/waits.js +5 -1
- package/dist/src/waits.js.map +1 -1
- package/dist/src/workspace.js +28 -3
- package/dist/src/workspace.js.map +1 -1
- package/docs/INSTALLATION.md +50 -3
- package/docs/SECOND-AGENT-ACCEPTANCE.md +62 -0
- package/docs/architecture/agent-memory-topology.png +0 -0
- package/docs/architecture/agent-memory-topology.svg +132 -0
- package/docs/architecture/general-agent-kernel-topology.png +0 -0
- package/docs/architecture/general-agent-kernel-topology.svg +149 -0
- package/docs/architecture/provider-bound-development-workspace.png +0 -0
- package/docs/architecture/provider-bound-development-workspace.svg +141 -0
- package/docs/architecture/task-completion-gate.png +0 -0
- package/docs/architecture/task-completion-gate.svg +191 -0
- package/docs/assets/agent-delivery-lifecycle.svg +103 -0
- package/docs/schemas/agent-audit-load-evidence.schema.json +14 -0
- package/docs/schemas/agent-audit.schema.json +92 -0
- package/docs/schemas/agent-bindings.schema.json +54 -0
- package/docs/schemas/agent-definition.schema.json +78 -0
- package/docs/schemas/agent-enhancement-plan.schema.json +88 -0
- package/docs/schemas/agent-enhancement-receipt.schema.json +37 -0
- package/docs/schemas/agent-platform.schema.json +13 -0
- package/docs/schemas/enriched-invocation.schema.json +46 -0
- package/docs/schemas/eval-candidate-plan.schema.json +28 -0
- package/docs/schemas/eval-candidate-result.schema.json +20 -0
- package/docs/schemas/eval-candidate.schema.json +30 -0
- package/docs/schemas/invocation.schema.json +19 -0
- package/docs/schemas/memory-candidate-proposal.schema.json +18 -0
- package/docs/schemas/memory-candidate.schema.json +76 -0
- package/docs/schemas/memory-publish-target.schema.json +25 -0
- package/docs/schemas/multica-deployment-list.schema.json +29 -0
- package/docs/schemas/multica-deployment-operation.schema.json +51 -0
- package/docs/schemas/multica-deployment-plan.schema.json +70 -0
- package/docs/schemas/multica-deployment-receipt.schema.json +87 -0
- package/docs/schemas/multica-deployment-status.schema.json +23 -0
- package/docs/schemas/multica-workspace-inspection.schema.json +77 -0
- package/docs/schemas/multica-workspace-plan.schema.json +68 -0
- package/docs/schemas/multica-workspace-resource-list.schema.json +27 -0
- package/docs/schemas/multica-workspace-status.schema.json +34 -0
- package/docs/schemas/observation.schema.json +21 -0
- package/docs/schemas/operational-memory-provider.schema.json +36 -0
- package/docs/schemas/operational-memory-record.schema.json +24 -0
- package/docs/schemas/perception-input.schema.json +56 -0
- package/docs/schemas/project.schema.json +115 -0
- package/docs/schemas/promotion-list.schema.json +36 -0
- package/docs/schemas/promotion-plan.schema.json +60 -0
- package/docs/schemas/promotion-policy.schema.json +29 -0
- package/docs/schemas/promotion-receipt.schema.json +43 -0
- package/docs/schemas/promotion-status.schema.json +23 -0
- package/docs/schemas/release-readiness.schema.json +66 -0
- package/docs/schemas/remote-semantic-state-live-eval.schema.json +60 -0
- package/docs/schemas/remote-semantic-state-manifest.schema.json +79 -0
- package/docs/schemas/remote-semantic-state-provider.schema.json +98 -0
- package/docs/schemas/response-gate.schema.json +20 -0
- package/docs/schemas/task-checkpoint.schema.json +71 -0
- package/docs/schemas/task-completion-evidence.schema.json +154 -0
- package/docs/schemas/workspace-doctor.schema.json +56 -0
- package/docs/schemas/workspace-state.schema.json +39 -0
- package/evals/README.md +17 -0
- package/evals/baselines/2026-07-16/opencode-basic-010-completion-summary.json +123 -0
- package/evals/baselines/2026-07-16/opencode-basic-skill-required-summary.json +69 -0
- package/evals/baselines/2026-07-16/opencode-multi-surface-summary.json +63 -0
- package/evals/baselines/2026-07-16/remote-state-live-summary.json +70 -0
- package/evals/baselines/2026-07-17/agent-enhance-opencode-dogfood-summary.json +98 -0
- package/evals/baselines/2026-07-17/personal-event-live-readiness-summary.json +68 -0
- package/examples/agents/fde-coach/AGENTS.md +26 -0
- package/examples/agents/fde-coach/MEMORY.md +3 -0
- package/examples/agents/fde-coach/fields/default/field.json +24 -0
- package/examples/agents/fde-coach/knowledge/INDEX.md +4 -0
- package/examples/agents/fde-coach/skills/fde-coach/SKILL.md +13 -0
- package/examples/agents/release-manager/AGENTS.md +26 -0
- package/examples/agents/release-manager/MEMORY.md +3 -0
- package/examples/agents/release-manager/fields/default/field.json +24 -0
- package/examples/agents/release-manager/knowledge/INDEX.md +4 -0
- package/examples/agents/release-manager/skills/release-manager/SKILL.md +13 -0
- package/lab/README.md +109 -0
- package/lab/agent-eval/catalog.json +91 -0
- package/lab/agent-eval/classic-failures.json +177 -0
- package/lab/agent-eval/completion-gate-regression.json +99 -0
- package/lab/agent-eval/personal-event-live.example.json +94 -0
- package/lab/agent-eval/remote-semantic-state-live.example.json +70 -0
- package/lab/agent-eval/remote-semantic-state-provider.fixture.json +47 -0
- package/lab/agent-eval/remote-state-workspace/AGENTS.md +8 -0
- package/lab/agent-eval/remote-state-workspace/opencode.json +7 -0
- package/lab/agent-eval/remote-state-workspace/skills/remote-state-operator/SKILL.md +13 -0
- package/lab/agent-eval/remote-state.example.json +31 -0
- package/lab/agent-eval/workspace/AGENTS.md +7 -0
- package/lab/agent-eval/workspace/MEMORY.md +4 -0
- package/lab/agent-eval/workspace/artifacts/pending-review.md +3 -0
- package/lab/agent-eval/workspace/knowledge/INDEX.md +4 -0
- package/lab/agent-eval/workspace/opencode.json +20 -0
- package/lab/manifest.example.json +27 -0
- package/lab/manifest.personal-event.example.json +27 -0
- package/lab/project-workspace/README.md +11 -0
- package/lab/project-workspace/fake-multica-provider.mjs +277 -0
- package/lab/project-workspace/multica-deploy.fixture.json +29 -0
- package/lab/project-workspace/multica-readonly.fixture.json +69 -0
- package/lab/project-workspace/observation.fixture.json +14 -0
- package/lab/project-workspace/opencode-provider-suite.json +65 -0
- package/lab/project-workspace/project.fixture.json +44 -0
- package/lab/project-workspace/promotion-policy.fixture.json +15 -0
- package/lab/robot-eval/pool.example.json +30 -0
- package/lab/robot-eval/suite.json +123 -0
- package/lab/robot-eval/workspace/AGENTS.md +21 -0
- package/lab/robot-eval/workspace/MEMORY.md +3 -0
- package/lab/robot-eval/workspace/knowledge/INDEX.md +5 -0
- package/lab/robot-eval/workspace/opencode.json +22 -0
- package/lab/schemas/agent-eval-catalog.schema.json +47 -0
- package/lab/schemas/lab-manifest.schema.json +70 -0
- package/lab/schemas/personal-event-eval.schema.json +91 -0
- package/lab/schemas/remote-state-eval.schema.json +66 -0
- package/lab/schemas/robot-eval-suite.schema.json +184 -0
- package/lab/schemas/robot-pool.schema.json +56 -0
- package/package.json +28 -9
- package/skills/README.md +23 -0
- package/skills/core/dingtalk-agent-compose/SKILL.md +151 -0
- package/skills/core/dingtalk-agent-compose/assets/AGENTS.template.md +35 -0
- package/skills/core/dingtalk-agent-compose/assets/agent.bindings.dingtalk-doc.template.json +13 -0
- package/skills/core/dingtalk-agent-compose/assets/agent.bindings.local.template.json +13 -0
- package/skills/core/dingtalk-agent-compose/assets/hosts/opencode/opencode.template.json +12 -0
- package/skills/core/dingtalk-agent-compose/assets/role-skill.template.md +32 -0
- package/skills/core/dingtalk-agent-compose/evals/evals.json +129 -0
- package/skills/core/dingtalk-agent-compose/references/agent-definition-contract.md +55 -0
- package/skills/core/dingtalk-agent-compose/references/host-loading-contract.md +58 -0
- package/skills/core/dingtalk-agent-compose/references/hosts/claude-code.md +48 -0
- package/skills/core/dingtalk-agent-compose/references/hosts/opencode.md +77 -0
- package/skills/core/dingtalk-agent-compose/references/storage-routing.md +20 -0
- package/skills/core/dingtalk-agent-eval/SKILL.md +140 -0
- package/skills/core/dingtalk-agent-eval/assets/eval-catalog.template.json +18 -0
- package/skills/core/dingtalk-agent-eval/evals/evals.json +83 -0
- package/skills/core/dingtalk-agent-eval/references/eval-topology.md +48 -0
- package/skills/core/dingtalk-agent-eval/references/evidence-contract.md +52 -0
- package/skills/core/dingtalk-agent-eval/references/failure-to-case.md +35 -0
- package/skills/core/dingtalk-agent-eval/references/interactive-debug-channels.md +93 -0
- package/skills/core/dingtalk-agent-eval/references/local-connector-smoke.md +75 -0
- package/skills/core/dingtalk-agent-eval/references/scenario-taxonomy.md +25 -0
- package/skills/core/dingtalk-agent-eval/references/storage-modes.md +75 -0
- package/skills/core/dingtalk-basic-behavior/SKILL.md +87 -0
- package/skills/core/dingtalk-basic-behavior/assets/memory-candidate-proposal.json +10 -0
- package/skills/{dingtalk-basic-behavior/assets/task-checkpoint.md → core/dingtalk-basic-behavior/assets/task-checkpoint.json} +2 -21
- package/skills/{dingtalk-basic-behavior → core/dingtalk-basic-behavior}/references/action-contract.md +2 -0
- package/skills/core/dingtalk-basic-behavior/references/memory-and-evolution.md +53 -0
- package/skills/core/dingtalk-basic-behavior/references/perception-and-gates.md +28 -0
- package/skills/core/dingtalk-basic-behavior/references/risk-authority-and-privacy.md +62 -0
- package/skills/{dingtalk-basic-behavior → core/dingtalk-basic-behavior}/references/task-lifecycle.md +47 -10
- package/skills/core/dingtalk-basic-behavior/references/truth-and-recovery.md +65 -0
- package/skills/platforms/deap/PLATFORM.md +3 -0
- package/skills/platforms/deap/README.md +3 -0
- package/skills/platforms/multica-dingtalk/PLATFORM.md +40 -0
- package/skills/platforms/multica-dingtalk/dingtalk-agent-boot-multica/SKILL.md +40 -0
- package/skills/platforms/multica-dingtalk/dingtalk-agent-deploy-multica/SKILL.md +60 -0
- package/skills/platforms/multica-dingtalk/dingtalk-agent-deploy-multica/references/multica-deployment-contract.md +49 -0
- package/skills/platforms/multica-dingtalk/dingtalk-agent-deploy-multica/references/promotion-observation-contract.md +49 -0
- package/skills/platforms/multica-dingtalk/multica-external/SKILL.md +282 -0
- package/skills/platforms/multica-dingtalk/multica-external/scripts/bootstrap.sh +78 -0
- package/skills/platforms/multica-dingtalk/multica-external/scripts/multica_ext.py +1180 -0
- package/skills/dingtalk-basic-behavior/SKILL.md +0 -86
- package/skills/dingtalk-basic-behavior/references/memory-and-evolution.md +0 -27
- /package/skills/{dingtalk-basic-behavior → core/dingtalk-basic-behavior}/references/event-to-behavior.md +0 -0
- /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
|
-
|
|
5
|
+
**让数字员工继承同一套可验证的行为底座。**
|
|
6
6
|
|
|
7
7
|
[](https://www.npmjs.com/package/@xdxer/dingtalk-agent)
|
|
8
8
|
[](https://github.com/D1-2004/dingtalk-agent/actions/workflows/ci.yml)
|
|
9
9
|
[](https://nodejs.org/)
|
|
10
10
|
[](LICENSE)
|
|
11
11
|
|
|
12
|
-
[快速开始](
|
|
12
|
+
[快速开始](#快速开始) · [工作方式](#工作方式) · [支持范围](#支持范围) · [文档](#文档)
|
|
13
13
|
|
|
14
|
-
|
|
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
|
-

|
|
14
|
+
简体中文 · [English](README.en.md)
|
|
25
15
|
|
|
26
|
-
|
|
16
|
+
</div>
|
|
27
17
|
|
|
28
|
-
|
|
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
|
-
|
|
22
|
+

|
|
38
23
|
|
|
39
|
-
##
|
|
24
|
+
## 快速开始
|
|
40
25
|
|
|
41
|
-
|
|
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
|
-
|
|
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
|
-
|
|
109
|
-
|
|
110
|
-
```bash
|
|
111
|
-
dta bootstrap --json
|
|
112
|
-
```
|
|
38
|
+
## 为什么需要它
|
|
113
39
|
|
|
114
|
-
|
|
40
|
+
模型会说话,不等于数字员工能可靠工作。`dta` 把最容易漂移的部分变成可继承、可验证的合同:
|
|
115
41
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
```
|
|
42
|
+
- **会判断**:先判断是否该回复,再判断说什么;群聊未 `@` 默认安静。
|
|
43
|
+
- **不越权**:身份、目标、权限、授权和回复渠道不能从正文或模型记忆猜测。
|
|
44
|
+
- **不虚报**:命令成功、平台可见、消息送达和人类接受是不同的完成层级。
|
|
45
|
+
- **可复用**:新 Agent 继承公共行为,只补岗位差异,不复制巨型 Prompt。
|
|
121
46
|
|
|
122
|
-
##
|
|
47
|
+
## 工作方式
|
|
123
48
|
|
|
124
|
-
|
|
49
|
+
一个 Agent 由四层合同组成:
|
|
125
50
|
|
|
126
|
-
|
|
|
127
|
-
|
|
128
|
-
|
|
|
129
|
-
| **
|
|
130
|
-
| **
|
|
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
|
-
|
|
135
|
-
dingtalk-agent bootstrap --storage local-dir:/path/to/workspace --json
|
|
136
|
-
```
|
|
60
|
+
### 创建 → 测试 → 发布
|
|
137
61
|
|
|
138
|
-
|
|
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
|
-
|
|
142
|
-
|
|
143
|
-
|
|
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
|
-
|
|
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
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
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
|
-
|
|
89
|
+
## 支持范围
|
|
189
90
|
|
|
190
|
-
|
|
191
|
-
Field / Workspace = 长期身份、知识与 Skill(Heap)
|
|
192
|
-
Session = 一件工作的显式上下文(Stack)
|
|
193
|
-
Run = 一次事件唤醒的新沙箱
|
|
194
|
-
Wait = await continuation,由宿主持久化和恢复
|
|
195
|
-
Action = 受约束的系统调用
|
|
196
|
-
Receipt = 可审计的外部效果证据
|
|
197
|
-
```
|
|
91
|
+
### 平台、Harness 与运行时
|
|
198
92
|
|
|
199
|
-
|
|
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
|
-
|
|
|
99
|
+
| 维度 | 当前支持 |
|
|
204
100
|
|---|---|
|
|
205
|
-
|
|
|
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
|
-
|
|
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
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
- **VERIFY**:通过工具结果和必要回读区分生成、保存、送达与确认;
|
|
223
|
-
- **COMPLETE**:回到原线程交付结果、证据、遗留项和下一责任人。
|
|
112
|
+
| 模式 | 用于 | 关键边界 |
|
|
113
|
+
|---|---|---|
|
|
114
|
+
| **Direct Session** | 普通交互会话 | 无可信事件就不猜外发目标 |
|
|
115
|
+
| **Mounted Session** | 挂载本地或钉钉语义内容 | 锁、幂等和 Receipt 不放进 Markdown |
|
|
116
|
+
| **Prepared Run** | 事件驱动的可靠副作用 | 动作只走 typed Broker 或 `dta act` |
|
|
224
117
|
|
|
225
|
-
|
|
118
|
+
Prepared Run 只开放 `ack`、`reply`、`ask`、`silence` 四个消息原子动作。`ack` 不等于接单,`reply` 不等于对方接受。
|
|
226
119
|
|
|
227
|
-
##
|
|
120
|
+
## 创建出来的 Agent 会继承什么
|
|
228
121
|
|
|
229
122
|
```text
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
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
|
-
`
|
|
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
|
-
|
|
264
|
-
|
|
265
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
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
|
-
|
|
165
|
+
行为资产来自可观察合同、反例修正和可部署验证;本项目不声称获得任何产品的隐藏系统提示词原文。
|
|
313
166
|
|
|
314
|
-
|
|
167
|
+
MIT License
|