前言¶
在 DSH 的插件式开发中,长任务智能体常会遇到一个实际问题:初始需求已经明确,但执行到后面,范围、约束或方向可能悄悄改变。已有做法里,Plan Mode 通常在实现前回答“计划是否正确”;dsh-requirements-alignment 关注的是执行期间“是否仍在解决同一个问题”。
它由 jiezeng2004-design 维护,许可证为 MIT,package.json 版本为 0.4.2,要求 Node.js >=22.18.0,packageManager 为 pnpm@11.19.0。
这是什么¶
dsh-requirements-alignment 是一个 DeepSeek Harness(DSH)插件,定位为运行时需求漂移防护。它把用户请求转换为可持续维护的 requirement baseline,并在 agent 执行过程中保护该基线。
它不修改 plan mode、exit_plan_mode,也不修改任何 @deepseek-ai/* core package。
核心机制¶
建立需求基线¶
插件会建立并维护 requirement baseline,字段包括:
goalexplicitConstraintsmustPreserveallowedScopeuserDecisionsopenDirectionDecisions
establish_baseline 工具用于记录基线。该操作不询问用户;重复记录会提升 baseline revision。
检测方向级漂移¶
在默认 auto 模式下,插件会把 drift-guard 策略以 order 60 注入每个 agent 的 prompt。它关注的是方向级变化,例如:
- 范围扩张
- 约束冲突
- 用户可见行为变化
- 架构变化
- 假设失效
- 用户方向变化
记录漂移并询问用户¶
report_drift 工具会记录一个 drift candidate,并通过 native user-questions channel 向用户询问一次,随后记录用户决策。
默认情况下会提供 approve 与 stay-within-scope 选项。用户选择 exact note 时,结果可映射为 approve、reject 或 revise。
只有本插件管理的 alignment state 会进入 requirement baseline;无关的 ask_user_question calls 不会污染该基线。
命令与模式¶
/align¶
/align 用于检查当前对齐状态,并触发一次新的 alignment inspection。它只做检查,不阻塞执行。
/align-mode¶
/align-mode 用于查看模式快照,并设置 runtime override。
持久化 runtime override:
/align-mode auto
/align-mode manual
/align-mode off
移除 runtime override:
/align-mode reset
资料还给出单 session 切换方式,仅影响调用该命令的 session 的 effective mode:
/align-mode session
四层模式模型¶
插件使用四层模式模型:session override、runtime override、profile default、effective mode。
effective mode 按以下顺序取第一个有效值:
valid session override -> valid runtime override -> valid profile default -> auto
如果某个已持久化的 mode value 无效,插件会回退到 next valid layer 或 profile default,并可能 repair settings document。
状态持久化¶
canonical alignment state 持久化到 AlignmentStateStore sidecar,后端为 official storage-domain over storage-json。该状态不写入 session events;session log 只接收 official DSH events。
它支持 resume、fork、compaction 恢复。Session override 由 session lifecycle identity 键控,资料中提到 id + createdAt + cwd;fork 会在 seed boundary 继承 effective session override。
alignment/* 事件词汇仅用于 legacy compatibility、migration 和 test/fold fallbacks;production never appends it。
安装与启用¶
资料中的安装命令均带 --profile web。资料中出现过 registry 形式的安装命令:
dsh plugin --profile web add dsh-requirements-alignment
如有本地 checkout,资料中也给出以下形式:
dsh plugin --profile web add <path-to-this-checkout>
插件以 profile bundle 安装,包含 dsh.bundle.patch 与 cordis.patch.yml,并添加两个条目:
requirements-alignmentrequirements-alignment-ask-user
Web client 会注入:
@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-locale
典型用法¶
1、安装插件:
dsh plugin --profile web add dsh-requirements-alignment
2、启动普通 DSH 任务。默认开启 auto 模式;清晰任务会以零中断方式运行,只有在执行即将改变方向时才询问用户。
3、随时使用 /align 检查当前执行是否仍匹配 requirement baseline。
4、需要改变运行模式时,使用:
/align-mode auto
/align-mode manual
/align-mode off
5、需要移除 runtime override 时,使用:
/align-mode reset
适用场景与注意¶
它适合需要在长任务中保持需求方向一致的 DSH 插件工作流。它可以与 Plan Mode 组合使用:Plan Mode 关注实现前的计划审查,dsh-requirements-alignment 关注实现中的方向保持。
注意:
- 插件以当前
dsh进程权限运行,安装前应检查源码与许可证。 - 本插件许可证为 MIT。
- 资料只给出带
--profile web的安装命令,未说明所有安装是否都必须如此。 - 资料同时出现 registry 形式与本地 checkout 形式,未明确唯一推荐命令。
结尾¶
dsh-requirements-alignment 的价值在于把“用户意图”从一次性 prompt 变成可持续维护的运行时基线:记录方向,观察漂移,必要时询问一次,并把决策写回基线。
GitHub 仓库:
https://github.com/jiezeng2004-design/dsh-requirements-alignment