前言¶
在 DeepSeek Harness(DSH)里跑智能体会话,工作区里常会留下计划文档、临时脚本、一次性 fixture 等「会话 debris」。若清理交给另一个智能体,规则和依据往往不透明,人也难以逐项核对。社区里已有插件侧重快照与回滚(例如 @goodandready/dsh-time-machine 回答「能否撤销」),而「哪些文件在规则下可以删、依据是什么」这条链路,在资料所述的 DSH 生态里仍缺少确定性的方案。下面介绍维护者 zhengqiuyang 发布的 dsh-janitor:用确定性规则扫描工作区,输出可审查的清理计划,且 janitor 本身不是 agent。
这是什么¶
dsh-janitor 是 DSH 上的工作流类插件(社区目录:zhengqiuyang/dsh-janitor)。它向 Harness 注册 janitor_scan 工具,在 workspace 上运行 agent-janitor 引擎,返回一份 reviewable cleanup plan:每个候选文件带有固定顺序下的确定性 verdict,以及支撑该结论的证据(引用分析、git 元数据、年龄阈值等)。当前 0.1.0 版本 不会删除任何文件;是否在审查后执行删除,由上游 CLI 或开发者自行决定。
插件与 read-guard、pr-gate、attest、mcp-test 等同属一族能力线:janitor 管的是会话结束后留在工作区里的东西。
核心功能¶
janitor_scan 与「非 agent」原则¶
扫描与裁决完全由确定性规则完成,不引入 agent 判断。README 明确:v0.1 只做扫描与计划,不做自动删除。
Verdict 类型(固定顺序,先匹配先生效)¶
| verdict | 含义 |
|---|---|
protected |
在 protected 列表中的精确文件或目录前缀 |
keep |
被任意代码文件引用 |
recent |
文件年龄小于 minAgeDays(优先用 git commit 时间) |
needs-review |
被文档等引用,或情况模糊 |
safe-to-remove |
已合并任务相关的 plan 且无引用,或无引用且足够旧 |
与 time-machine 的关系¶
资料对比:dsh-time-machine 做 checkpoint 与 rollback(快照安全);dsh-janitor 回答「什么可以安全移除」。二者互补。推荐流程是:确定性扫描 → 人工审查计划 → 再按自己的方式 apply,中间不交给 agent 做清理决策。
安装与启用¶
安装前请自行查看 GitHub 仓库 源码与 MIT 许可证。插件以当前 DSH 进程权限访问工作区,安装与启用前应确认是否符合你的安全策略。
官方 README 给出的安装方式如下(npm 分发,无需 build、无需 allowBuilds 授权;仓库内已带预构建 lib/):
dsh plugin --profile default add dsh-janitor
兼容性说明(资料原文):已在 DSH 0.2.x 线验证(源码快照 0.2.1-alpha.2);Node >= 20(CI 矩阵含 Node 20/22/24,Ubuntu 与 Windows)。 disposable-profile 实测中,安装后 boot 会出现 [dsh-janitor] active: … 一类日志。
配置¶
在 profile 插件配置中增加 dsh-janitor 条目,例如:
- id: dsh-janitor
name: dsh-janitor
config:
minAgeDays: 14
protectedPaths: ["plans", "docs/decisions"] # exact file or directory prefix
minAgeDays:与recent/ 旧文件判定相关的年龄阈值(天)。protectedPaths:精确文件路径或目录前缀,命中则 verdict 为protected。
典型用法¶
资料中的可复现路径是按三步理解,而非「一键清空」:
- 在已启用插件的 DSH 会话中,通过 Harness 暴露的工具调用
janitor_scan(具体调用方式随你使用的 profile 与 Cordis 工具注册而定)。 - 阅读返回计划:每个候选路径的 verdict 及证据,按上表顺序理解优先级。
- 0.1 不执行删除;审查通过后,由上游 CLI 或你本地脚本/手工方式移除
safe-to-remove等项(路线图提到未来的janitor_apply仍会保持确定性、需显式 per-path 确认,且仍非 agent 裁决)。
开发者在仓库内自测引擎时可执行:
npm install
npm test # syncs the vendored agent-janitor engine, builds, runs fixture tests
扫描/verdict 核心来自 sibling 项目 agent-janitor,经 npm run sync vendoring 进本仓库。
适用场景与注意¶
适合谁:长期用 DSH 跑 agent、工作区积累 plan/scratch 文件,又希望清理依据可审计、可逐项 review 的团队或个人。
注意:
- 裁决是规则性的,ambiguous 文件会落在
needs-review,不能替代人工判断。 - 与官方或第三方「工作区卫生」能力重叠时,维护者在 README 中写了 kill criteria:若 DSH 官方或类似插件提供确定性 removal planning,本插件可能冻结在最后可用版本;引擎仍由 agent-janitor 项目维护。
- 社区插件目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系;星标与版本以仓库为准(当前 package 0.1.0,GitHub 星标 0)。
结尾¶
dsh-janitor 把「会话 debris」变成 可审查的确定性清理计划,把删除权 deliberately 留在 scan 之外。若要安装或读完整说明,见社区目录页与 GitHub:
- 目录页:https://www.skillhub.cn/plugins/zhengqiuyang/dsh-janitor
- 仓库:https://github.com/zhengqiuyang/dsh-janitor