dsh-experience-index:为跨会话经验文档立路标

前言

在 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 进程权限运行;安装前请自行查看仓库源码与许可证是否满足你的合规要求。

典型用法

入口有三处:

  1. 输入框右侧指南针按钮:查看目录数、条目数、过期数与当前目录状态,可一键建立或重建索引(按当前会话解析工作目录)。
  2. Settings → Experience Index:管理所有 scope,可为任意绝对路径建索引,查看条目、排除或移除 scope。
  3. 聊天命令 /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 仓库。

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

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

小夜