前言¶
在 DeepSeek Harness(DSH)里开新会话时,系统会加载 AGENTS.md、CLAUDE.md 以及 .agents/skills 等内置机制能扫到的内容。但不少团队会把成熟流程、架构规则、实验记录写在 .codex/runbooks/、.comate/rules/、.codex/analysis/ 等目录里——这些自由格式的经验文档默认不会进入上下文。若把目录里全部文件塞进提示词,又往往混入大量会话语料和临时产物,真正可复用的只有少量文档。
下面介绍社区插件 dsh-experience-index(维护者 Crinstaniev,分类:记忆)。它把各 agent 留在目录里的经验文件登记成路标,让接手开发的新会话知道「这里有哪些可参考的文档」,正文仍由模型用 read / grep / glob 自行读取;插件只做发现、登记与提示,不提供模型工具。
这是什么¶
插件仓库:Crinstaniev/dsh-experience-index。SkillHub 目录页:dsh-experience-index。
一句话定位:Signpost experience files left by earlier agent sessions, so a new DeepSeek Harness session knows what already exists.
索引以目录(scope)为单位:你显式选择要索引的绝对路径,可以是仓库根、子项目 repo/sub-project/,或非 git 目录。同一会话只注入包含当前工作目录的、层级最深的那个 scope 的一条路标(约数百字节到 2 KB 预算内),路径相对于当前工作目录列出。
核心功能¶
发现与分类¶
索引器按 allowlist glob 与规则对文件分类;每个文件只读头部 4 KB 提取元数据(标题优先 frontmatter description,其次首个 # 标题,最后文件名),数据库不复制正文。在 scope 下按深度发现「游离经验根」,默认可识别 .codex、.comate、.claude、.agents 等目录名。
路标注入¶
会话首步注入一条 <system-reminder> 风格的路标,标明「仅供参考、非指令」,并说明 AGENTS.md 与当前代码优先。某类条目 ≤ 6 条(默认 smallCategoryLimit)时逐条列出路径与一句话说明;更多时折叠为「目录 + 数量 + 最新日期」。会话日志、状态文件等默认不展开,只给负向路标,避免模型去检索大量 tmux 日志。
手动索引与 UI¶
索引不会自动全盘扫描磁盘:从未索引过的目录不会在库里留记录。建立索引后,下一次在该目录(或更深嵌套 scope)的会话才会收到路标。过期(stale)仅做廉价 stat 比对并标注,需手动重建索引。
安装与启用¶
插件 lib/ 为构建产物,安装前必须先 build。官方 README 给出的步骤如下:
git clone https://github.com/Crinstaniev/dsh-experience-index.git
cd dsh-experience-index
npm install
npm run build
dsh plugin --profile desktop add link:/absolute/path/to/dsh-experience-index
装好后重启 DSH。运行环境要求:engines.dsh 为 >=0.2.0-rc.1 <0.3.0,node 为 >=20。许可证 MIT。
插件以当前 DSH 进程权限运行;安装前请自行查看仓库源码与许可证是否满足你的合规要求。
典型用法¶
入口有三处:
- 输入框右侧指南针按钮:查看目录数、条目数、过期数与当前目录状态,可一键建立或重建索引(按当前会话解析工作目录)。
- Settings → Experience Index:管理所有 scope,可为任意绝对路径建索引,查看条目、排除或移除 scope。
- 聊天命令
/experience:为当前工作目录建索引;或/experience /path/to/dir指定路径。
/experience 成功后会返回类似:
Indexed /path/to/services/api — 45 files · runbook 2 · log 42.
The next session in this directory receives the signpost.
忽略规则可落在 scope 下的 .dsh/experience-ignore(gitignore 子集语义),全局版本为 $DSH_HOME/experience-ignore,项目文件优先。
可选配置写在 profile 的 cordis.patch.yml 中,例如:
- id: dsh-experience-index
name: dsh-experience-index
config:
legacyMaxDepth: 3
smallCategoryLimit: 6
signpostMaxBytes: 2048
更多字段(sources、countOnlyCategories、legacyRootNames 等)见仓库 src/config.ts 与 README 配置表。
适用场景与注意¶
适合:长期在同一仓库用多轮 agent 留下 runbook、规则、分析笔记,希望新会话先知道「该读哪些路径」,而不是重新设计或误把日志当参考资料。
明确不做(README 已说明):无 experience show/search 类工具;不做全文检索、heading 切分或 LLM 摘要;不自动重建过期索引;不跨 scope 合并注入;本次会话新写的文件要等下次重建索引才会进索引。
其他限制:fork worktree 首次复制只做校验映射,不会发现分支新增文件;scope 路径会经 realpath 规范化;子目录中的 AGENTS.md 不会被内置指令链读取,但本插件可将其作为 rule 类索引。
DSH 生态强调「一切皆插件」;SkillHub 为社区目录站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-experience-index 用轻量路标补齐 DSH 对自由格式经验文档的可见性缺口:你控制 scope 与重建时机,模型按需 read 正文。进一步了解可访问 SkillHub 插件页 与 GitHub 仓库。