前言¶
DSH 生态中的现有工具(如 ctx-budget、blastradius、rewind)通常针对单一时刻或特定状态。当智能体无人值守运行数小时时,目标可能会漂移,预算可能会耗尽,或者步骤可能会静默失败。nightshift 作为一个层,在执行期间守护这些契约。
介绍¶
运行一个代理数小时无人值守,并在早上获得一份审计报告而非摘要。
核心功能¶
- Manifest 签名:在开始前定义 objective(目标)、deliverable(交付物)、acceptance(验收标准)、forbid(禁止模式)和 command(执行命令)。
- 检查点与回滚:在验证失败时自动回滚。
- 审计报告生成:基于运行日志渲染报告,而非摘要。
- 门控控制:在执行前拦截 forbidden patterns(禁止模式)、irreversibility class(不可逆类)和 curfew(宵禁)。
- 退出码翻译:与兄弟插件(如
ctx-budget、blastradius)通信。
安装与启用¶
使用官方安装命令将插件添加到当前配置:
dsh plugin --profile web add github:liyixuan201211/nightshift
典型用法¶
在项目目录下执行以下步骤:
- 初始化:签署 Manifest,定义工作目标与约束。
nightshift init --root ~/work --objective "finish the auth refactor and get the suite green" --deliverable "npm test passes" --accept "tests=npm test" --forbid "git push" --command "npm run build"
- 预检:在开始前检查环境是否满足条件,是否允许启动。
nightshift preflight --root ~/work
- 执行:运行具体命令,并在失败时自动回滚。
nightshift step --root ~/work --verify "npm test" -- npm run build
- 验收:对当前状态进行验收检查。
nightshift acceptance --root ~/work
- 生成摘要:生成审计报告,而非摘要。
nightshift brief --root ~/work
关键行为与限制¶
- 定位:它不决定做什么,只是坚守已决定的事项;它不是调度器,也不提供沙箱隔离。
- 资源获取:它不主动获取内容,除非通过
--allow-npx显式允许。 - 报告质量:审计报告的质量取决于验收检查的完备性。
- 依赖:需要 Node.js 版本 >= 20。
- 日志存储:日志保存在
rewind目录内,且rewind调用必须包含--exclude .nightshift以避免污染快照。
退出码说明¶
插件通过翻译后的退出码与外部系统交互:
| 退出码 | 含义 |
|---|---|
| 0 | 正常完成 |
| 1 | 错误 |
| 2 | 用法错误 |
| 3 | 需要关注(预检警告或步骤失败并回滚) |
| 4 | 被拒绝(门控拦截,未执行任何操作) |
| 5 | 降级运行(部分检查无法执行) |
| 6 | 无事可做 |