跳到主内容

dsh-requirements-alignment

8Star0Fork0Issue0Watching

防止长任务执行中方向漂移:将用户需求固化为基线,仅在执行真正改变方向时才打断用户确认。

机审证据5/5方法论数据来源安装命令持续维护DSH 版本风险扫描
机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
TypeScript
License
MIT
分支
main
agentai-agentcordisdeepseek-harnessdsh-pluginrequirement-alignment

安装

命令web profile
$ dsh plugin --profile web add dsh-requirements-alignment

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 jiezeng2004-design/dsh-requirements-alignment:先查看仓库 https://github.com/jiezeng2004-design/dsh-requirements-alignment 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

防止 DeepSeek Harness 长任务执行方向漂移的插件:把用户最初的需求固化成一个"基线",任务执行过程中除非真的改变方向,否则不打断用户。

核心能力

  • 静默建立需求基线:把目标、显式约束、必须保留的行为、允许的范围、已确定的用户决策固化为可追溯的基线
  • 仅在方向变更时打断用户:检测到范围扩张、约束冲突、用户可见行为变更、架构调整、数据模型变更、兼容性破坏、假设失效或用户方向变更时才发起一次确认
  • 三种运行模式:Auto(默认,策略+工具+命令全开)、Manual(仅工具+命令)、Off(仅保留 /align-mode 命令),可运行时热切换
  • 提供 /align 命令随时查看当前基线状态、漂移次数、最近一次决策
  • 提供 /align-mode 命令切换模式并在 DSH Settings 中持久化用户覆盖
  • 基线状态独立存放在 storage-domain 边车,会话恢复、fork、压缩后保持一致

技术实现

  • 语言: TypeScript(ESM,构建输出到 lib/)
  • 关键依赖: @deepseek-ai/cordis、@deepseek-ai/dsh-tools、@deepseek-ai/dsh-storage-domain、@deepseek-ai/schemastery、zod
  • 架构模式: 作为 Cordis profile bundle 注入(cordis.patch.yml 声明两个 row),通过 effect disposer 管理热插拔;canonical 状态写入 storage-domain 边车而非 session 事件
  • 入口文件: src/index.ts(RequirementsAlignmentController,挂载策略段、两个工具、三个命令),辅助模块 policy.ts / mode-store.ts / runtime-mode-controller.ts / alignment-state-store.ts

适用场景

长任务、多步骤重构或跨多文件改动时,担心 AI 默默改了不该改的东西(比如破坏公开 API、改动 UI、引入新依赖)但又不想每个细节都审批。该插件让你只在 AI 真的要改变方向时才介入确认。短任务或纯修 typo 的场景下插件保持完全静默。

前置依赖与兼容性

依赖最低版本说明
DeepSeek Harness0.1.0-rc.6在该版本的 DSH 协议和 session 事件表上验证通过
@deepseek-ai/cordis4.x插件通过 Cordis fiber 注入宿主
@deepseek-ai/dsh-* 系列0.1.0-rc.6commands / llm / session / storage / settings 等运行时包
Node.js24+开发依赖 @types/node ^24.0.0,测试用 node --test
平台Windows / macOS / LinuxWindows 已验证,POSIX 路径无平台特定代码

安装方式

dsh plugin --profile web add dsh-requirements-alignment

配置项

配置类型说明默认值
modeauto / manual / offProfile 默认模式层;持久化的运行时覆盖会覆盖此值auto
section字符串可选的部署方自定义策略文本,用于替换内置的 Auto 模式策略段;不能为空字符串未设置(使用内置策略)

说明:模式实际生效值由三层决定——持久化的运行时覆盖(保存在 settings.yaml)→ Profile 默认(cordis.patch.yml 里的 mode)→ auto。可通过 /align-mode auto|manual|off|reset 热切换。

常见问题

Q: 这个插件和 DSH 自带的 Plan Mode 有什么区别?

A: Plan Mode 在执行前审查"方案是否合理";Requirements Alignment 在执行过程中监督"是否还在做正确的事"。两者可以叠加:先 plan、approve,再让插件防止执行偏离已批准的方向。

Q: 安装后会自动打断我吗?

A: 不会。Auto 模式下插件默认静默监控,仅在执行即将改变任务方向(如范围扩大、约束冲突、架构变化、用户临时改方向)时才向你发起一次确认。

Q: 任务的"基线"存放在哪里?

A: 存放在 DSH 官方的 storage-domain 边车(AlignmentStateStore,单元名 requirements_alignment,后端 storage-json)。会话事件流里不再写入 alignment/* 类型事件,因此即便卸载插件或裸 DSH 也能正常读取该会话。

Q: 如何切换 Auto / Manual / Off?

A: 在 DSH 中运行 /align-mode auto(或 manual / off)即可热切换,无需重启 profile;/align-mode reset 恢复到 profile 默认值;/align-mode 不带参数会打印三层快照。

Q: 子代理可以问用户吗?

A: 不可以。DSH 子代理不允许向用户提问(会收到 DELEGATED_CALLER 错误)。子代理如果需要变更基线,会把"需求漂移候选"块写入最终报告交给父代理,由父代理执行漂移协议。

Q: 卸载插件会丢失基线数据吗?

A: 不会。canonical 状态独立存放在边车中,卸载只移除工具、命令和策略段,不会删除已建立的基线、漂移记录或用户决策。

Q: 什么情况下不该用这个插件?

A: 短任务、纯 typo 修正、明确的小范围 bugfix 可以不用——插件对此类任务完全静默;但前提是你信任 agent 在范围扩大时主动触发漂移协议。

上手难度

进阶 — 插件本身无配置门槛(默认 Auto 模式即可工作),但要理解"基线"概念和 drift 分类需要先读一遍策略说明,且 /align-mode 的三层模式模型(profile 默认 / 运行时覆盖 / 有效值)需要适应。

已知问题与限制

  • 软引导而非硬阻断:漂移检测由模型判断,插件只记录和重新对齐,不会阻止执行;理论上模型可能漏报方向变更
  • 自然漂移检测率并非 100%:在没有显式协议指令的自然任务中,中途用户方向变更触发 report_drift 的实测命中率约 3/4(README 自述)
  • /align 需要命令适配器:无 UI 的 spine(如 headless profile、ACP 自动化)不派发 slash 命令
  • 侧车只增不减:每次基线、漂移、决策、人工检查都会追加一个全状态 checkpoint,没有剪枝机制,超长会话会持续累积
  • 没有 Web 状态卡片:对齐状态目前只能通过 /align 文本或会话级策略摘要查看,缺少原生 Web 设置面板
  • 不支持会话级模式:/align-mode 改变的是共享的 profile/运行时覆盖,不是单个会话的设置;会话级模式选择器计划在 v0.4.0 提供(详见 docs/ROADMAP.md)
  • 子代理不能问用户:见 FAQ

查看使用指南 →

该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/jiezeng2004-design/dsh-requirements-alignment)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录