dsh-arch:DSH 终端四层流水线与固定多角色阵型

前言

在 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)。

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 自律的团队。

使用注意:

  1. 宿主需提供 subagents.startActivation,否则 spawn 口径下 fail-closed,无法用声明 id 冒充子会话。
  2. 对抗性复核的「只读还原」仅覆盖 watch 内文件;数据库、网络等外部副作用不可回滚。
  3. 监视快照有 snapshotMaxFiles(默认 2000)等上限,截断会记 warning,未纳入快照的路径不参与只读判定。
  4. GATE PASS 不等于业务结论正确;上线决策仍应在主会话结合终端日志与实文件复核。
  5. 星标与版本以 GitHub 为准;插件迭代快,字段以对应版本 README 为准。

结尾

dsh-arch 把 DSH 里的重活拆成可重复的终端流水线与固定阵型,并把阵型、隔离、只读、证据形式等约束下沉到插件代码。若你正在编排复杂工作流,可从 arch_run 单流验证起,再按需启用 arch_flow 与断点续跑。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye