dsh-session-recall

DeepSeek Harness (DSH) 生态中的插件通常负责特定能力。对于需要回溯历史对话的开发者来说,官方 sessionQuery 服务提供了基础接口,但缺乏一个面向模型的原生检索工具,且默认配置通常不开启持久化全文检索。dsh-session-recall 补齐了这一环节,它通过 ctx.sessionQuery 接口,为模型提供了一个确定性、带显式作用域控制的跨会话全文检索工具。

是什么

这是一个 Memory 类别的插件,由 kittimzhe 维护。它的核心价值在于让智能体能够直接搜索过去的会话记录,而不是依赖外部记忆框架或合成摘要。

核心能力

该插件具备以下能力:

  • 跨会话全文检索:支持对历史会话记录进行文本搜索。
  • 面向模型的 recall 工具:直接暴露给模型调用的接口。
  • 持久化 FTS5 索引:索引存储在本地文件中,不会因进程重启而丢失。
  • CJK 零命中子串回退:针对中文分词限制的优化,查询短词时自动回退到子串扫描。
  • 默认基于 CWD 的作用域检索:默认只搜索当前工作目录(cwd)启动的会话。
  • 类型化的 recall 结果:返回包含稳定字段的 JSON 结构,包含会话 ID、标题、日期和匹配片段。

安装与启用

前置条件

  • Node.js 20 或 22。
  • DeepSeek Harness 的 profile 需要挂载 tools 和 sessionQuery 服务(默认的 web 或 agent profile 通常满足此条件)。

安装步骤

使用官方提供的安装命令:

dsh plugin --profile web add dsh-session-recall

安装完成后,索引文件将存储在 <DSH_HOME>/session-recall/index.db。首次搜索时会自动构建索引。

典型用法

在会话中,可以通过自然语言触发,也可以通过代码显式调用。

自然语言触发

智能体听到提示词时会自动使用该工具:

recall: which font did we pick for the resume last week?

工具调用示例

recall({ query }) // 搜索当前项目会话,返回最佳匹配事件
recall({ query, all_projects: true }) // 搜索所有会话(需要部署权限)
recall({ query, session_id }) // 搜索指定会话的事件

返回结果会渲染为原生搜索卡片,包含 session id、标题、日期和匹配片段。

适用场景与注意

适用场景

  • 需要检索原始会话日志而非合成摘要的场景。
  • 需要严格限定检索范围(如仅当前工作目录)的场景。
  • 需要审计和可追溯性的场景。

注意事项

  1. 权限控制:all_projects 参数用于扩大检索范围,只有部署允许时才有效。
  2. 版本区别:本插件与 dsh-recall-plugin 无关(后者用于消息撤销/重放),也接替了旧版 dsh-recall。
  3. 依赖服务:必须确保 Harness 的 profile 正确挂载了 tools 和 sessionQuery 服务。
  4. 技术细节:CJK 零命中时会自动回退到子串扫描;索引在首次搜索时自动构建。

总结

dsh-session-recall 专注于原始会话日志的读取,不涉及写入操作。它作为 DeepSeek Harness 生态中“检索层”的一部分,为智能体提供了可审计、确定性的历史回溯能力。插件源码与目录页见下方链接。

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

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

小夜