dsh-plugin-memory

DeepSeek Harness(DSH)的插件化架构允许开发者通过插件扩展功能。在开发智能体时,对话结束后知识即被丢弃。dsh-plugin-memory 插件通过 Session Distillation 机制,将已完成的对话轮次转化为持久化的知识条目,并将其注册为 Skill 供后续会话调用。

该插件由 16480000 维护,采用 MIT 许可证。它通过将问答与工具调用蒸馏为结构化数据,存入本地目录,并通过 memory-<slug> 技能暴露给模型。

安装

通过 npm 安装(推荐,无需构建权限):

dsh plugin --profile <name> add dsh-plugin-memory

通过 GitHub 安装(源码方式):

dsh plugin --profile <name> add github:16480000/dsh-plugin-memory

使用 pnpm ≥10 从 GitHub 安装时,需要在 profile 的 pnpm-workspace.yaml 中添加 allowBuilds 配置:

allowBuilds:
  dsh-plugin-memory: true

通过本地 tarball 安装:

pnpm pack
dsh plugin --profile <name> add ./dsh-plugin-memory-0.1.0.tgz

配置

插件支持通过 profile 的 cordis.patch.yml 覆盖默认配置。主要配置项如下:

配置项 类型 默认值 说明
autoDistill boolean true 是否自动蒸馏已完成的轮次。
memoryDir string <DSH_HOME>/memory 记忆存储目录。
distillProvider string session route 蒸馏使用的 provider。
distillModel string session route 蒸馏使用的模型。
maxTokens number 3000 每次蒸馏或融合调用的输出 Token 上限。

示例覆盖配置:

- id: memory
  name: dsh-plugin-memory
  config:
    autoDistill: false

核心功能

  1. 自动收集
    在每次 turn/end 且原因为 completed 时,插件收集对话中的问答内容以及工具调用结果。

  2. 蒸馏与合并
    插件调用辅助模型将收集到的内容蒸馏为严格的 JSON 格式,包含 title、answer、sources,以及可选的 merge_with 字段。如果模型判断当前条目与现有条目主题相同,返回 merge_with 会触发融合调用;融合失败则保留新条目并覆盖旧条目。

  3. 持久化存储
    条目被持久化到 <DSH_HOME>/memory 目录。每个条目生成一个 Markdown 文件 <slug>.md 以及一个索引文件 _index.json。索引写入为原子操作(临时文件 + 重命名)。

  4. 技能注册
    插件注册 memory 技能提供者,提供 memory-<slug> 技能候选(Rank 550,位于手写技能之下)。加载该技能时会返回对应的条目 Markdown 内容。

  5. 服务 API
    插件注册 ctx.memory 服务,提供以下方法:

    • list(): 返回当前记忆索引。
    • readEntry(slug): 读取特定条目的 Markdown 内容。
    • settled(session): 等待会话中所有待处理的蒸馏任务完成。

注意事项

  • 安全策略缺失:插件没有内容安全策略,蒸馏得到的答案会原样存储。
  • 过滤器限制:不完整回答过滤器基于标记,可能存在误报或漏报。
  • 作用域隔离:所有会话共用一个记忆目录,暂不支持按工作区或代理作用域隔离。
  • 管理机制:目录列出所有条目,没有会话级限制或基于大小的驱逐机制。
  • 依赖要求:需要包含 purpose: 'memory' 词汇表和 memory/* 事件机制的 DeepSeek Harness 构建版本。旧版本仍可加载插件并蒸馏,但会丢失部分功能。

结语

dsh-plugin-memory 为 DeepSeek Harness 提供了基础的 Session Distillation 能力,适合需要构建长期对话上下文或知识库的场景。安装前请检查源码与许可证。

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

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

小夜