前言¶
在 DeepSeek Harness(DSH)里做智能体或长期协作时,会话一关,上下文就断:项目约定、用户偏好、上一轮结论往往要重新说一遍。把记忆写进项目仓库又容易污染代码库,也不适合「全局偏好」和「多工作区共用」的场景。下面介绍社区插件 jiyi(维护者 yueyexiayu):面向 官方桌面端,在 $DSH_HOME/jiyi/ 维护 topic、收件箱与索引,并在下一轮开始前按需注入模型;模型侧通过专用工具读记忆,而不是用文件工具翻本地目录。
这是什么¶
jiyi 是 DSH 官方桌面端的跨会话记忆插件:右侧栏「开始」页增加 记忆 入口,支持 Markdown topic、回合结束后的观察采集、索引生成,并在出步前注入。它走 connection.fetch,不依赖 webServer,也不通过 dsh plugin --profile desktop 安装依赖。分类上属于社区目录中的 记忆 类插件;仓库当前版本为 0.1.4(见 package.json)。
核心功能¶
浏览与注入¶
- 在右侧栏 记忆 中浏览 global / 工作区 topic 与收件箱。
- 有新消息的出步前,只读生成当前索引;内容变化才重新注入。首次空仓不注入;删除最后一个 topic 后会发送旧索引失效通知。保留 DSH 的
startsRequestSeries等决策字段。 - 索引提醒使用 v4 的
plugin:jiyi消息来源;插件提醒、续写提醒和团队消息不会当作真实用户偏好采集。
模型如何读记忆¶
模型应使用 jiyi_list / jiyi_search / jiyi_read 读记忆,不要用文件工具直接访问 ~/.dsh/jiyi。
回合边界与观察采集¶
- 只在官方
session/event的turn/endcompleted 最终边界采集;等xuxie同轮续写结束后再抽取一次。 - aborted(用户取消或释放导致的中止)记为 cancelled;error 记为 failed;max-tokens 记为 skipped。未正常完成的回合不会当成成功提取。
- 已 completed 的抽取持有独立工作区/会话快照,随后的 Agent 释放不会取消它;没有 completed 边界的释放不会触发抽取。
- 工具摘要读取 v4 直接输出、
source.callId、isError和结构化失败原因;未返回结果标为 unresolved。摘要为回合状态和工具单独留预算,长正文不会挤掉全部工具信息。
抽取与整理¶
- 使用模型池抽取:主模型
glm-5.3-flash,副模型deepseek-flash。纯任务/提问不送抽取模型;混合请求里带「以后」「默认」等持久约定仍参与抽取;「记住:」可本地采集。 - 结构无效、超限的结果进入后备模型;敏感内容过滤单独记为 filtered,存储/抽取失败在状态中可见。
- 抽出后用同一模型池整理 topic:整理计划先完整校验,再以可恢复事务更新;失败保留输入。处理过的原始观察(含 noop)归档。LLM 返回
processed/archived和coverage: unverified,不声称所有观察都已融入主题。
状态 API 与冷历史¶
/api/jiyi?action=status提供lastInjection、lastCapture、lastDream。带sessionId时,lastCapture只显示该会话最新回合,lastInjection只显示该会话注入结果;旧回合迟到完成不能覆盖新回合 cancelled;另一会话注入成功不能掩盖本会话失败。不带sessionId的全局页保留最近实际工作状态。lastDream表示跨工作区后台整理,而非当前会话成功。- 右侧栏冷历史工作区复用官方
sessionController.inspect(sessionId, signal),不创建/恢复 Agent、不推理、不修改会话。未知会话 404;缺少绝对 cwd 400;服务缺失 503;历史损坏 500。有sessionId的失败不会降级为全局记忆。
存储位置¶
文件在 $DSH_HOME/jiyi/(默认 ~/.dsh/jiyi/),不写进用户仓库。同一 git origin 的 clone / worktree 共用工作区目录。
安装与启用¶
jiyi 不是 dsh plugin install 一键安装;需手动复制并在 desktop profile 打 patch。
- 将插件复制到
$DSH_HOME/plugins/jiyi(默认$DSH_HOME为~/.dsh)。 - 在
$DSH_HOME/profiles/desktop/cordis.patch.yml写入:
- insert:
- id: jiyi
name: ../../plugins/jiyi/lib/index.js
- 完全退出 DeepSeek Harness(macOS:⌘Q)再打开,才能加载新的 Host/Client 代码。
- 展开右侧栏,在「开始」里会出现 记忆。重启后已有会话在下一次有消息的出步前也会按当前索引检查注入;单纯刷新网页不保证更新 Host。
典型用法¶
- 安装并重启桌面端后,从「开始」进入 记忆,查看 global 或当前工作区的 topic 与收件箱。
- 正常对话中,在混合请求里说明持久约定(如「以后默认用 TypeScript」),或在消息中使用「记住:」触发本地采集;回合 completed 后插件会抽取观察并进入收件箱,再由后台整理合并进 topic。
- 需要模型引用历史时,在对话中让 Agent 调用
jiyi_search/jiyi_read(或jiyi_list浏览),而不是读取~/.dsh/jiyi下的文件。 - 排查注入或整理问题时,可请求
/api/jiyi?action=status(按需带sessionId)查看lastInjection、lastCapture、lastDream。
适用场景与注意¶
适合谁: 长期使用 DSH 官方桌面、希望在多会话、多工作区间保留 topic 级记忆,且能接受记忆落在本机 $DSH_HOME 的开发者。
务必知晓:
- 插件以 当前 DSH 进程权限 运行;安装前应自行阅读 GitHub 源码 与仓库声明,确认许可证与数据边界。
- 面向官方桌面;不要用
dsh plugin install往 desktop profile 塞依赖。 - 关闭 Host 会中止正在运行及排队中的抽取/整理;已完成写入不会撤销。不带 Git host 的旧工作区目录需按 README「安全与恢复边界」做显式迁移,不能指望自动归属。
- 社区插件目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系;星标等元数据以目录页为准(当前为 0)。
结尾¶
jiyi 把跨会话记忆从「写进仓库」或「靠模型瞎记」里拆出来:本地 topic + 收件箱 + 出步前索引注入,并用 completed 边界和专用工具约束采集与读取。若你需要在 DSH 桌面端长期保留可检索的记忆,可按上文步骤安装并在「记忆」入口维护 topic。
- 目录页:https://www.skillhub.cn/plugins/yueyexiayu/dsh-jiyi
- GitHub:https://github.com/yueyexiayu/dsh-jiyi