前言¶
在长对话里做智能体开发时,历史消息会不断进入模型的可见上下文,占 token、干扰后续推理。新建会话能「断上下文」,但会丢掉同一个 session 里的工作区归属、侧边栏位置和完整持久化日志。DeepSeek Harness(DSH)以插件方式扩展能力;dsh-clear-command 在单个会话内提供 /clear,只清空模型可见历史,不删除会话本身。
这是什么¶
dsh-clear-command 是本地 DSH bundle:注册全局命令 clear,在 Web 编辑器斜杠菜单与各 session 的 CLI 合成命令界面中均可使用 /clear。维护者为 liufeicc,在 SkillHub 分类为「记忆」;当前包版本为 1.0.0(以仓库 package.json 与目录页为准),MIT License。
核心功能¶
下面介绍插件登记的能力与行为边界,均来自项目 README。
命令注册¶
- 通过
cordis.patch.yml插入一条 Host 行,向 DSH 注册全局clear命令。 - 实现集中在
index.js:命令注册与 surface 替换逻辑。
/clear 做了什么¶
- 清空模型可见历史:智能体不再看到此前任何用户与助手消息;下一次请求从 system prompt 加一行标记开始。
- 会话不变:同一 session id、标题、工作区成员关系、侧边栏位置;持久化日志完整保留。这是 clear,不是 delete,也不是新建 session。
- 与
/compact同类机制:一次按位置的 surface 替换写入 session log,重载与回放行为确定。 - 界面与模型所见分离:Web transcript 由 append-origin 日志事件推导,屏幕上仍可阅读更早消息;仅模型侧上下文被清空。
- 空闲阶段执行:在 agent 的
runMaintenance阶段运行(与手动 compact 同类预留)。若当前有 turn、排队唤醒或其他维护任务占用 agent,命令会报告状态且不修改内容。 - 可审计:调用以普通
command/run与command/done记入 session log,transcript 中显示为命令行。
保留与限制¶
- 首部
system/messagesurface 节点保留(智能体指令);其后的内容被 shadow。 - 进入模型上下文的标记行为英文(
[Earlier conversation cleared by the user; …]);命令面向用户的文案为简体中文,与 bundle 自带 UI 语言一致。 - 不操作已归档会话、其他会话或其文件。
安装与启用¶
已抓取资料中未给出形如 dsh plugin add … 的固定 Shell 安装命令;SkillHub 目录页表述为通过 DSH 安装插件 liufeicc/dsh-clear-command。安装前应在 GitHub 阅读源码与 LICENSE,并牢记插件以当前 dsh 进程权限运行。
本地开发时,README 说明在 profile 的 package.json 中用 link: 指向本插件目录;Host 代码由 Loader 加载,修改后需重载对应 Host 行(profile 重启),不像部分 client 侧插件那样依赖 dsh-client-hmr 热更新。
仓库主要文件:
index.js # 插件主体
cordis.patch.yml # Host 行补丁
locale/{en,zh}.json # 插件管理器展示元数据
icon.svg
test/clear-contract.mjs
典型用法¶
在已启用该 bundle 的 DSH 环境中,于任意 session 的命令界面输入:
/clear
当 agent 处于空闲维护阶段时,上述命令会执行 surface 替换;若 agent 正忙,则按 README 描述不会改动上下文。
离线契约测试(开发/验证用):
node test/clear-contract.mjs <log.jsonl.zstd>
测试会解压真实 session 日志(例如 ~/.dsh/sessions/**/session.v*.jsonl.zstd),在 detached Session 上重放并打印替换后的 surface 与推导出的模型消息。
适用场景与注意¶
适合:需要在同一 session 内「给模型换一个干净上下文」、但又要保留会话标识、工作区与工作记录的场景;与记忆类工作流搭配时,可区分「人可读完整日志」与「模型当前所见」。
注意:
- 仅影响当前会话的模型上下文,不替代会话管理或归档策略。
- 执行时机依赖 idle 维护阶段,忙碌时调用无效且无静默副作用以外的结构变更。
- 社区目录 SkillHub 为独立站点,与 DeepSeek、幻方无官方从属关系;插件来源为 GitHub
liufeicc/dsh-clear-command。
结尾¶
dsh-clear-command 用一条 /clear 在会话内做确定性的模型上下文重置,会话与日志仍在。目录页:https://www.skillhub.cn/plugins/liufeicc/dsh-clear-command;源码与详细行为说明:https://github.com/liufeicc/dsh-clear-command。