dshbase

插件目录 / Knowledge / dsh-recall

dsh-recall

已验证 · 实测可装 Mongfayi

✓ 持续维护

查看 GitHub ↗ ← 返回插件目录

3Stars
0Forks
0未关闭 issue
JavaScript语言
2026-08-14最近推送
跨平台平台

功能简介

DSH Web UI 消息撤回插件。

✅
我们的评价
可用 — 实测通过,早期项目

DSH Web UI 消息撤回插件。 实测能干净安装、正常启动。早期项目,但功能可用。

「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。

README

dsh-recall

对话撤回(recall)插件:把一条消息及其之后的所有内容从对话中移除——界面不再显示,模型也不再见——但绝不回退任何代码/文件改动。撤回以追加日志(append-only)中的 session/recall 墓碑事件持久化,重启后依然生效。

用法

会话空闲时:

  • 用户消息右侧的撤销按钮 → 确认 → 撤回该轮对话及其后的全部内容(你的提问与智能体的回复一并移除),该条用户消息的文本会恢复到输入框,可修改后重新发送(与 opencode 的撤回行为一致)。
  • 撤回位置显示「已撤回的消息」提示。

智能体运行中撤销按钮禁用(先停止当前回合)。

实现

  • 宿主端(lib/index.js):POST /recall 路由({sessionId, messageId} 或 {sessionId, boundary}),校验后调用 session.recall(boundary) 并 flush。错误码:session-not-found / subagent-owned / agent-busy / message-not-found / recall-rejected。
  • 浏览器端(lib/client.js):以 priority: -1 覆盖 conversation.chat.node 的 user keyed 渲染器,在每条用户消息旁渲染撤销按钮(点击以该用户消息 seq 为边界撤回),并复刻框架的用户气泡外观;「已撤回的消息」提示节点通过 session/recall 事件定义注册到 recall key。撤回提交成功后,被撤回用户消息的文本经 conversation.input.for(scope).setDraft() 写回输入框(仅文本,图片不恢复)。
  • 依赖的核心协议(无插件接缝,需 dsh 运行时内置):dsh-session 的 session/recall 事件类型 + surface 折叠召回支持;dsh-client-runtime 对已撤回事件的窗口过滤。

开发

node test/smoke-host.mjs    # 宿主路由:成功/拒绝路径
node test/smoke-client.mjs  # 客户端注册、定义、文案、确认门

安装

🧩 让 Agent 自动装(推荐)

装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:

dsh plugin add dshbase-catalog

然后对 agent 说「帮我装 dsh-recall」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。

该插件是 GitHub 源码(未发 npm)——直接从仓库装:

Web profile:

dsh plugin --profile web add github:Mongfayi/dsh-recall

Headless(CLI)profile:

dsh plugin --profile headless add github:Mongfayi/dsh-recall

实测报告

验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。

使用场景

给 agent 一套记忆、知识库或检索层,让它不再跨会话丢上下文。

适合谁

跑长项目、想让 agent 记住决策、文档和偏好而不用每次重讲的人。

二次开发建议

记忆/检索后端是缝——插新存储、调蒸馏策略,或加引用与审计轨迹。

安全:尚未扫描——我们的每日静态扫描将很快覆盖它。

分享徽章

Knowledge 里更多

浏览全部 7797 个插件 →