dsh-notes:按项目钉住笔记并注入 Agent 系统提示

前言

在 DeepSeek Harness(DSH)里做多项目或长期维护同一代码库时,团队约定、个人偏好和项目背景往往要反复写进对话。这些内容更适合作为「常驻上下文」而不是每次手动粘贴。DSH 插件生态支持通过扩展点改写 Agent 的 system prompt;dsh-notes 在左侧边栏提供按项目管理的笔记页,并把已启用的笔记在每一步请求中注入当前工作目录对应项目的 Agent 上下文。

下面按定位、能力、安装与使用说明介绍该插件。事实来源为仓库 README 与 package.json(版本 1.0.0,MIT 许可证,维护者 991206772-debug)。

这是什么

dsh-notes(包名 @local/dsh-notes)是一个 DSH bundle:在 Harness 左侧边栏增加一页「按项目钉住的笔记」。你在界面里为某个浏览器所选项目编写多条笔记,并为每条笔记单独打开或关闭「注入」开关;只有已启用且非空的笔记会进入 Agent 的 system prompt,且仅当该 Agent 的工作目录就是该笔记所属项目时生效。

笔记持久化在 <dsh home>/notes/<profile>.json,采用临时文件写入后 rename 的方式,降低进程异常退出时文件被截断的风险。

核心功能

边栏与页面

  • 在 sidebar.panellist 中注册一行(id dsh-notes,order 21,紧挨宿主 Context 行),对应主区页面 key 为 dsh-notes。
  • 客户端为纯 JavaScript React,无需单独构建步骤;样式仅使用 --dsw-alias-* 令牌,随深浅主题变化。

按项目隔离

  • 每个在浏览器中选中的项目有独立的笔记列表;项目列表来自宿主的 workspace registry,已有笔记的目录仍可被选中。
  • 无已启用笔记的项目不会向 system prompt 追加任何文字。

注入规则

  • 每条笔记自带开关;仅「已启用 + 非空」的笔记参与注入。
  • 注入对象是「工作目录属于该项目的 Agent」;同一 systemPrompt.section(名称 dsh-notes.project-notes,order 780)挂在各 Agent 自己的 context 上。
  • 插件在 agent/created 时为新建 Agent 挂载,也会在激活时对已在运行的 Agent 立即挂载;卸载插件时移除挂载。
  • 笔记属于 prompt 输入,不是会话历史:编辑后从下一次请求生效,不会改写已有日志。

宿主侧接口与存储

宿主 index.js 扩展 agents、systemPrompt、webServer、workspaceRegistry,并通过 Web 接口暴露状态:

用途 路径
读取状态 GET /dsh-notes/api/state
保存笔记 POST /dsh-notes/api/notes

客户端通过相对 document.baseURI 的 URL 调用上述接口。页面侧保存带 450 ms 防抖;卸载或切换项目时会 flush 未提交的输入。

安装与启用

插件以当前 DSH 进程的权限运行,安装前建议浏览仓库源码并确认 MIT 许可证与行为是否符合你的环境。DSH 社区插件目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

桌面版:在插件管理中使用仓库地址安装。

命令行(在自己的 Profile 中安装,资料原文为 web profile 示例):

dsh plugin --profile web add github:991206772-debug/dsh-notes

公开仓库不包含用户配置、笔记、真实会话或凭据。官方说明建议用隔离目录做验证,并避免对正在运行的 DSH 做不必要的重载。

运行环境:package.json 要求 Node >=22.3.0。

典型用法

  1. 安装并 reload 页面(或按宿主变更需要重启 Harness)后,在左侧边栏打开 dsh-notes 页面。
  2. 在浏览器中选择当前要维护的项目(与 workspace 中的目录一致)。
  3. 为该项目添加一条或多条笔记,例如编码规范、常用路径、发布检查项等。
  4. 对需要长期生效的笔记打开注入开关;暂不需要的保持关闭或留空。
  5. 在同一项目目录下启动或继续与 Agent 的对话;后续每一步请求会自动带上已启用笔记,无需重复粘贴。

若某项目所有笔记均未启用或为空,system prompt 与未装插件时一致。

适用场景与注意

适合:需要在多个本地项目间切换、且希望「项目级约定」稳定进入 Agent 上下文的开发者;把个人偏好与仓库说明从重复口述改为可编辑、可开关的侧栏笔记。

注意:

  • 注入范围与 Agent 工作目录绑定,换项目或换目录后需在同一插件页选择对应项目并维护该项目的笔记列表。
  • 修改 client.js 后刷新页面即可;修改 index.js 等宿主逻辑需重启 Harness。本地链接安装时,改代码一般无需重装插件。
  • 仓库当前 GitHub 星标为 0(以目录页信息为准);功能与接口以 README 描述为准。

仓库结构(便于二次开发)

dsh-notes/
├── package.json          dsh.bundle.patch + dsh.client (platform web, immediately)
├── cordis.patch.yml      插入 @local/dsh-notes
├── index.js              宿主侧
├── client.js             客户端(无构建)
├── locale/{en,zh}.json   插件管理器标题与描述
└── icon.svg

可用 npm run check(对 index.js 与 client.js 做 node --check)做基础语法检查。

结尾

dsh-notes 把「按项目钉住的说明」放进 Harness 侧栏,并通过 system prompt 段落在每一步注入已启用内容,减少重复交代项目约定。插件目录页:https://www.skillhub.cn/plugins/991206772-debug/dsh-notes;源码与详细说明:https://github.com/991206772-debug/dsh-notes。

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

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

Xiaoye