DeepSeek Harness 角色设定与长期记忆管理插件 (dsh-plugin-persona-memory)

前言

DeepSeek Harness(DSH)采用插件化架构,允许在宿主组合层注册行为。dsh-plugin-persona-memory 插件解决了传统记忆管理方案(如 memory-boot、ptc-memory)仅在选中特定预设时才注入记忆的问题。该插件将角色设定与长期记忆管理注册在宿主组合层,使得记忆对所有 agent 预设的每个会话生效。它替代了旧版的三 agent 预设加载方式,提供了一套统一的角色库、全局/项目两级记忆以及长期日志管理方案。

核心功能

该插件提供以下核心能力:
* 角色设定与长期记忆管理:支持角色库的增删改查及切换。
* 宿主组合层注册:安装后追加进 dsh.profile.bundles,通过 cordis.patch.yml 插入宿主组合。
* 右侧栏管理面板:提供可视化的角色、记忆和日志管理界面。
* 工具与技能:提供 memory 和 persona 两个全局工具,以及 persona-creator 技能。
* 长期日志 (JOURNAL.l):支持追加与检索,但不注入提示词。

安装与启用

使用 DSH 内置插件管理器进行安装。安装命令如下:

dsh plugin --profile <profile> add github:hu568/dsh-plugin-persona-memory

安装后,本包被追加进 profile 的 dsh.profile.bundles。验证安装是否成功,可以在 agent 中请求接口:

GET /persona-memory/api/state

返回 200 且 ok: true 即表示面板路由已注册。

文件结构与注入逻辑

插件会在宿主环境生成以下文件和注入段落:
* 角色库:$DSH_HOME/personas/<id>/{persona.yml,SOUL.md,USER.md}
* 全局记忆:$DSH_HOME/memory/FACT.md
* 项目记忆:<项目根>/MEMORY.md
* 长期日志:$DSH_HOME/memory/JOURNAL.l

注入的提示词段落使用 memory: 前缀(如 memory:soul, memory:user, memory:facts),并设置 interpolate: false。这确保了即使在精简模式(router-standard)下,这些段落也能保留,同时避免了宿主 renderPrompt() 对未注册变量的错误处理。

写入限制

为了防止上下文无限膨胀,插件在写入侧设置了硬性闸口(超限直接报错,不静默截断):

文件 限制规则 说明
全局 FACT.md 行数 AND 字节 默认 100 行 / 8000 字节(UTF-8)。任一超限即拒绝写入。
项目 MEMORY.md 字符数 默认 8000 字符。与注入侧 maxChars 同口径。
长期日志 JOURNAL.l 无限制 仅追加,不注入提示词,用于流水账存储。

子代理行为

子代理会话的注入逻辑与主会话不同:
* 不注入:角色 (memory:soul/memory:user)、全局记忆 (memory:facts → FACT.md) 及长期日志 (JOURNAL.l) 均不注入。
* 仅注入:项目记忆 (memory:facts → MEMORY.md) 会被注入,因为这是子代理执行具体委派任务所需的上下文。
* 配置:可通过 subagentProjectOnly: false 恢复旧版(子代理与主会话一致)的行为。

工具与面板

插件注册了两个全局工具 memory 和 persona,以及右侧栏面板。

工具命令

  • memory:
    • action=read: 读取 FACT.md、MEMORY.md 并报告当前体量。
    • action=update, scope=global: 覆盖写入 FACT.md(受行数/字节限制)。
    • action=update, scope=project: 覆盖写入 MEMORY.md(受字符数限制)。
    • action=append: 向 JOURNAL.l 追加日志。
    • action=search: 按子串检索日志。
  • persona:
    • action=list/current/show/use/create/update/delete: 管理角色库。

面板 API

右侧栏面板通过 HTTP 路由提供服务,前缀默认为 /persona-memory:

GET  /persona-memory/api/state
POST /persona-memory/api/persona/{show,use,save,delete,order}
POST /persona-memory/api/memory/save
POST /persona-memory/api/journal/{append,search}

注意事项

  1. 卸载不会清理数据:执行 remove 操作不会删除 $DSH_HOME/personas 和 $DSH_HOME/memory 目录下的文件,需手动清理。
  2. 更新操作:若插件内容更新但安装规格字符串未变,DSH 会报 ambiguous-install 错误。更新时需先 remove 再 add。
  3. 依赖项:运行依赖 schemastery(别名安装 npm:@deepseek-ai/schemastery@3.18.2)。
  4. 版本兼容:实测 DSH 版本为 0.1.5-rc.1 ~ 0.2.0-rc.2。
羽毛球分组比赛记分
小程序二维码

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

Xiaoye