前言¶
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 | 無事可做 |