dsh-lore:给 AI 的长期工作记忆

前言

在 DeepSeek Harness(DSH)里跑智能体,常见痛点不是代码丢了,而是上下文丢了:隔几个月没人记得某个决定为何这么定;换会话或换 agent 要从头翻聊天记录;踩过的坑换个 agent 再踩一遍;记录越写越多,却找不到「现在做到哪了」。变更日志和任务清单能管一部分,但往往管不住「过程证据、导航索引、可复用经验」这三件事。dsh-lore 是社区插件目录里归类为「记忆」的一款包,把过程记录、索引台账和经验沉淀收进一套可读、可查、可校验的文档体系,并通过 DSH profile 注册技能、注入记忆、提供 worklog_memory 工具。

这是什么

dsh-lore 由维护者 IThinkItsaName 发布,GitHub 仓库 IThinkItsaName/dsh-lore 当前版本为 0.9.5(MIT 许可证)。官方简介是:面向 AI agent 的长期项目工作日志系统(软件、研究、写作、设计、运营等),包含过程日志、索引台账与经验手册,并附带仅依赖 Python 标准库的工具箱。

一句话概括 README 的定位:过程留证据,索引管导航,经验可复用。 换会话、换 agent,甚至接手的 agent 没有安装本插件,只要项目里保留了技能层文档与 journal.py,仍可按约定继续读写。

三层结构

下面介绍插件如何把职责拆开;三层可以只用其中一层,也不限定编程类项目。

层 位置 职责
技能层 项目内 work_log/ 过程记录、索引台账、经验手册;journal.py 工具箱(纯 Python 标准库,不需要 DSH)
记忆层 工作区之外(默认 ~/dsh-lore-memory) 跨工作区事实:来源分档、索引、收敛、信箱
插件层 DSH profile 技能注册、记忆注入、worklog_memory 工具、配置卡片

README 说明:技能层已独立成库 project-work-log(2026-10-19 起有独立仓库与发布节奏);本包在 skills/project-work-log/ 保留 vendored 副本供插件运行,并由 tools/sync-skill.mjs --check 防止与上游漂移。pi 或其它 Agent Skills 场景应使用独立仓库路径(文档写明 publish/project-work-log/ 尚未发布),不宜从本包单独拆技能层当长期来源。

它不是变更日志(工作区整理、取证、环境变动都会记,「变更集」只是可选字段);不是任务管理器(待办只是滚动清单);不是插件专属(技能层可独立运行)。

核心功能

技能层:journal.py

规则集中在 journal.py:写入、索引、lint 都在这一处;插件不重写格式,只做薄包装(例如 send 会调用 journal.py inbox put)。

安装插件后,技能目录通常在 ~/.dsh/skills/project-work-log,或工作区 .dsh/skills/。不知道路径时可先列出上述目录。<skill> 即该技能根路径。

DSH 插件侧

  • worklog_memory 工具:检索全局记忆、收发信箱、列会话;只处理工作区之外的记忆层。项目内 work_log/ 台账仍用 journal.py 与普通文件工具,插件不替代它们。
  • 记忆注入:经验层资源提示常驻(英文,与系统提示其余部分一致,含写入提示);记忆索引进可缓存前缀;未读信箱仅在有时尾注入。
  • 配置卡片:技能开关、记忆开关与目录、诊断日志等;字段归属与生效时机见仓库 SETTINGS.md。
  • Bundle 补丁:cordis.patch.yml 启用 skill-filesystem 并登记本包;自带技能的 DSH 包必须打开 skill-filesystem,本包已在补丁中处理。

随包还有技能 client-require-whitelist(客户端 require 白名单检查),默认关闭。

安装与启用

插件以当前 DSH 进程权限运行;安装前请自行查看仓库源码与 MIT 许可证,确认符合你的安全与合规要求。

CLI 安装(非桌面托管 profile)

# 装插件:注册技能、注入记忆、提供 worklog_memory 与设置卡片,并登记进 profile 的 bundles
dsh plugin --profile <profile> add dsh-lore@v0.9.5

# 卸插件:依赖、bundles 条目、node_modules 一起清掉
dsh plugin --profile <profile> remove dsh-lore

README 注明:桌面端用户可在插件页安装/卸载;Electron 托管的 profile 会拒绝 CLI 操作(报错形如 profile "desktop" is managed exclusively by the Electron application)。另外不要用 dsh plugin … install <本地目录>:pnpm 会为本地目录建 junction,卸载时可能删不掉,下次换装报 ERR_PNPM_EPERM(详见仓库 PUBLISHING.md §7)。

社区目录页:skillhub.cn 上的 dsh-lore。目录为独立社区站点,与 DeepSeek / 幻方无官方从属关系。

依赖方面,package.json 声明 peerDependencies 包括 @deepseek-ai/dsh-tools、@deepseek-ai/dsh-llm、@deepseek-ai/schemastery 等,需与当前 DSH 环境匹配。

典型用法

在项目里让 agent 建日志

安装后可在项目里让 agent「建工作日志 / 留个记录」,或手动执行(ROOT 为项目根,命令接受 [ROOT] 或 --root):

ROOT=.

python <skill>/scripts/journal.py new --title "标题" --insert
python <skill>/scripts/journal.py brief
python <skill>/scripts/journal.py check --strict --lint

brief 一屏展示状态、待办与近期记录;check --strict --lint 做结构与内容两道门禁。仓库门禁全绿不等于你的项目记录合格,项目容器仍需跑上述 check。

日常操作对照

你想做的事 用什么
接手项目,先看坐标 journal.py brief
看最近几篇各自做到哪 journal.py snapshot --entries 12
找旧结论 journal.py search "关键词" → show <篇号>
开一篇新记录 journal.py new --title "…" --insert
收尾:改状态 / 勾待办 / 抽经验 status --set、todo、lesson add
归档一阶段 / 索引瘦身 archive、index compact
把教训带到别的项目 memory publish → memory collect(DSH 里也可用 worklog_memory)
定期整理 journal.py check --strict --lint;每月看一次 _inbox.md 与 lessons/

适用场景与注意

适合谁:需要长期维护、多人或多 agent 接手的项目;希望「决定依据、过程证据、可复用教训」留在仓库里而不是只在聊天历史里;愿意用固定约定(work_log/ + 台账 + lessons)而不是纯自由笔记。

独立性:技能层不依赖 DSH,可在无 DSH 环境单独跑;写给模型的工具在插件侧主要是 worklog_memory,台账操作留在 CLI/文件层,避免「没有插件就打不开记录」的第二套系统。

历史命名:曾用名 dsh-worklog(2026-09-30 改名);环境变量仍为 DSH_WORKLOG_*,技能名 project-work-log、工具名 worklog_memory 未变。reliability-guidelines 已于 0.9.3 起拆为独立技能,本包不再随包提供及相关三项设置。

文档与验证:设计说明在仓库 docs/(含 why.md、memory-spec.md、plugin-spec.md);记录约定与命令门禁见 skills/project-work-log/references/。维护者可在仓库内运行 npm test、npm run test:plugin 等门禁;使用者以项目内 journal.py check 为准。

结尾

dsh-lore 把「过程、索引、经验」分成技能层与跨工作区记忆层,再用 DSH 插件做注册与注入,目标是让后续会话和 agent 能接上上下文而不是重挖聊天记录。进一步了解可打开 社区目录页 与 GitHub 仓库 阅读 README、SETTINGS.md 与 docs/。

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

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

Xiaoye