dsh-clear-command:清空模型上下文,保留会话

前言

在长对话里做智能体开发时,历史消息会不断进入模型的可见上下文,占 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 做了什么

  1. 清空模型可见历史:智能体不再看到此前任何用户与助手消息;下一次请求从 system prompt 加一行标记开始。
  2. 会话不变:同一 session id、标题、工作区成员关系、侧边栏位置;持久化日志完整保留。这是 clear,不是 delete,也不是新建 session。
  3. 与 /compact 同类机制:一次按位置的 surface 替换写入 session log,重载与回放行为确定。
  4. 界面与模型所见分离:Web transcript 由 append-origin 日志事件推导,屏幕上仍可阅读更早消息;仅模型侧上下文被清空。
  5. 空闲阶段执行:在 agent 的 runMaintenance 阶段运行(与手动 compact 同类预留)。若当前有 turn、排队唤醒或其他维护任务占用 agent,命令会报告状态且不修改内容。
  6. 可审计:调用以普通 command/run 与 command/done 记入 session log,transcript 中显示为命令行。

保留与限制

  • 首部 system/message surface 节点保留(智能体指令);其后的内容被 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。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜