Runtime Self-Learning Harness: DSH Local Self-Learning and Long-Term Memory

前言

在 DeepSeek Harness(DSH)里做多轮 Agent 协作时,常见情况是:每一轮新会话都要重新说明输出习惯、项目约定,以及已经排查过的故障线索。把信息写进笔记或 RULES 文件能缓解一部分问题,但召回、过期、跨项目误用和「这条经验到底靠不靠谱」往往仍要人工维护。

Runtime Self-Learning Harness 是面向 DSH 的原生 bundle 插件,在本地观察任务中的纠正、重复工作流和工具错误,把经验整理成可检索、可审核、可修订的记忆,并在后续模型调用前按项目范围与 Token 预算注入相关提示。下面介绍它的定位、能力与安装用法。

这是什么

插件全名 Runtime Self-Learning Harness,当前版本 v6.2.8,由维护者 326sun 发布在 GitHub(326sun/runtime-self-learning-harness),在 SkillHub 目录中归类为「记忆」。简介为:Native DeepSeek Harness bundle for standalone long-term memory and provenance tools.

它解决的核心问题是:让反复确认的偏好、项目事实和任务经验,成为 Agent 下一次工作时可用的上下文,同时保留来源追溯与人工治理环节,而不是把整段对话原样堆进上下文。

核心功能

从协作中自动积累经验

原生模式下,插件通过 session/event 观察用户消息、工具调用、工具结果和助手回合,识别重复工作流、纠正与失败模式;正常使用无需每个回合手动提交学习记录。学习结果仍受重复次数、评分、审核状态和项目范围约束;注入的提示与真实用户输入区分,避免把插件自己的提示误学成用户偏好。

记忆可查看、修改与撤回

长期记忆支持偏好、事实、项目状态、工作流、错误和事件等类别。可通过工具搜索、读取正文、查看修订历史与来源,也可显式新增、修改或逻辑删除。事实保留有效起止时间、获知时间与新旧替代关系。

分层存储与按项目召回

层级 主要内容 使用方式
core 稳定偏好、有效事实、项目状态 符合审核与治理条件的相关条目,可在 Token 预算内参与自动提示
archive 过程经验、历史信息、低频知识 通过显式检索按需调用

项目范围从当前工作目录推导;检索与自动提示遵循项目范围与治理门槛,减少不同项目之间的经验混用。

中文友好的本地检索

检索融合 CJK BM25、多查询 RRF、显式实体与别名、字符 n-gram 等信号,支持中文、英文和混合表达。默认在本机完成,无需额外部署向量库或 embedding 服务。

来源可追溯与可迁移备份

学习回合生成受限的 episode 来源记录(任务与工具摘要、项目范围、结果信号与会话哈希,不保存原始对话正文)。备份为版本化 JSON;导入流程为「预览 → 检查冲突 → 导入 → 逐条批准」,同 ID 内容不直接覆盖。

技能按验证证据晋升

重复失败可形成技能候选;候选需经执行试验和独立检查后才能累计晋升证据。默认 5 次可信成功进入暂存(staged),7 次进入激活(active);已验证的回归会触发降级。工具未报错、技能被注入或调用者自报 verified: true 都不会直接增加成功计数。验证契约由维护者配置,详见仓库内 技能验证说明。

宿主接入方式

插件在 agent/created 初始化上下文,通过 agent/pre-step 在模型调用前加入记忆和已激活技能。bundle 格式由 package.json 中的 dsh.bundle.patch 指向 cordis.patch.yml,由宿主加载。

安装与启用

环境要求:Node.js 24.9+;package.json 声明的 DeepSeek Harness 版本范围为 >=0.1.0-rc.6 <0.3.0。

使用原生插件命令安装(将 web 换成你实际使用的 profile):

dsh plugin --profile web add github:326sun/runtime-self-learning-harness
  1. 安装完成后重启对应 profile。
  2. 调用 learning_status,确认插件可用并查看实际 dataDir、观察回合、模式和技能数量。
  3. 正常使用 Agent;原生模式会自动观察与注入,无需首次手动激活。
  4. 需要技能验证时,由维护者先配置候选验收条件,再运行候选试验。

数据目录优先使用宿主分配的 ctx.dataDir;回退为 <HARNESS_HOME>/self-learning-harness/,未设置 HARNESS_HOME 时为 ~/.harness/self-learning-harness/。具体路径以 learning_status 返回为准。

典型用法

原生 bundle 注册 18 个工具(12 个记忆工具、6 个学习工具)。常用记忆工具包括 memory_search、memory_list、memory_get、memory_provenance、memory_upsert、memory_export 等;学习工具包括 learning_status、learning_inject、learning_skill_evolve、learning_skill_feedback 等。

列出当前范围内的核心记忆:

{ "memoryLayer": "core", "limit": 20 }

搜索历史处理经验:

{ "query": "权限错误的处理经验", "memoryLayer": "all", "limit": 5 }

查看某条记忆的来源(将 ID 替换为实际值):

{ "id": "<实际记忆 ID>" }

预览技能候选晋级判断(会产生派生模式与技能文件的写入,使用前需知晓):

{ "options": { "dryRun": true } }

插件默认在本机存储与检索,不调用外部模型、不上传原始对话;进入上下文的经验会随正常模型请求交给宿主配置的模型。

MCP 兼容入口(可选)

仓库中的 server.js 可作为独立 MCP stdio 服务使用,提供 12 个记忆工具。自动观察、自动注入及技能演化依赖原生 Harness 的事件与 Agent 接口;完整自学习能力请安装原生 bundle。

在源码目录:

npm ci
node server.js

可用环境变量 HARNESS_DATA_DIR 指定数据目录、HARNESS_PROJECT 指定项目。

适用场景与注意

适合需要在 DSH 中长期维护项目约定、错误处理线索和可审核偏好的开发者;多仓库、多项目并行时,按目录推导的项目范围有助于隔离私有记忆。

安装前建议阅读 GitHub 源码 与 MIT License。插件以当前 DSH 进程权限读写本地数据;拥有本地文件写权限的主体仍可修改配置和数据,机制不提供文件系统权限之外的隔离。README 注明:真实 Harness 安装、多轮模型对话、项目切换和长期运行的端到端验收尚未完成;声明的版本兼容范围与 CI 自动化结果不代表这些场景已经验收。

SkillHub 目录页:runtime-self-learning-harness。社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

Runtime Self-Learning Harness 把「观察 → 审核与分层 → 项目内检索 → 预算内提示 → 可选技能验证」放在同一条可检查的链路上,适合作为 DSH 的本地长期记忆与来源追溯组件。Release 与校验和见 v6.2.8。

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

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

Xiaoye