@xdxer/dingtalk-agent 0.1.4-beta.1 → 0.1.4-beta.11
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 +70 -0
- package/README.en.md +397 -0
- package/README.md +500 -47
- package/dist/bin/dingtalk-agent.js +1263 -351
- 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 +460 -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 +678 -0
- package/dist/src/agent-enhance.js.map +1 -0
- package/dist/src/agent-platform.js +158 -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 +736 -0
- package/dist/src/development-workspace.js.map +1 -0
- package/dist/src/doctor.js +49 -22
- 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/init.js +1 -1
- package/dist/src/init.js.map +1 -1
- 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 +1480 -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 +1062 -0
- package/dist/src/opencode-evals.js.map +1 -0
- package/dist/src/opencode-provider.js +531 -0
- package/dist/src/opencode-provider.js.map +1 -0
- package/dist/src/opencode-workspace.js +197 -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 +501 -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 +770 -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 +14 -12
- package/dist/src/setup.js.map +1 -1
- package/dist/src/skill-manager.js +128 -203
- package/dist/src/skill-manager.js.map +1 -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 +137 -0
- package/dist/src/upgrade.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 +119 -14
- 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/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 +113 -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/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 +266 -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 +26 -14
- package/skills/dingtalk-agent-boot-multica/SKILL.md +40 -0
- package/skills/dingtalk-agent-compose/SKILL.md +110 -0
- package/skills/dingtalk-agent-compose/assets/AGENTS.template.md +26 -0
- package/skills/dingtalk-agent-compose/assets/agent.bindings.dingtalk-doc.template.json +13 -0
- package/skills/dingtalk-agent-compose/assets/agent.bindings.local.template.json +13 -0
- package/skills/dingtalk-agent-compose/assets/opencode.template.json +12 -0
- package/skills/dingtalk-agent-compose/assets/role-skill.template.md +24 -0
- package/skills/dingtalk-agent-compose/evals/evals.json +94 -0
- package/skills/dingtalk-agent-compose/references/agent-definition-contract.md +55 -0
- package/skills/dingtalk-agent-compose/references/opencode-host-contract.md +65 -0
- package/skills/dingtalk-agent-compose/references/storage-routing.md +20 -0
- package/skills/dingtalk-agent-deploy/SKILL.md +60 -0
- package/skills/dingtalk-agent-deploy/references/multica-deployment-contract.md +49 -0
- package/skills/dingtalk-agent-deploy/references/promotion-observation-contract.md +49 -0
- package/skills/dingtalk-agent-eval/SKILL.md +116 -0
- package/skills/dingtalk-agent-eval/assets/eval-catalog.template.json +18 -0
- package/skills/dingtalk-agent-eval/evals/evals.json +61 -0
- package/skills/dingtalk-agent-eval/references/eval-topology.md +34 -0
- package/skills/dingtalk-agent-eval/references/evidence-contract.md +31 -0
- package/skills/dingtalk-agent-eval/references/scenario-taxonomy.md +25 -0
- package/skills/dingtalk-agent-eval/references/storage-modes.md +75 -0
- package/skills/dingtalk-basic-behavior/SKILL.md +63 -3
- package/skills/dingtalk-basic-behavior/assets/memory-candidate-proposal.json +10 -0
- package/skills/dingtalk-basic-behavior/assets/{task-checkpoint.md → task-checkpoint.json} +2 -21
- package/skills/dingtalk-basic-behavior/references/action-contract.md +2 -0
- package/skills/dingtalk-basic-behavior/references/memory-and-evolution.md +15 -1
- package/skills/dingtalk-basic-behavior/references/perception-and-gates.md +28 -0
- package/skills/dingtalk-basic-behavior/references/task-lifecycle.md +32 -7
- package/dist/src/boot.js +0 -70
- package/dist/src/boot.js.map +0 -1
- package/dist/src/duty.js +0 -74
- package/dist/src/duty.js.map +0 -1
- package/dist/src/kb.js +0 -240
- package/dist/src/kb.js.map +0 -1
- package/dist/src/runs.js +0 -79
- package/dist/src/runs.js.map +0 -1
- package/docs/ARCHITECTURE.md +0 -217
- package/docs/MINIMAL-WORKSPACE-V1.md +0 -172
- package/docs/OPEN-SOURCE-REFERENCES.md +0 -107
- package/docs/SELF-TEST.md +0 -252
- package/docs//345/206/205/347/275/221/345/256/236/347/233/270.md +0 -77
- package/evals/baselines/2026-07-14/behavior-summary.json +0 -28
- package/evals/baselines/2026-07-14/contract-summary.json +0 -18
- package/evals/baselines/2026-07-14/live-canary-summary.json +0 -25
- package/evals/baselines/2026-07-15/dingtalk-basic-behavior-0.3.0/SKILL.md +0 -72
- package/evals/baselines/2026-07-15/dingtalk-basic-behavior-0.3.0/references/action-contract.md +0 -31
- package/evals/baselines/2026-07-15/dingtalk-basic-behavior-0.3.0/references/event-to-behavior.md +0 -22
- package/evals/baselines/2026-07-15/dingtalk-basic-behavior-0.3.0/references/memory-and-evolution.md +0 -25
- package/evals/baselines/2026-07-15/dingtalk-basic-behavior-0.3.0/references/runtime-modes.md +0 -34
- package/evals/baselines/2026-07-15/task-lifecycle-summary.json +0 -50
- package/evals/evals.json +0 -316
- package/evals/fixtures/dm-ambiguous-send.json +0 -4
- package/evals/fixtures/dm-blocked.json +0 -4
- package/evals/fixtures/dm-clear.json +0 -4
- package/evals/fixtures/dm-discussion.json +0 -4
- package/evals/fixtures/dm-doc-write-no-tool.json +0 -4
- package/evals/fixtures/dm-long-task-ack.json +0 -4
- package/evals/fixtures/dm-nonblocking-gap.json +0 -4
- package/evals/fixtures/dm-structured-task.json +0 -4
- package/evals/fixtures/group.json +0 -10
- package/evals/fixtures/mentioned.json +0 -3
- package/evals/run-contract-evals.mjs +0 -1106
- package/evals/run-shadow-evals.mjs +0 -267
- package/evals/runners/README.md +0 -66
- package/evals/runners/claude-shadow.mjs +0 -533
- package/evals/schemas/action-request.schema.json +0 -77
- package/evals/shadow-evals.json +0 -133
- package/skills/AGENTS.md +0 -104
- package/skills//344/273/273/345/212/241.md +0 -48
- package/skills//345/237/272/347/241/200/350/241/214/344/270/272.md +0 -44
- package/skills//345/277/203/350/267/263.md +0 -79
- package/skills//346/266/210/346/201/257.md +0 -50
- package/skills//347/237/245/350/257/206.md +0 -55
- package/skills//350/257/204/346/265/213.md +0 -62
- package/skills//351/222/211/351/222/211.md +0 -64
- package/templates/ontology/index.md +0 -24
- package/templates/ontology/self/access.md +0 -38
- package/templates/ontology/self/role-spec.md +0 -34
- package/templates/ontology/self/workspace.md +0 -41
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 920" width="1440" height="920" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">dingtalk-agent 通用 Agent 行为内核拓扑</title>
|
|
3
|
+
<desc id="desc">外部触发器提供标准化 Invocation;Agent Definition、基础 Skill 与岗位 Skill 定义具体员工;dingtalk-agent 内核补齐感知、判断响应资格、维护 Session Run Wait 并约束 Action;DWS 负责执行钉钉产品能力。</desc>
|
|
4
|
+
<style>
|
|
5
|
+
text { font-family:'Helvetica Neue',Helvetica,Arial,'PingFang SC','Microsoft YaHei',sans-serif; }
|
|
6
|
+
.title { fill:#111827;font-size:28px;font-weight:700; }
|
|
7
|
+
.subtitle { fill:#6b7280;font-size:14px; }
|
|
8
|
+
.lane { fill:#475569;font-size:12px;font-weight:700;letter-spacing:.08em; }
|
|
9
|
+
.node-title { fill:#111827;font-size:16px;font-weight:700; }
|
|
10
|
+
.node-sub { fill:#4b5563;font-size:12px; }
|
|
11
|
+
.small { fill:#64748b;font-size:11px; }
|
|
12
|
+
.label { fill:#475569;font-size:11px;font-weight:600; }
|
|
13
|
+
</style>
|
|
14
|
+
<defs>
|
|
15
|
+
<marker id="blue" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto"><polygon points="0 0,10 3.5,0 7" fill="#2563eb"/></marker>
|
|
16
|
+
<marker id="orange" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto"><polygon points="0 0,10 3.5,0 7" fill="#ea580c"/></marker>
|
|
17
|
+
<marker id="green" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto"><polygon points="0 0,10 3.5,0 7" fill="#059669"/></marker>
|
|
18
|
+
<marker id="purple" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto"><polygon points="0 0,10 3.5,0 7" fill="#7c3aed"/></marker>
|
|
19
|
+
<marker id="gray" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto"><polygon points="0 0,10 3.5,0 7" fill="#64748b"/></marker>
|
|
20
|
+
<filter id="shadow" x="-20%" y="-20%" width="140%" height="140%"><feDropShadow dx="0" dy="2" stdDeviation="3" flood-color="#0f172a" flood-opacity=".10"/></filter>
|
|
21
|
+
</defs>
|
|
22
|
+
|
|
23
|
+
<rect width="1440" height="920" fill="#ffffff"/>
|
|
24
|
+
<text x="40" y="48" class="title">dingtalk-agent · 从一个 Agent 泛化到所有 Agent</text>
|
|
25
|
+
<text x="40" y="75" class="subtitle">触发端可替换,模型与沙箱可替换,岗位能力可叠加;不变的是定义、上下文、状态、闸门与效果证据。</text>
|
|
26
|
+
|
|
27
|
+
<rect x="30" y="100" width="1380" height="130" rx="12" fill="#f8fafc" stroke="#cbd5e1" stroke-width="1.2" stroke-dasharray="7 5"/>
|
|
28
|
+
<text x="48" y="124" class="lane">EXTERNAL INVOCATION · 触发不属于 dta</text>
|
|
29
|
+
|
|
30
|
+
<rect x="55" y="145" width="245" height="62" rx="9" fill="#fff7ed" stroke="#fdba74" stroke-width="1.6"/>
|
|
31
|
+
<text x="177" y="171" text-anchor="middle" class="node-title">任意触发 Adapter</text>
|
|
32
|
+
<text x="177" y="192" text-anchor="middle" class="node-sub">DM · @ · ambient · heartbeat · API</text>
|
|
33
|
+
|
|
34
|
+
<rect x="385" y="137" width="300" height="78" rx="10" fill="#eff6ff" stroke="#60a5fa" stroke-width="2" filter="url(#shadow)"/>
|
|
35
|
+
<text x="535" y="166" text-anchor="middle" class="node-title">Invocation Context</text>
|
|
36
|
+
<text x="535" y="189" text-anchor="middle" class="node-sub">mode · actor · target · conversation · sessionKey</text>
|
|
37
|
+
<text x="535" y="207" text-anchor="middle" class="small">无可信事件时默认 direct;外发仍 fail closed</text>
|
|
38
|
+
|
|
39
|
+
<rect x="770" y="137" width="590" height="78" rx="10" fill="#faf5ff" stroke="#c084fc" stroke-width="1.6"/>
|
|
40
|
+
<text x="1065" y="164" text-anchor="middle" class="node-title">同一内核的不同员工实例</text>
|
|
41
|
+
<text x="1065" y="190" text-anchor="middle" class="node-sub">FDE 教练 · 招聘助理 · 运维助手 · 项目经理 · 下一位 Agent</text>
|
|
42
|
+
|
|
43
|
+
<path d="M300 176 L385 176" fill="none" stroke="#ea580c" stroke-width="1.8" stroke-dasharray="6 4" marker-end="url(#orange)"/>
|
|
44
|
+
<rect x="314" y="153" width="57" height="20" rx="5" fill="#ffffff" opacity=".96"/><text x="342" y="168" text-anchor="middle" class="label">normalize</text>
|
|
45
|
+
|
|
46
|
+
<rect x="30" y="255" width="1380" height="165" rx="12" fill="#f8fafc" stroke="#cbd5e1" stroke-width="1.2" stroke-dasharray="7 5"/>
|
|
47
|
+
<text x="48" y="280" class="lane">AGENT DEFINITION · 差异在这里叠加</text>
|
|
48
|
+
|
|
49
|
+
<rect x="55" y="305" width="345" height="86" rx="10" fill="#eff6ff" stroke="#93c5fd" stroke-width="1.7" filter="url(#shadow)"/>
|
|
50
|
+
<text x="227" y="334" text-anchor="middle" class="node-title">Agent Definition</text>
|
|
51
|
+
<text x="227" y="357" text-anchor="middle" class="node-sub">身份 · 职责 · 服务对象 · 权限 · 存储绑定</text>
|
|
52
|
+
<text x="227" y="377" text-anchor="middle" class="small">一个可版本化、可审查、可冻结的员工合同</text>
|
|
53
|
+
|
|
54
|
+
<rect x="460" y="305" width="260" height="86" rx="10" fill="#f0fdfa" stroke="#5eead4" stroke-width="1.7"/>
|
|
55
|
+
<text x="590" y="334" text-anchor="middle" class="node-title">Basic Behavior Skill</text>
|
|
56
|
+
<text x="590" y="358" text-anchor="middle" class="node-sub">所有员工共享</text>
|
|
57
|
+
<text x="590" y="378" text-anchor="middle" class="small">响应资格 · 追问 · 静默 · 验证</text>
|
|
58
|
+
|
|
59
|
+
<rect x="780" y="305" width="260" height="86" rx="10" fill="#f0fdf4" stroke="#86efac" stroke-width="1.7"/>
|
|
60
|
+
<text x="910" y="334" text-anchor="middle" class="node-title">Role / Workflow Skills</text>
|
|
61
|
+
<text x="910" y="358" text-anchor="middle" class="node-sub">按岗位叠加</text>
|
|
62
|
+
<text x="910" y="378" text-anchor="middle" class="small">FDE · 招聘 · 周报 · 事故处理</text>
|
|
63
|
+
|
|
64
|
+
<rect x="1100" y="305" width="260" height="86" rx="10" fill="#faf5ff" stroke="#c084fc" stroke-width="1.7"/>
|
|
65
|
+
<text x="1230" y="334" text-anchor="middle" class="node-title">Agent Host / Sandbox</text>
|
|
66
|
+
<text x="1230" y="358" text-anchor="middle" class="node-sub">Claude Code · Codex · 其它 Runtime</text>
|
|
67
|
+
<text x="1230" y="378" text-anchor="middle" class="small">模型与执行体可替换</text>
|
|
68
|
+
|
|
69
|
+
<rect x="30" y="445" width="1160" height="315" rx="14" fill="#f8fafc" stroke="#0f766e" stroke-width="2"/>
|
|
70
|
+
<text x="50" y="473" fill="#0f766e" font-size="13" font-weight="700" letter-spacing=".08em">DINGTALK-AGENT KERNEL · Skill 劝,CLI 拦,本体与状态各归其位</text>
|
|
71
|
+
|
|
72
|
+
<rect x="60" y="500" width="420" height="205" rx="12" fill="#f0fdfa" stroke="#5eead4" stroke-width="1.4" stroke-dasharray="6 4"/>
|
|
73
|
+
<text x="78" y="525" fill="#0f766e" font-size="12" font-weight="700">贴心半闸门 · 让 Agent 看见完整现场</text>
|
|
74
|
+
|
|
75
|
+
<rect x="85" y="550" width="165" height="112" rx="9" fill="#ffffff" stroke="#5eead4" stroke-width="1.6"/>
|
|
76
|
+
<text x="167" y="580" text-anchor="middle" class="node-title">感知预处理</text>
|
|
77
|
+
<text x="167" y="604" text-anchor="middle" class="node-sub">引用 · 群上下文 · 附件</text>
|
|
78
|
+
<text x="167" y="625" text-anchor="middle" class="node-sub">身份解析 · 连发合并</text>
|
|
79
|
+
<text x="167" y="646" text-anchor="middle" class="small">统一 Enriched Event</text>
|
|
80
|
+
|
|
81
|
+
<rect x="290" y="550" width="165" height="112" rx="9" fill="#ffffff" stroke="#5eead4" stroke-width="1.6"/>
|
|
82
|
+
<text x="372" y="580" text-anchor="middle" class="node-title">行为策略</text>
|
|
83
|
+
<text x="372" y="604" text-anchor="middle" class="node-sub">中期回执 · 安静时段</text>
|
|
84
|
+
<text x="372" y="625" text-anchor="middle" class="node-sub">会议免打扰 · 收口快照</text>
|
|
85
|
+
<text x="372" y="646" text-anchor="middle" class="small">给 Skill 可判断的提示</text>
|
|
86
|
+
|
|
87
|
+
<rect x="510" y="500" width="650" height="205" rx="12" fill="#fff7ed" stroke="#fdba74" stroke-width="1.4" stroke-dasharray="6 4"/>
|
|
88
|
+
<text x="528" y="525" fill="#c2410c" font-size="12" font-weight="700">安全半闸门 · 必须成立的约束进入代码</text>
|
|
89
|
+
|
|
90
|
+
<rect x="535" y="550" width="170" height="112" rx="9" fill="#ffffff" stroke="#fdba74" stroke-width="1.6"/>
|
|
91
|
+
<text x="620" y="580" text-anchor="middle" class="node-title">Response Gate</text>
|
|
92
|
+
<text x="620" y="604" text-anchor="middle" class="node-sub">先判断能否响应</text>
|
|
93
|
+
<text x="620" y="625" text-anchor="middle" class="node-sub">@ · DM · ambient · scope</text>
|
|
94
|
+
<text x="620" y="646" text-anchor="middle" class="small">内容生成之前</text>
|
|
95
|
+
|
|
96
|
+
<rect x="745" y="540" width="180" height="132" rx="10" fill="#eff6ff" stroke="#60a5fa" stroke-width="1.8" filter="url(#shadow)"/>
|
|
97
|
+
<text x="835" y="574" text-anchor="middle" class="node-title">Session Runtime</text>
|
|
98
|
+
<text x="835" y="598" text-anchor="middle" class="node-sub">Session · Run · Wait</text>
|
|
99
|
+
<text x="835" y="619" text-anchor="middle" class="node-sub">Skill snapshot · budget</text>
|
|
100
|
+
<text x="835" y="640" text-anchor="middle" class="node-sub">checkpoint · resume</text>
|
|
101
|
+
<text x="835" y="660" text-anchor="middle" class="small">一件事跨多次唤醒</text>
|
|
102
|
+
|
|
103
|
+
<rect x="965" y="550" width="170" height="112" rx="9" fill="#ffffff" stroke="#f87171" stroke-width="1.8"/>
|
|
104
|
+
<text x="1050" y="580" text-anchor="middle" class="node-title">Action Gate</text>
|
|
105
|
+
<text x="1050" y="604" text-anchor="middle" class="node-sub">目标 · 身份 · 权限</text>
|
|
106
|
+
<text x="1050" y="625" text-anchor="middle" class="node-sub">幂等 · 回读 · Receipt</text>
|
|
107
|
+
<text x="1050" y="646" text-anchor="middle" class="small">副作用之前</text>
|
|
108
|
+
|
|
109
|
+
<path d="M535 215 L535 238 L42 238 L42 606 L85 606" fill="none" stroke="#2563eb" stroke-width="2" marker-end="url(#blue)"/>
|
|
110
|
+
<path d="M250 606 L290 606" fill="none" stroke="#059669" stroke-width="1.8" marker-end="url(#green)"/>
|
|
111
|
+
<path d="M455 606 L535 606" fill="none" stroke="#2563eb" stroke-width="2" marker-end="url(#blue)"/>
|
|
112
|
+
<path d="M705 606 L745 606" fill="none" stroke="#2563eb" stroke-width="2" marker-end="url(#blue)"/>
|
|
113
|
+
<path d="M925 606 L965 606" fill="none" stroke="#2563eb" stroke-width="2" marker-end="url(#blue)"/>
|
|
114
|
+
|
|
115
|
+
<path d="M227 391 L227 430 L780 430 L780 540" fill="none" stroke="#7c3aed" stroke-width="1.7" marker-end="url(#purple)"/>
|
|
116
|
+
<path d="M590 391 L590 440 L810 440 L810 540" fill="none" stroke="#7c3aed" stroke-width="1.7" marker-end="url(#purple)"/>
|
|
117
|
+
<path d="M910 391 L910 440 L850 440 L850 540" fill="none" stroke="#7c3aed" stroke-width="1.7" marker-end="url(#purple)"/>
|
|
118
|
+
<path d="M1230 391 L1230 430 L895 430 L895 540" fill="none" stroke="#7c3aed" stroke-width="1.7" marker-end="url(#purple)"/>
|
|
119
|
+
|
|
120
|
+
<rect x="355" y="720" width="510" height="24" rx="6" fill="#ffffff" stroke="#d1d5db" stroke-width="1"/>
|
|
121
|
+
<text x="610" y="737" text-anchor="middle" class="small">三层语义记忆按需读取;Wait / 锁 / 幂等 / Receipt 进入独立控制状态</text>
|
|
122
|
+
|
|
123
|
+
<rect x="1230" y="520" width="160" height="92" rx="10" fill="#f0fdfa" stroke="#2dd4bf" stroke-width="2" filter="url(#shadow)"/>
|
|
124
|
+
<circle cx="1262" cy="550" r="18" fill="#1677ff"/><text x="1262" y="555" text-anchor="middle" fill="#ffffff" font-size="10" font-weight="700">DWS</text>
|
|
125
|
+
<text x="1310" y="551" text-anchor="middle" class="node-title">驱动层</text>
|
|
126
|
+
<text x="1310" y="579" text-anchor="middle" class="node-sub">标准产品能力</text>
|
|
127
|
+
<text x="1310" y="598" text-anchor="middle" class="small">CLI / 未来 SDK</text>
|
|
128
|
+
|
|
129
|
+
<rect x="1230" y="660" width="160" height="92" rx="10" fill="#eff6ff" stroke="#93c5fd" stroke-width="1.7"/>
|
|
130
|
+
<text x="1310" y="689" text-anchor="middle" class="node-title">钉钉产品</text>
|
|
131
|
+
<text x="1310" y="713" text-anchor="middle" class="node-sub">消息 · 文档 · 待办</text>
|
|
132
|
+
<text x="1310" y="734" text-anchor="middle" class="node-sub">日历 · 表格 · 审批</text>
|
|
133
|
+
|
|
134
|
+
<path d="M1135 606 L1185 606 L1185 566 L1230 566" fill="none" stroke="#2563eb" stroke-width="2.2" marker-end="url(#blue)"/>
|
|
135
|
+
<path d="M1310 612 L1310 660" fill="none" stroke="#2563eb" stroke-width="2.2" marker-end="url(#blue)"/>
|
|
136
|
+
<path d="M1230 706 L1188 706 L1188 688 L1050 688 L1050 662" fill="none" stroke="#64748b" stroke-width="1.6" stroke-dasharray="5 4" marker-end="url(#gray)"/>
|
|
137
|
+
<rect x="1082" y="676" width="82" height="20" rx="5" fill="#ffffff" opacity=".96"/><text x="1123" y="691" text-anchor="middle" class="label">平台回读</text>
|
|
138
|
+
|
|
139
|
+
<rect x="30" y="790" width="1380" height="76" rx="10" fill="#f8fafc" stroke="#cbd5e1" stroke-width="1"/>
|
|
140
|
+
<text x="50" y="816" fill="#111827" font-size="13" font-weight="700">可叠加公式</text>
|
|
141
|
+
<text x="50" y="844" fill="#334155" font-size="15">Agent Host + dta Kernel + Agent Definition + Basic Behavior + Role Skills + DWS = 一个可工作的钉钉数字员工</text>
|
|
142
|
+
<text x="940" y="844" class="small">触发、模型、沙箱、岗位与存储 Provider 均可替换</text>
|
|
143
|
+
|
|
144
|
+
<line x1="40" y1="892" x2="76" y2="892" stroke="#2563eb" stroke-width="2" marker-end="url(#blue)"/><text x="84" y="896" class="small">主处理流</text>
|
|
145
|
+
<line x1="210" y1="892" x2="246" y2="892" stroke="#ea580c" stroke-width="1.8" stroke-dasharray="6 4" marker-end="url(#orange)"/><text x="254" y="896" class="small">外部触发</text>
|
|
146
|
+
<line x1="370" y1="892" x2="406" y2="892" stroke="#059669" stroke-width="1.8" marker-end="url(#green)"/><text x="414" y="896" class="small">感知补齐</text>
|
|
147
|
+
<line x1="530" y1="892" x2="566" y2="892" stroke="#7c3aed" stroke-width="1.8" marker-end="url(#purple)"/><text x="574" y="896" class="small">定义 / Skill 注入</text>
|
|
148
|
+
<line x1="735" y1="892" x2="771" y2="892" stroke="#64748b" stroke-width="1.6" stroke-dasharray="5 4" marker-end="url(#gray)"/><text x="779" y="896" class="small">回读 / 控制反馈</text>
|
|
149
|
+
</svg>
|
|
Binary file
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 820" width="1200" height="820" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">dingtalk-agent Provider-bound Development Workspace 拓扑</title>
|
|
3
|
+
<desc id="desc">一个可移植 Agent Project 可以解析成多个开发 Workspace;每个 Workspace 只绑定一个 Host Provider,但可以独立绑定不同的语义 Storage。Session 和 Run 位于 Workspace 内,实际状态和回执与期望 Manifest 分开。</desc>
|
|
4
|
+
<style>
|
|
5
|
+
text { font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Microsoft YaHei', sans-serif; }
|
|
6
|
+
.title { font-size: 23px; font-weight: 700; fill: #111827; }
|
|
7
|
+
.subtitle { font-size: 13px; fill: #6b7280; }
|
|
8
|
+
.layer-title { font-size: 13px; font-weight: 700; fill: #374151; letter-spacing: .4px; }
|
|
9
|
+
.node-title { font-size: 15px; font-weight: 700; fill: #111827; }
|
|
10
|
+
.node-sub { font-size: 12px; fill: #6b7280; }
|
|
11
|
+
.tiny { font-size: 11px; fill: #6b7280; }
|
|
12
|
+
.edge-label { font-size: 11px; font-weight: 600; fill: #4b5563; }
|
|
13
|
+
</style>
|
|
14
|
+
<defs>
|
|
15
|
+
<marker id="arrow-blue" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
|
16
|
+
<polygon points="0 0, 10 3.5, 0 7" fill="#2563eb"/>
|
|
17
|
+
</marker>
|
|
18
|
+
<marker id="arrow-green" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
|
19
|
+
<polygon points="0 0, 10 3.5, 0 7" fill="#16a34a"/>
|
|
20
|
+
</marker>
|
|
21
|
+
<marker id="arrow-purple" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
|
22
|
+
<polygon points="0 0, 10 3.5, 0 7" fill="#9333ea"/>
|
|
23
|
+
</marker>
|
|
24
|
+
<filter id="shadow" x="-10%" y="-10%" width="120%" height="130%">
|
|
25
|
+
<feDropShadow dx="0" dy="2" stdDeviation="3" flood-color="#111827" flood-opacity="0.10"/>
|
|
26
|
+
</filter>
|
|
27
|
+
</defs>
|
|
28
|
+
|
|
29
|
+
<rect width="1200" height="820" fill="#ffffff"/>
|
|
30
|
+
<text x="40" y="43" class="title">Provider-bound Development Workspace</text>
|
|
31
|
+
<text x="40" y="67" class="subtitle">Project 定义“要开发成什么”;Workspace 定义“在哪里、以什么 Provider 状态开发”;Session / Run 定义“正在做哪件事”。</text>
|
|
32
|
+
|
|
33
|
+
<!-- Developer control plane -->
|
|
34
|
+
<rect x="40" y="92" width="1120" height="108" rx="12" fill="#f9fafb" stroke="#d1d5db" stroke-width="1.5" stroke-dasharray="6 4"/>
|
|
35
|
+
<text x="58" y="116" class="layer-title">开发控制面</text>
|
|
36
|
+
<rect x="80" y="132" width="220" height="48" rx="9" fill="#eff6ff" stroke="#bfdbfe" stroke-width="1.5"/>
|
|
37
|
+
<text x="190" y="153" text-anchor="middle" class="node-title">Coding Agent / Developer</text>
|
|
38
|
+
<text x="190" y="170" text-anchor="middle" class="node-sub">Codex · OpenCode · 人</text>
|
|
39
|
+
<rect x="430" y="122" width="330" height="66" rx="10" fill="#fff7ed" stroke="#fed7aa" stroke-width="1.5" filter="url(#shadow)"/>
|
|
40
|
+
<text x="595" y="147" text-anchor="middle" class="node-title">dta Workflow Skills + CLI</text>
|
|
41
|
+
<text x="595" y="167" text-anchor="middle" class="node-sub">compose · info · eval · deploy · status</text>
|
|
42
|
+
<rect x="890" y="132" width="220" height="48" rx="9" fill="#faf5ff" stroke="#e9d5ff" stroke-width="1.5"/>
|
|
43
|
+
<text x="1000" y="153" text-anchor="middle" class="node-title">Plan / Receipt</text>
|
|
44
|
+
<text x="1000" y="170" text-anchor="middle" class="node-sub">稳定机器合同,无 Secret</text>
|
|
45
|
+
<path d="M 300 156 L 420 156" fill="none" stroke="#2563eb" stroke-width="2" marker-end="url(#arrow-blue)"/>
|
|
46
|
+
<path d="M 760 156 L 880 156" fill="none" stroke="#2563eb" stroke-width="2" marker-end="url(#arrow-blue)"/>
|
|
47
|
+
|
|
48
|
+
<!-- Project -->
|
|
49
|
+
<rect x="40" y="224" width="800" height="138" rx="12" fill="#f9fafb" stroke="#d1d5db" stroke-width="1.5" stroke-dasharray="6 4"/>
|
|
50
|
+
<text x="58" y="248" class="layer-title">可移植 Agent Project · 进入 Git</text>
|
|
51
|
+
<rect x="80" y="270" width="210" height="66" rx="9" fill="#eff6ff" stroke="#bfdbfe" stroke-width="1.5"/>
|
|
52
|
+
<text x="185" y="296" text-anchor="middle" class="node-title">dingtalk-agent.json</text>
|
|
53
|
+
<text x="185" y="317" text-anchor="middle" class="node-sub">Project + Workspace 期望状态</text>
|
|
54
|
+
<rect x="325" y="270" width="210" height="66" rx="9" fill="#f0fdf4" stroke="#bbf7d0" stroke-width="1.5"/>
|
|
55
|
+
<text x="430" y="296" text-anchor="middle" class="node-title">AGENTS.md + Skills</text>
|
|
56
|
+
<text x="430" y="317" text-anchor="middle" class="node-sub">本体、Basic、岗位能力</text>
|
|
57
|
+
<rect x="570" y="270" width="220" height="66" rx="9" fill="#faf5ff" stroke="#e9d5ff" stroke-width="1.5"/>
|
|
58
|
+
<text x="680" y="296" text-anchor="middle" class="node-title">Eval Suites</text>
|
|
59
|
+
<text x="680" y="317" text-anchor="middle" class="node-sub">成功标准与晋级门禁</text>
|
|
60
|
+
<path d="M 595 188 L 595 214 L 430 214 L 430 260" fill="none" stroke="#2563eb" stroke-width="2" marker-end="url(#arrow-blue)"/>
|
|
61
|
+
|
|
62
|
+
<!-- Storage providers -->
|
|
63
|
+
<rect x="870" y="224" width="290" height="338" rx="12" fill="#f0fdf4" stroke="#bbf7d0" stroke-width="1.5" stroke-dasharray="6 4"/>
|
|
64
|
+
<text x="890" y="248" class="layer-title">独立 Storage Providers</text>
|
|
65
|
+
<text x="890" y="269" class="tiny">只决定语义内容放哪里,不决定 Agent 在哪里运行</text>
|
|
66
|
+
<rect x="910" y="296" width="210" height="54" rx="9" fill="#ffffff" stroke="#86efac" stroke-width="1.5"/>
|
|
67
|
+
<text x="1015" y="319" text-anchor="middle" class="node-title">local-md / local-dir</text>
|
|
68
|
+
<text x="1015" y="337" text-anchor="middle" class="node-sub">本地本体、记忆、产物</text>
|
|
69
|
+
<rect x="910" y="374" width="210" height="54" rx="9" fill="#ffffff" stroke="#86efac" stroke-width="1.5"/>
|
|
70
|
+
<text x="1015" y="397" text-anchor="middle" class="node-title">dingtalk-doc</text>
|
|
71
|
+
<text x="1015" y="415" text-anchor="middle" class="node-sub">远端记忆与知识</text>
|
|
72
|
+
<rect x="910" y="452" width="210" height="54" rx="9" fill="#ffffff" stroke="#86efac" stroke-width="1.5"/>
|
|
73
|
+
<text x="1015" y="475" text-anchor="middle" class="node-title">Future typed stores</text>
|
|
74
|
+
<text x="1015" y="493" text-anchor="middle" class="node-sub">AI 表格 · Artifact store</text>
|
|
75
|
+
<text x="1015" y="538" text-anchor="middle" class="tiny">锁 / Wait / generation / Receipt 不进入这些介质</text>
|
|
76
|
+
|
|
77
|
+
<!-- Workspaces -->
|
|
78
|
+
<rect x="40" y="388" width="800" height="174" rx="12" fill="#f9fafb" stroke="#d1d5db" stroke-width="1.5" stroke-dasharray="6 4"/>
|
|
79
|
+
<text x="58" y="412" class="layer-title">Development Workspaces · 一个 Workspace 只绑定一个 Host Provider</text>
|
|
80
|
+
<rect x="75" y="436" width="220" height="94" rx="10" fill="#eff6ff" stroke="#93c5fd" stroke-width="1.8" filter="url(#shadow)"/>
|
|
81
|
+
<text x="185" y="462" text-anchor="middle" class="node-title">local-dev</text>
|
|
82
|
+
<text x="185" y="483" text-anchor="middle" class="node-sub">provider = opencode</text>
|
|
83
|
+
<text x="185" y="503" text-anchor="middle" class="node-sub">model · Basic load · local state</text>
|
|
84
|
+
<text x="185" y="519" text-anchor="middle" class="tiny">stage = dev</text>
|
|
85
|
+
<rect x="330" y="436" width="220" height="94" rx="10" fill="#fff7ed" stroke="#fdba74" stroke-width="1.8" filter="url(#shadow)"/>
|
|
86
|
+
<text x="440" y="462" text-anchor="middle" class="node-title">multica-dev</text>
|
|
87
|
+
<text x="440" y="483" text-anchor="middle" class="node-sub">provider = multica</text>
|
|
88
|
+
<text x="440" y="503" text-anchor="middle" class="node-sub">profile · scope · runtime · agentId</text>
|
|
89
|
+
<text x="440" y="519" text-anchor="middle" class="tiny">stage = dev</text>
|
|
90
|
+
<rect x="585" y="436" width="220" height="94" rx="10" fill="#faf5ff" stroke="#d8b4fe" stroke-width="1.8"/>
|
|
91
|
+
<text x="695" y="462" text-anchor="middle" class="node-title">future-workspace</text>
|
|
92
|
+
<text x="695" y="483" text-anchor="middle" class="node-sub">provider = future</text>
|
|
93
|
+
<text x="695" y="503" text-anchor="middle" class="node-sub">同一最小 Provider 合同</text>
|
|
94
|
+
<text x="695" y="519" text-anchor="middle" class="tiny">optional</text>
|
|
95
|
+
<path d="M 185 362 L 185 426" fill="none" stroke="#2563eb" stroke-width="2" marker-end="url(#arrow-blue)"/>
|
|
96
|
+
<path d="M 430 362 L 430 406 L 440 406 L 440 426" fill="none" stroke="#2563eb" stroke-width="2" marker-end="url(#arrow-blue)"/>
|
|
97
|
+
<path d="M 680 362 L 680 406 L 695 406 L 695 426" fill="none" stroke="#2563eb" stroke-width="2" marker-end="url(#arrow-blue)"/>
|
|
98
|
+
<rect x="360" y="374" width="157" height="20" rx="4" fill="#ffffff" opacity="0.96"/>
|
|
99
|
+
<text x="438" y="388" text-anchor="middle" class="edge-label">Project + Workspace overlay</text>
|
|
100
|
+
|
|
101
|
+
<!-- Storage binding arrows -->
|
|
102
|
+
<path d="M 840 454 L 856 454 L 856 323 L 900 323" fill="none" stroke="#16a34a" stroke-width="1.8" stroke-dasharray="6 4" marker-end="url(#arrow-green)"/>
|
|
103
|
+
<path d="M 840 522 L 872 522 L 872 401 L 900 401" fill="none" stroke="#16a34a" stroke-width="1.8" stroke-dasharray="6 4" marker-end="url(#arrow-green)"/>
|
|
104
|
+
<rect x="752" y="418" width="98" height="20" rx="4" fill="#ffffff" opacity="0.96"/>
|
|
105
|
+
<text x="801" y="432" text-anchor="middle" class="edge-label">storage binding</text>
|
|
106
|
+
|
|
107
|
+
<!-- Runtime actual state -->
|
|
108
|
+
<rect x="40" y="588" width="1120" height="158" rx="12" fill="#f9fafb" stroke="#d1d5db" stroke-width="1.5" stroke-dasharray="6 4"/>
|
|
109
|
+
<text x="58" y="612" class="layer-title">Provider 实际状态 · 回读后写入 gitignored state / Receipt</text>
|
|
110
|
+
<rect x="75" y="634" width="220" height="84" rx="10" fill="#111827" stroke="#374151" stroke-width="1.5"/>
|
|
111
|
+
<text x="185" y="660" text-anchor="middle" font-size="15" font-weight="700" fill="#ffffff">OpenCode Sandbox</text>
|
|
112
|
+
<text x="185" y="681" text-anchor="middle" font-size="12" fill="#d1d5db">invoke · eval · files/artifacts</text>
|
|
113
|
+
<text x="185" y="700" text-anchor="middle" font-size="11" fill="#9ca3af">Sessions → Runs → Evidence</text>
|
|
114
|
+
<rect x="330" y="634" width="220" height="84" rx="10" fill="#fff7ed" stroke="#fdba74" stroke-width="1.5"/>
|
|
115
|
+
<text x="440" y="660" text-anchor="middle" class="node-title">Multica Managed Agent</text>
|
|
116
|
+
<text x="440" y="681" text-anchor="middle" class="node-sub">Boot → Basic → Role Skills</text>
|
|
117
|
+
<text x="440" y="700" text-anchor="middle" class="tiny">agent get · skills · status · smoke</text>
|
|
118
|
+
<rect x="585" y="634" width="220" height="84" rx="10" fill="#faf5ff" stroke="#d8b4fe" stroke-width="1.5"/>
|
|
119
|
+
<text x="695" y="660" text-anchor="middle" class="node-title">Future Provider</text>
|
|
120
|
+
<text x="695" y="681" text-anchor="middle" class="node-sub">doctor · plan · apply</text>
|
|
121
|
+
<text x="695" y="700" text-anchor="middle" class="tiny">inspect · invoke · status</text>
|
|
122
|
+
<rect x="890" y="634" width="230" height="84" rx="10" fill="#f0fdfa" stroke="#99f6e4" stroke-width="1.5"/>
|
|
123
|
+
<text x="1005" y="660" text-anchor="middle" class="node-title">Workspace State / Receipt</text>
|
|
124
|
+
<text x="1005" y="681" text-anchor="middle" class="node-sub">desiredHash · observedHash</text>
|
|
125
|
+
<text x="1005" y="700" text-anchor="middle" class="tiny">operationId · evalId · no secrets</text>
|
|
126
|
+
<path d="M 185 530 L 185 624" fill="none" stroke="#2563eb" stroke-width="2" marker-end="url(#arrow-blue)"/>
|
|
127
|
+
<path d="M 440 530 L 440 624" fill="none" stroke="#2563eb" stroke-width="2" marker-end="url(#arrow-blue)"/>
|
|
128
|
+
<path d="M 695 530 L 695 624" fill="none" stroke="#2563eb" stroke-width="2" marker-end="url(#arrow-blue)"/>
|
|
129
|
+
<path d="M 805 676 L 880 676" fill="none" stroke="#9333ea" stroke-width="1.8" marker-end="url(#arrow-purple)"/>
|
|
130
|
+
|
|
131
|
+
<!-- Legend and invariant -->
|
|
132
|
+
<line x1="55" y1="780" x2="90" y2="780" stroke="#2563eb" stroke-width="2" marker-end="url(#arrow-blue)"/>
|
|
133
|
+
<text x="100" y="784" class="tiny">开发/解析/执行主路径</text>
|
|
134
|
+
<line x1="265" y1="780" x2="300" y2="780" stroke="#16a34a" stroke-width="1.8" stroke-dasharray="6 4" marker-end="url(#arrow-green)"/>
|
|
135
|
+
<text x="310" y="784" class="tiny">语义 Storage 绑定</text>
|
|
136
|
+
<line x1="455" y1="780" x2="490" y2="780" stroke="#9333ea" stroke-width="1.8" marker-end="url(#arrow-purple)"/>
|
|
137
|
+
<text x="500" y="784" class="tiny">Provider 回读与证据</text>
|
|
138
|
+
<rect x="760" y="759" width="400" height="38" rx="8" fill="#fef2f2" stroke="#fecaca"/>
|
|
139
|
+
<text x="960" y="775" text-anchor="middle" font-size="12" font-weight="700" fill="#991b1b">不变量:Provider 不从正文猜身份/目标,不拥有 Trigger</text>
|
|
140
|
+
<text x="960" y="790" text-anchor="middle" font-size="11" fill="#b91c1c">一个 Workspace 不原地改绑 Provider;新环境创建新 Workspace</text>
|
|
141
|
+
</svg>
|
|
Binary file
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 840" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">数字员工任务闭环与完成闸门</title>
|
|
3
|
+
<desc id="desc">展示任务从可信上下文、理解、条件澄清、计划、执行、验证到完成闸门的流程,以及运行时状态约束和四类证据。</desc>
|
|
4
|
+
<defs>
|
|
5
|
+
<style>
|
|
6
|
+
text { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; fill: #0f172a; }
|
|
7
|
+
.title { font-size: 28px; font-weight: 750; }
|
|
8
|
+
.subtitle { font-size: 14px; fill: #475569; }
|
|
9
|
+
.section { font-size: 13px; font-weight: 700; letter-spacing: .8px; fill: #475569; }
|
|
10
|
+
.node-title { font-size: 15px; font-weight: 750; }
|
|
11
|
+
.node-sub { font-size: 12px; fill: #475569; }
|
|
12
|
+
.small { font-size: 11px; fill: #64748b; }
|
|
13
|
+
.label { font-size: 12px; font-weight: 650; }
|
|
14
|
+
</style>
|
|
15
|
+
<filter id="shadow" x="-20%" y="-20%" width="140%" height="140%">
|
|
16
|
+
<feDropShadow dx="0" dy="3" stdDeviation="5" flood-color="#0f172a" flood-opacity="0.10"/>
|
|
17
|
+
</filter>
|
|
18
|
+
<marker id="arrow-blue" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto">
|
|
19
|
+
<path d="M0,0 L10,4 L0,8 Z" fill="#2563eb"/>
|
|
20
|
+
</marker>
|
|
21
|
+
<marker id="arrow-orange" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto">
|
|
22
|
+
<path d="M0,0 L10,4 L0,8 Z" fill="#ea580c"/>
|
|
23
|
+
</marker>
|
|
24
|
+
<marker id="arrow-green" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto">
|
|
25
|
+
<path d="M0,0 L10,4 L0,8 Z" fill="#059669"/>
|
|
26
|
+
</marker>
|
|
27
|
+
<marker id="arrow-stop" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto">
|
|
28
|
+
<path d="M0,0 L10,4 L0,8 Z" fill="#dc2626"/>
|
|
29
|
+
</marker>
|
|
30
|
+
</defs>
|
|
31
|
+
|
|
32
|
+
<rect width="1200" height="840" fill="#f8fafc"/>
|
|
33
|
+
<text x="54" y="48" class="title">数字员工任务闭环与完成闸门</text>
|
|
34
|
+
<text x="54" y="76" class="subtitle">澄清是条件分支;完成是证据结论。Skill 引导语义判断,CLI 固定状态边界,DWS / 文件系统提供可回读事实。</text>
|
|
35
|
+
|
|
36
|
+
<rect x="50" y="104" width="1100" height="106" rx="18" fill="#ffffff" stroke="#cbd5e1" stroke-width="1.5" stroke-dasharray="7 5"/>
|
|
37
|
+
<text x="72" y="130" class="section">可信现场 · TRUSTED CONTEXT</text>
|
|
38
|
+
|
|
39
|
+
<rect x="72" y="146" width="304" height="46" rx="12" fill="#eff6ff" stroke="#93c5fd"/>
|
|
40
|
+
<circle cx="98" cy="169" r="10" fill="#2563eb"/>
|
|
41
|
+
<path d="M93 169 l4 4 l7 -8" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
42
|
+
<text x="118" y="166" class="node-title">Origin + Continuation</text>
|
|
43
|
+
<text x="118" y="182" class="small">当前消息、线程与明确续接</text>
|
|
44
|
+
|
|
45
|
+
<rect x="448" y="146" width="304" height="46" rx="12" fill="#fff7ed" stroke="#fdba74"/>
|
|
46
|
+
<path d="M470 160 h18 v18 h-18 z M474 156 h10 v5 h-10 z" fill="none" stroke="#ea580c" stroke-width="1.8"/>
|
|
47
|
+
<text x="502" y="166" class="node-title">Definition + Authority</text>
|
|
48
|
+
<text x="502" y="182" class="small">身份、职责、作用域与权限</text>
|
|
49
|
+
|
|
50
|
+
<rect x="824" y="146" width="304" height="46" rx="12" fill="#f0fdf4" stroke="#86efac"/>
|
|
51
|
+
<path d="M848 158 h17 l6 6 v14 h-23 z M865 158 v7 h7" fill="none" stroke="#059669" stroke-width="1.8" stroke-linejoin="round"/>
|
|
52
|
+
<text x="884" y="166" class="node-title">Workspace + Role Skills</text>
|
|
53
|
+
<text x="884" y="182" class="small">附件、知识、已有 checkpoint</text>
|
|
54
|
+
|
|
55
|
+
<path d="M600 210 V236" fill="none" stroke="#ea580c" stroke-width="2" marker-end="url(#arrow-orange)"/>
|
|
56
|
+
|
|
57
|
+
<text x="50" y="251" class="section">员工任务主流程 · EMPLOYEE LOOP</text>
|
|
58
|
+
|
|
59
|
+
<rect x="50" y="272" width="146" height="78" rx="16" fill="#ffffff" stroke="#60a5fa" stroke-width="2" filter="url(#shadow)"/>
|
|
60
|
+
<circle cx="78" cy="298" r="13" fill="#dbeafe"/>
|
|
61
|
+
<path d="M72 298 h12 M78 292 v12" stroke="#2563eb" stroke-width="2" stroke-linecap="round"/>
|
|
62
|
+
<text x="101" y="299" class="node-title">UNDERSTAND</text>
|
|
63
|
+
<text x="73" y="326" class="node-sub">形成内部任务合同</text>
|
|
64
|
+
<text x="73" y="342" class="small">goal · deliverable · doneWhen</text>
|
|
65
|
+
|
|
66
|
+
<path d="M196 311 H228" fill="none" stroke="#2563eb" stroke-width="2.2" marker-end="url(#arrow-blue)"/>
|
|
67
|
+
|
|
68
|
+
<path d="M300 268 L370 311 L300 354 L230 311 Z" fill="#fff7ed" stroke="#fb923c" stroke-width="2" filter="url(#shadow)"/>
|
|
69
|
+
<text x="300" y="306" text-anchor="middle" class="node-title">存在阻塞缺口?</text>
|
|
70
|
+
<text x="300" y="326" text-anchor="middle" class="small">会改变结果 / 权限 / 副作用</text>
|
|
71
|
+
|
|
72
|
+
<path d="M370 311 H406" fill="none" stroke="#2563eb" stroke-width="2.2" marker-end="url(#arrow-blue)"/>
|
|
73
|
+
<rect x="374" y="288" width="28" height="18" rx="5" fill="#f8fafc" opacity="0.96"/>
|
|
74
|
+
<text x="388" y="301" text-anchor="middle" class="label" fill="#2563eb">否</text>
|
|
75
|
+
|
|
76
|
+
<rect x="406" y="272" width="132" height="78" rx="16" fill="#ffffff" stroke="#60a5fa" stroke-width="2"/>
|
|
77
|
+
<text x="472" y="301" text-anchor="middle" class="node-title">PLAN</text>
|
|
78
|
+
<text x="472" y="324" text-anchor="middle" class="node-sub">2–5 个检查点</text>
|
|
79
|
+
<text x="472" y="341" text-anchor="middle" class="small">单步任务可省略</text>
|
|
80
|
+
|
|
81
|
+
<path d="M538 311 H570" fill="none" stroke="#2563eb" stroke-width="2.2" marker-end="url(#arrow-blue)"/>
|
|
82
|
+
|
|
83
|
+
<rect x="570" y="272" width="132" height="78" rx="16" fill="#ffffff" stroke="#60a5fa" stroke-width="2"/>
|
|
84
|
+
<text x="636" y="301" text-anchor="middle" class="node-title">EXECUTE</text>
|
|
85
|
+
<text x="636" y="324" text-anchor="middle" class="node-sub">最小充分动作</text>
|
|
86
|
+
<text x="636" y="341" text-anchor="middle" class="small">副作用前重核对象</text>
|
|
87
|
+
|
|
88
|
+
<path d="M702 311 H734" fill="none" stroke="#2563eb" stroke-width="2.2" marker-end="url(#arrow-blue)"/>
|
|
89
|
+
|
|
90
|
+
<rect x="734" y="272" width="132" height="78" rx="16" fill="#ffffff" stroke="#34d399" stroke-width="2"/>
|
|
91
|
+
<text x="800" y="301" text-anchor="middle" class="node-title">VERIFY</text>
|
|
92
|
+
<text x="800" y="324" text-anchor="middle" class="node-sub">检查真实状态</text>
|
|
93
|
+
<text x="800" y="341" text-anchor="middle" class="small">生成 ≠ 保存 ≠ 送达</text>
|
|
94
|
+
|
|
95
|
+
<path d="M866 311 H898" fill="none" stroke="#2563eb" stroke-width="2.2" marker-end="url(#arrow-blue)"/>
|
|
96
|
+
|
|
97
|
+
<rect x="898" y="252" width="252" height="118" rx="18" fill="#fffbeb" stroke="#f59e0b" stroke-width="2.5" filter="url(#shadow)"/>
|
|
98
|
+
<rect x="918" y="270" width="52" height="24" rx="12" fill="#f59e0b"/>
|
|
99
|
+
<text x="944" y="287" text-anchor="middle" font-size="11" font-weight="750" fill="#ffffff">CLI GATE</text>
|
|
100
|
+
<text x="1024" y="289" class="node-title">COMPLETION GATE</text>
|
|
101
|
+
<text x="920" y="316" class="small">① status = verifying</text>
|
|
102
|
+
<text x="1038" y="316" class="small">② doneWhen 有证据</text>
|
|
103
|
+
<text x="920" y="337" class="small">③ waitingFor = null</text>
|
|
104
|
+
<text x="1038" y="337" class="small">④ nextAction 为空</text>
|
|
105
|
+
<text x="920" y="356" class="small">回复正文不能证明自己的完成声明</text>
|
|
106
|
+
|
|
107
|
+
<path d="M1024 370 V412" fill="none" stroke="#2563eb" stroke-width="2.4" marker-end="url(#arrow-blue)"/>
|
|
108
|
+
<rect x="1032" y="383" width="58" height="20" rx="6" fill="#f8fafc" opacity="0.96"/>
|
|
109
|
+
<text x="1061" y="398" text-anchor="middle" class="label" fill="#2563eb">全部通过</text>
|
|
110
|
+
|
|
111
|
+
<rect x="940" y="414" width="168" height="70" rx="18" fill="#ecfdf5" stroke="#10b981" stroke-width="2.5" filter="url(#shadow)"/>
|
|
112
|
+
<circle cx="972" cy="443" r="14" fill="#10b981"/>
|
|
113
|
+
<path d="M965 443 l5 5 l9 -11" fill="none" stroke="#ffffff" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
114
|
+
<text x="1041" y="442" text-anchor="middle" class="node-title">COMPLETE</text>
|
|
115
|
+
<text x="1024" y="466" text-anchor="middle" class="node-sub">结果 · 证据 · 遗留 · owner</text>
|
|
116
|
+
|
|
117
|
+
<path d="M300 354 V396 H196" fill="none" stroke="#ea580c" stroke-width="2" marker-end="url(#arrow-orange)"/>
|
|
118
|
+
<rect x="306" y="366" width="28" height="18" rx="5" fill="#f8fafc" opacity="0.96"/>
|
|
119
|
+
<text x="320" y="379" text-anchor="middle" class="label" fill="#ea580c">是</text>
|
|
120
|
+
|
|
121
|
+
<rect x="50" y="396" width="146" height="72" rx="16" fill="#fff7ed" stroke="#fb923c" stroke-width="2"/>
|
|
122
|
+
<text x="123" y="425" text-anchor="middle" class="node-title">CLARIFY</text>
|
|
123
|
+
<text x="123" y="447" text-anchor="middle" class="node-sub">只问一个阻塞问题</text>
|
|
124
|
+
<text x="123" y="462" text-anchor="middle" class="small">信息足够时不出现</text>
|
|
125
|
+
|
|
126
|
+
<path d="M196 432 H230" fill="none" stroke="#ea580c" stroke-width="2" marker-end="url(#arrow-orange)"/>
|
|
127
|
+
<rect x="230" y="396" width="146" height="72" rx="16" fill="#fff7ed" stroke="#fb923c" stroke-width="2"/>
|
|
128
|
+
<text x="303" y="425" text-anchor="middle" class="node-title">WAIT</text>
|
|
129
|
+
<text x="303" y="447" text-anchor="middle" class="node-sub">记录恢复条件</text>
|
|
130
|
+
<text x="303" y="462" text-anchor="middle" class="small">释放沙箱,不轮询</text>
|
|
131
|
+
|
|
132
|
+
<path d="M303 468 V516 H78 V350" fill="none" stroke="#7c3aed" stroke-width="1.8" marker-end="url(#arrow-blue)"/>
|
|
133
|
+
<rect x="154" y="505" width="98" height="20" rx="6" fill="#f8fafc" opacity="0.96"/>
|
|
134
|
+
<text x="203" y="519" text-anchor="middle" class="small" fill="#7c3aed">新事件恢复原 Session</text>
|
|
135
|
+
|
|
136
|
+
<path d="M898 338 H884 V448 H836" fill="none" stroke="#dc2626" stroke-width="2" marker-end="url(#arrow-stop)"/>
|
|
137
|
+
<rect x="846" y="424" width="26" height="18" rx="5" fill="#f8fafc" opacity="0.96"/>
|
|
138
|
+
<text x="859" y="437" text-anchor="middle" class="label" fill="#dc2626">失败</text>
|
|
139
|
+
<rect x="646" y="414" width="190" height="70" rx="16" fill="#fef2f2" stroke="#f87171" stroke-width="2"/>
|
|
140
|
+
<text x="741" y="441" text-anchor="middle" class="node-title">返工 / 等待 / 阻塞</text>
|
|
141
|
+
<text x="741" y="463" text-anchor="middle" class="node-sub">准确报告,不说“已完成”</text>
|
|
142
|
+
<path d="M646 449 H620 V350" fill="none" stroke="#dc2626" stroke-width="1.8" marker-end="url(#arrow-stop)"/>
|
|
143
|
+
|
|
144
|
+
<rect x="50" y="550" width="1100" height="222" rx="20" fill="#ffffff" stroke="#bbf7d0" stroke-width="1.5" stroke-dasharray="7 5"/>
|
|
145
|
+
<text x="72" y="579" class="section">证据平面 · EVIDENCE PLANE</text>
|
|
146
|
+
<text x="72" y="600" class="small">每条 doneWhen 绑定至少一种可定位事实;质量分不能覆盖缺失证据。</text>
|
|
147
|
+
|
|
148
|
+
<rect x="72" y="624" width="230" height="104" rx="16" fill="#f0fdf4" stroke="#86efac"/>
|
|
149
|
+
<path d="M94 643 h24 l7 7 v24 h-31 z M118 643 v8 h8" fill="none" stroke="#059669" stroke-width="2" stroke-linejoin="round"/>
|
|
150
|
+
<text x="140" y="654" class="node-title">文件系统</text>
|
|
151
|
+
<text x="94" y="684" class="node-sub">路径存在 · 内容匹配</text>
|
|
152
|
+
<text x="94" y="705" class="node-sub">大小 / sha256 可核验</text>
|
|
153
|
+
|
|
154
|
+
<rect x="328" y="624" width="230" height="104" rx="16" fill="#f0fdf4" stroke="#86efac"/>
|
|
155
|
+
<rect x="350" y="643" width="32" height="25" rx="3" fill="none" stroke="#059669" stroke-width="2"/>
|
|
156
|
+
<path d="M350 651 h32 M357 647 h2 M363 647 h2" stroke="#059669" stroke-width="1.5" stroke-linecap="round"/>
|
|
157
|
+
<text x="396" y="654" class="node-title">Workspace / Artifact</text>
|
|
158
|
+
<text x="350" y="684" class="node-sub">Definition / manifest 有效</text>
|
|
159
|
+
<text x="350" y="705" class="node-sub">声明产物逐项存在</text>
|
|
160
|
+
|
|
161
|
+
<rect x="584" y="624" width="230" height="104" rx="16" fill="#f0fdf4" stroke="#86efac"/>
|
|
162
|
+
<circle cx="610" cy="656" r="14" fill="none" stroke="#059669" stroke-width="2"/>
|
|
163
|
+
<path d="M603 656 l5 5 l10 -12" fill="none" stroke="#059669" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
164
|
+
<text x="636" y="654" class="node-title">Receipt + Readback</text>
|
|
165
|
+
<text x="606" y="684" class="node-sub">Intent / Attempt / Verification</text>
|
|
166
|
+
<text x="606" y="705" class="node-sub">平台独立回读可见</text>
|
|
167
|
+
|
|
168
|
+
<rect x="840" y="624" width="230" height="104" rx="16" fill="#f0fdf4" stroke="#86efac"/>
|
|
169
|
+
<circle cx="866" cy="652" r="9" fill="none" stroke="#059669" stroke-width="2"/>
|
|
170
|
+
<path d="M850 672 c2 -11 30 -11 32 0" fill="none" stroke="#059669" stroke-width="2" stroke-linecap="round"/>
|
|
171
|
+
<text x="896" y="654" class="node-title">人工确认 / 审批</text>
|
|
172
|
+
<text x="862" y="684" class="node-sub">明确接受或业务状态变更</text>
|
|
173
|
+
<text x="862" y="705" class="node-sub">未确认时保持 verifying</text>
|
|
174
|
+
|
|
175
|
+
<path d="M187 624 V606 H1168 V325 H1150" fill="none" stroke="#059669" stroke-width="1.8" marker-end="url(#arrow-green)"/>
|
|
176
|
+
<path d="M443 624 V606" fill="none" stroke="#059669" stroke-width="1.8"/>
|
|
177
|
+
<path d="M699 624 V606" fill="none" stroke="#059669" stroke-width="1.8"/>
|
|
178
|
+
<path d="M955 624 V606" fill="none" stroke="#059669" stroke-width="1.8"/>
|
|
179
|
+
<rect x="1006" y="590" width="82" height="20" rx="6" fill="#ffffff" opacity="0.96"/>
|
|
180
|
+
<text x="1047" y="604" text-anchor="middle" class="small" fill="#059669">证据汇入 Gate</text>
|
|
181
|
+
|
|
182
|
+
<line x1="72" y1="805" x2="106" y2="805" stroke="#2563eb" stroke-width="2.2" marker-end="url(#arrow-blue)"/>
|
|
183
|
+
<text x="116" y="809" class="small">主流程</text>
|
|
184
|
+
<line x1="198" y1="805" x2="232" y2="805" stroke="#ea580c" stroke-width="2" marker-end="url(#arrow-orange)"/>
|
|
185
|
+
<text x="242" y="809" class="small">条件 / 控制</text>
|
|
186
|
+
<line x1="354" y1="805" x2="388" y2="805" stroke="#059669" stroke-width="2" marker-end="url(#arrow-green)"/>
|
|
187
|
+
<text x="398" y="809" class="small">独立证据</text>
|
|
188
|
+
<line x1="500" y1="805" x2="534" y2="805" stroke="#dc2626" stroke-width="2" marker-end="url(#arrow-stop)"/>
|
|
189
|
+
<text x="544" y="809" class="small">闸门失败 / 返回</text>
|
|
190
|
+
<text x="1128" y="809" text-anchor="end" class="small">Skill 劝 · CLI 拦 · DWS 做</text>
|
|
191
|
+
</svg>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://github.com/D1-2004/dingtalk-agent/docs/schemas/agent-audit-load-evidence.schema.json",
|
|
4
|
+
"title": "dingtalk-agent Agent Audit Load Evidence",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["$schema", "targetHash", "reportPath", "reportHash"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"$schema": { "const": "dingtalk-agent/agent-audit-load-evidence@1" },
|
|
10
|
+
"targetHash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
11
|
+
"reportPath": { "type": "string", "minLength": 1 },
|
|
12
|
+
"reportHash": { "type": "string", "pattern": "^[a-f0-9]{64}$" }
|
|
13
|
+
}
|
|
14
|
+
}
|