前言¶
在 DeepSeek Harness(DSH)里,智能体常常要「规划步骤、真跑命令、看退出码、留证据」。如果这些都交给模型即兴发挥,很容易出现命令没跑却声称通过、角色互相污染上下文、只读复核偷偷改文件等问题。社区插件 dsh-arch(维护者 dashi666666-zxp,分类:工作流)把两件事写进插件代码:一是 arch_run 的「规划 → 执行 → 校验 → 回执」四层终端流水线;二是 arch_flow 的固定多角色阵型与 fail-closed 硬约束。当前版本为 v0.9.0(以仓库 package.json 为准)。
下面按定位、工具能力、安装与示例用法说明,便于你在本机 DSH 里核对行为。
这是什么¶
dsh-arch 是 DSH 的架构类插件:任务步骤落在系统终端里执行(bash / cmd / PowerShell),不依赖第三方 npm 包(纯 Node ESM)。arch_run 受理后,后续由插件自己的终端执行器推进,不经过模型续写执行结果。
多角色场景用 arch_flow:顺序固定的「拆分 → 路径 → 对抗性复核(只读)→ 规划 → 隔离 → 修改 → 工作 → 验证方(≥2)」;默认 sessionPolicy: "spawn",由插件通过 subagents.startActivation 创建真实子会话,强隔离与阵型规则在代码里判定,违反则直接拒绝或 FAIL(fail-closed)。
- 目录页:https://www.skillhub.cn/plugins/dashi666666-zxp/dsh-arch
- 源码:https://github.com/dashi666666-zxp/dsh-arch
- GitHub 星标:0(以仓库页面为准)
SkillHub 是社区目录站点,与 DeepSeek / 幻方无官方从属关系;安装前建议自行阅读仓库源码与许可说明。
核心功能¶
四层流水线(arch_run)¶
插件把单次任务固定为四层,且动作落在终端:
规划层 plan 把任务拆成有序步骤(标题 / cwd / 期望)
↓
执行层 exec 每个步骤 = 一条系统终端命令,真起子进程
↓
校验层 verify 退出码 / 输出正则(expect);allowFail 可降级为警告
↓
回执层 receipt 回执落盘 + 每步完整终端日志
运行状态包括 done / warn / failed / stopped;单步还可 skipped。支持 background: true 立即返回运行 id;v0.6.0 起可通过 terminal(auto / pty / process)选择是否走宿主 ctx.terminals 持久 PTY 会话。
工具一览¶
| 工具 | 作用 |
|---|---|
arch_run |
提交计划并在系统终端执行 |
arch_flow |
多角色固定阵型 + 终端执行 + 子会话隔离 |
arch_status |
查询回执(可省略 id 列最近运行) |
arch_log |
读取某步骤终端日志尾部 |
arch_stop |
停止任务(需 id,或 all: true 全停) |
arch_flow:阵型与 GATE 边界¶
阵型顺序写死,不可重排。硬约束包括但不限于:六个工作角色各一次、adversarial 必填、verifiers.length >= 2、依据文档 sha256 不得撞车、对抗性复核只读监视 watch 目录、验证方加权分与独立证据要求等。违例时往往一条终端命令都不跑,或整条流 FAIL。
v0.8.0 起文档明确:GATE PASS 只证明阵型按规则跑完且证据形式合格,不证明被引文档或结论本身正确;结论正确性由主会话(mainSession)另行核验。v0.9.0 起「内容级证据」核对验证方回执中的摘录是否逐字出现在被引文档中(≥12 字符,空白归一),用于排除未读就编造,但不证明摘录能支撑结论。
每次阵型落盘 <home>/flows/<flowId>/gate.json(含隔离台账、终端台账、技能下发、守卫、验证权重等);支持 v0.8.0 的 resumeFlowId 断点续跑(已完成阶段跳过、失败阶段重跑)。
其他已文档化能力(节选)¶
- 每个角色可有独立系统终端(默认
terminal: "plugin"),日志进gate.terminals。 - 按任务与角色职责从 DSH 活体
skills服务关键词下发技能(可skills.enabled: false关闭)。 console: true(v0.5.1)可在 Windows 上开可见 Terminal 窗口;缺wt.exe时失败,不静默退回隐藏模式。- v0.7.0:
maxParallel控制验证方与对抗性复核下级之间的并发上限(默认 3)。 - v0.9.0:
snapshotHashMaxBytes、只读违规可还原、验证方quotes内容级证据、attacks[]必填target与failure_mode。
安装与启用¶
SkillHub 给出的面向 DSH 的安装提示如下(原文照录,具体「先读取」步骤以目录页完整文案为准):
请安装 DSH 插件 dashi666666-zxp/dsh-arch。先读取..
建议在 Harness 中按上述指示安装,并打开 目录页 与 GitHub README 核对最新说明。插件以当前 DSH 进程权限在宿主机执行终端命令,安装前应检查源码与许可。
典型用法¶
arch_run:构建并自检¶
下面示例来自 README:多步计划、超时、输出期望与可选失败步骤。
{
"title": "构建并自检",
"cwd": "C:\\work\\proj",
"stopOnFail": true,
"background": false,
"plan": {
"steps": [
{ "name": "编译", "cmd": "npm run build" },
{ "name": "测试", "cmd": "npm test",
"timeoutMs": 180000,
"expect": { "exitCode": 0, "match": "passed", "notMatch": "FAIL" } },
{ "name": "可选检查", "cmd": "npm run lint", "allowFail": true }
]
}
}
单步必填 cmd(整句交给 shell);可选用 cwd、timeoutMs、expect(exitCode / match / notMatch)、allowFail。
arch_flow:提交多角色任务¶
调用时需指明 mainSession(主会话只核验)、watch 监视根、验证阈值等;子会话由插件创建,调用方不得传 session / receipt 冒充角色。节选字段示例如下(完整参数见 README):
{
"title": "把 XX 任务按阵型跑完",
"mainSession": "session-<主会话 id>",
"cwd": "C:\\work\\proj",
"watch": ["."],
"passThreshold": 0.6,
"maxParallel": 3,
"resumeFlowId": "flow-xxxx-yyyy",
"snapshotMaxFiles": 2000
}
跑完后用 arch_status 看裁决摘要,用 arch_log 查某步终端输出;需要中断时用 arch_stop 并带上运行 id。
适用场景与注意¶
适合谁: 需要把「计划步骤 + 真跑命令 + 可复查日志」固化下来的 DSH 用户;需要多角色分工(含只读红队复核与多方验证),且希望规则由代码强制执行、而不是仅靠 prompt 自律的团队。
使用注意:
- 宿主需提供
subagents.startActivation,否则 spawn 口径下 fail-closed,无法用声明 id 冒充子会话。 - 对抗性复核的「只读还原」仅覆盖
watch内文件;数据库、网络等外部副作用不可回滚。 - 监视快照有
snapshotMaxFiles(默认 2000)等上限,截断会记 warning,未纳入快照的路径不参与只读判定。 - GATE PASS 不等于业务结论正确;上线决策仍应在主会话结合终端日志与实文件复核。
- 星标与版本以 GitHub 为准;插件迭代快,字段以对应版本 README 为准。
结尾¶
dsh-arch 把 DSH 里的重活拆成可重复的终端流水线与固定阵型,并把阵型、隔离、只读、证据形式等约束下沉到插件代码。若你正在编排复杂工作流,可从 arch_run 单流验证起,再按需启用 arch_flow 与断点续跑。