noname-dsh-plugin:把项目记忆做成可审核的 DSH 工作流资产

前言

在 DeepSeek Harness(DSH)里做多轮 agent 协作时,常见问题是:上一会话里的关键决定、理由和进度,下一回合未必能稳定接上;工具输出堆在上下文里,也不等于经过确认的长期记忆。社区插件 noname-dsh-plugin(维护者 yuchenlogin,GitHub 仓库 yuchenlogin/noname-dsh-plugin,分类为工作流)把 NoName Agent Harness 的记忆基座接到 DSH:证据追加写入、记忆分版本、品味单独审核、批准流程留本地账本。下面介绍它是什么、能做什么,以及如何安装与走通一条典型流程。

这是什么

一句话定位:NoName Agent Harness 的 DSH 插件——context as an asset:append-only 证据、版本化记忆、品味作为一等公民、经审核的批准(见仓库 package.json 描述与 README)。

实现上,TypeScript 插件连接本机 Python sidecar;Python 基座仅用标准库与 SQLite,不需要另配模型 API key。插件是记忆与证据适配层:DSH 仍负责模型、工具执行、权限和调度;NoName 独立 runtime 的执行审批门与沙箱不会自动接管 DSH。

当前插件版本 0.6.0,许可证 MIT(内核遵守原 NoName 仓库许可)。

核心功能

记忆分层与「什么该记」

README 用表格归纳了内容去向,要点如下:

内容 合适的去处
项目约束、关键决定及原因 noname_remember 的 high 候选,确认后成为项目记忆
阶段成果、阻塞与下一步 mid 候选,保留可继续工作的最小信息
用户明确表达的判断与例子 自述品味;必须来自用户明确要求
从模型表现中观察到的喜好 品味候选,用户明确采纳后生效
普通工具输出、暂时想法、每一轮聊天 需要时留作证据,不逐条变成长期规则

决定变更时复用同一逻辑键(例如 storage 从 SQLite 改为 PostgreSQL);新候选确认后取代当前版本,旧决定仍留在来路里。品味是软影响,不是事实或永久命令。

工具结果留证,不等于长期记忆。 自动留证(autoIngest)、提出候选、人工确认是三个阶段。

面向 agent 的工具集

工具 用途
noname_record 留下决定、发现或约束作为证据;返回来源事件 ID(evt_…)
noname_remember 由证据提出项目决定或工作进度候选;不会自动批准
noname_package 组装项目记忆、偏好与相关证据,供新会话接续
noname_search 查找证据与记忆
noname_state 查看已批准状态;可选 layer,不填则返回 high 与 mid
noname_inbox 查看候选及其来源
noname_taste_add / noname_taste_propose / noname_taste_review 品味自述、提议与 adopt / edit / pause / resume / retire
noname_card_queue 需要复核的品味卡
noname_ledger 本地可审核页面与离线 HTML 快照
noname_verify 账本完整性及哈希覆盖范围
noname_extract 默认预览抽取;create_candidates: true 才创建待审候选

noname_remember 必填:layer(high / mid)、稳定主题 key、可读 text、一个 source_event 事件 ID,以及 reason。可选 next_step。须先 noname_record 再引用真实 ID。

本地交互式账本

noname_ledger 返回本机 live ledger URL 与离线 HTML 路径。页面分区包括:此刻、等你判断、品味与偏好、来路与变化、活动档案。项目决定与工作进度支持接受、拒绝、暂缓、修改后接受;签署人和理由写入同一账本。

服务仅监听 127.0.0.1,URL 带访问令牌,不要公开分享。一小时无活动后自动退出;远程 DSH 需把返回 URL 的端口转发到本机相同端口(README 示例:ssh -L 45678:127.0.0.1:45678 your-host)。当前 DSH host 插件不能注册 client 的 sidebarRightTabs,账本通过浏览器打开。

配置与数据位置

字段 默认 说明
pythonPath python3 本机 Python;建议绝对路径
dbDir 空 默认 <项目>/.noname;指定后固定目录
autoIngest true 将宿主工具结果写入证据流;跳过 NoName 自身工具避免回声
timeoutMs 30000 Python sidecar 调用超时(毫秒)

一个工作区一本账,多会话共享;无法解析工作区时回落到 $DSH_HOME/noname。建议将 .noname/ 加入 .gitignore。不同 profile 若指向同一工作区,可能共用账本;需隔离时显式配置不同 dbDir。

安装与启用

环境要求:DeepSeek Harness、Node.js 18+、Python 3.10+(见 package.json 的 engines)。

从源码安装时 README 给出的步骤如下。注意必须执行 npm run build,使 dist/ 与当前 TypeScript 一致;DSH 安装与 profile 细节见 DSH 官方指南。

git clone --recursive https://github.com/yuchenlogin/noname-dsh-plugin.git
cd noname-dsh-plugin
npm install
npm run build
dsh plugin --profile web add /absolute/path/to/noname-dsh-plugin

插件目录页:SkillHub — yuchenlogin/noname-dsh-plugin(社区目录站点,与 DeepSeek / 幻方无官方从属关系)。

安装前请自行审阅仓库源码与 MIT 许可证。插件以当前 dsh 进程权限运行,能访问其配置的工作区与本机 Python sidecar;不要在未信任的环境盲目启用。

典型用法:从空账本到下一回合接续

启用插件后,在 DSH 项目工作区内可按 README「快速开始」走通一遍:

  1. 让 agent 调用 noname_package 查看当前项目。初次会创建空账本,空记忆不会伪装成已记住内容。
  2. 正常讨论一个决定(例如「首版用 SQLite,因为只在本地运行」),用 noname_record 留下决定和理由,取得 evt_… 来源 ID。
  3. 用 noname_remember 提出候选:稳定键 storage、人能读懂的决定、来源 ID 和保留理由。
  4. 调用 noname_ledger,打开 live ledger URL,查看来源并签署。
  5. 在新会话让 agent 再调 noname_package,确认已批准内容与来源出现在上下文包中。

README 也明确:记忆审核在本地网页由人签署;插件没有后台 LLM 自动提炼,也不保证宿主每次会话开始都会自动调用 noname_package。

适用场景与边界

适合谁: 需要在 DSH 工作流里保留「决定 + 理由 + 来源」、并希望人工批准后再进入长期上下文的团队或个人;重视品味与偏好但要求与用户明示、审核生命周期分开处理的场景。

边界(README「信任与现有边界」):

  • autoIngest 捕获工具结果,不是全量聊天归档;长输出保留受限摘要,有价值内容仍应主动 noname_record。
  • 完整性校验:noname_verify 的 hash_coverage 会报告 v1 / v2 哈希覆盖差异;数据在本机,不表示自动加密或脱敏。
  • 开发侧:npm run build、npm test、npm run check:kernel 用于构建与内核快照一致性;运行时依赖 vendor/noname_harness_pkg/ 快照。

结尾

noname-dsh-plugin 把 NoName 的「可追溯项目记忆」接到 DSH:证据追加、候选提议、本地账本签署、下一回合用 noname_package 接续。目录页见 SkillHub 插件页,源码与完整工具说明见 GitHub 仓库 README。

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

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

小夜