DeepSeek Harness 插件

dsh-knowledge-forge

Local-first automatic Wiki and Skill distillation for DeepSeek Harness(英文原文)

跳到安装方式

来源信息

GitHub 仓库
bill084153-cell/dsh-knowledge-forge
最近更新
2026年8月17日
分类
文档与渲染
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/bill084153-cell/dsh-knowledge-forge
插件名:dsh-knowledge-forge
作者:bill084153-cell

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器4 个文件
README.zh.md来源说明 · 只读预览
README 语言

<div align="center">

DSH Knowledge Forge

面向 DeepSeek Harness(DSH)的本地自动 Wiki 与 Skill 记忆插件。

![DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) ![Node.js](https://nodejs.org/) ![License: MIT](./LICENSE) ![Tests](#开发验证) ![Local-first](#存储结构)

[核心亮点](#-核心亮点) · [工作原理](#工作原理) · [快速开始](#快速开始) · [看板](#看板与运维) · [技术架构](#技术架构) · [安全边界](#安全与隐私)

English · 简体中文

</div>

---

✨ 核心亮点

> DSH Knowledge Forge 专为 DeepSeek Harness 构建,将 Agent 对话轨迹逐步转化为可复用知识。 > > - 第一次出现的长期有效任务 Case,沉淀为可读的 Wiki。 > - 后续独立 Case 再次出现相同稳定流程时,可以晋升为 DSH 原生 Skill。 > - 晋升后,Wiki 变成指向 Skill 的轻量 Meta,让 Agent 渐进式发现能力,不需要把所有 Skill 一次性塞进提示词。

能力行为
本地优先采集顶层 Turn 完成后先脱敏、截断,再写入项目本地 SQLite
按 Session 分批单个来源 Session 满 5 个待处理 Turn,或最老 Turn 等待 60 分钟后触发
One-shot 提炼通过无工具、不可交互的后台 Agent 返回严格结构化结果
Wiki → Skill 晋升首次有价值 Case 写 Wiki;重复、稳定、可执行的流程晋升为原生 Skill
渐进式披露上下文只注入紧凑 Wiki 索引,需要时再读取完整 Wiki 或 Skill
白盒可观测保留 Markdown 产物、批次回执、重试状态和 DSH Web 看板

---

项目简介

DeepSeek Harness 是采用插件化架构的开源 Agent Harness。DSH Knowledge Forge 是它的原生插件,为 DeepSeek Harness 增加本地自动知识沉淀能力,无需外部 Memory 服务。

Agent Session 中包含大量有价值的工程记忆:做过什么、用户如何纠正、哪些证据关键、什么决策有效、阻塞任务应该从哪里继续。原始 Transcript 过大、噪声过多,不适合直接成为长期上下文;一次性摘要又缺乏可审计性。

Knowledge Forge 将运行证据可复用知识分开保存:

  • SQLite 保存队列、调度、重试、回执、Case 关系和全文索引。
  • Markdown 保存可读、可编辑的 Wiki 与 Skill 长期产物。
  • 紧凑 Wiki 索引负责引导召回,不把所有知识页和 Skill 一次性注入提示词。

最终形成一条面向 DeepSeek Harness 的本地知识闭环:

任务发生 -> 有价值 Case 进入 Wiki -> 重复流程晋升 Skill -> 后续 Session 复用

工作原理

<p align="center"> <img src="./assets/architecture.svg" alt="DSH Knowledge Forge 架构与 Wiki 到 Skill 晋升流程" width="100%" /> </p>

1. 采集顶层 Turn

插件监听 DSH 顶层 Turn 生命周期,提取用户可见消息、有限长度的助手输出、简化工具证据和相关路径。Reasoning 与完整工具输出不会被复制。

Candidate 写入前会完成:

  • 疑似凭证信息脱敏;
  • 按配置限制长度;
  • 按 Git Workspace 与来源 Session 隔离;
  • 生成幂等事件 ID。

2. 每个 Session 独立调度

来源 Session 满足任一条件后进入处理:

  • 已有 5 个待处理 Turn
  • 最老待处理 Turn 已等待 60 分钟

多个到期 Session 会分别调用后台 Agent,不会把不同 Session 的 Turn 混到同一次模型请求中。

3. One-shot 后台知识整理

Knowledge Forge 启动 DSH Subagent,并强制以下约束:

  • 只允许一次不可交互的完整回答;
  • 禁用所有工具;
  • 使用严格 JSON 输出 Schema;
  • 每个输入事件必须有且只有一个处理结果;
  • Candidate、Wiki 与 Skill 内容全部按不可信数据处理。

Host 在写文件前继续校验事件覆盖、Case 归属、安全 ID、Skill 晋升证据和疑似敏感内容。

4. 第一次写 Wiki,重复后晋升 Skill

知识判断遵循渐进式规则:

1. 丢弃普通查询、临时问题、闲聊和已有 Skill 的无变化复用。 2. 优先复用已有 Skill,避免重复沉淀同一流程。 3. 写入或更新 Wiki,记录长期有效任务 Case:目标、用户反馈、证据、决策、结果、阻塞和继续点。 4. 晋升为 Skill,要求新的独立 Case 再次出现同一稳定、可执行流程,并具备明确输入、步骤和验证方式。 5. Wiki 转为轻量 Meta,指向生成的 Skill。

这套机制不会把每段对话都当成知识,也不会把简单的文字重复误判为自动化能力。

快速开始

环境要求

  • Node.js ^22.19.0 || >=24.0.0
  • DeepSeek Harness 0.1.0-rc.6

Knowledge Forge 使用 Node 内置 node:sqlite,无需额外安装 SQLite 软件。

从当前仓库安装

克隆代码并构建预编译 tarball:

git clone https://github.com/bill084153-cell/dsh-knowledge-forge.git
cd dsh-knowledge-forge
npm install
npm run build
npm pack

安装到 DSH Web profile 并启动:

dsh plugin --profile web add ./dsh-knowledge-forge-0.1.0.tgz
dsh web

需要在哪个 DSH profile 中自动沉淀,就把 Bundle 安装到对应 profile。Web profile 会额外提供 Dashboard。

> TypeScript DSH 插件直接从 GitHub 安装时需要授予安装期构建权限。先构建 tarball,可以让安装行为更明确,也避免在用户的 DSH profile 中执行仓库构建脚本。

验证安装

dsh web --dump-config | grep -A 8 dsh-knowledge-forge

dsh plugin --profile web exec \
  dsh-knowledge-forge doctor --workspace .

doctor 正常时会输出 Workspace、本地数据库路径、队列数量、Wiki 数量、Skill 数量和 status: ok

存储结构

Knowledge Forge 只在当前项目内写入:

<project>/.dsh/
├── knowledge-forge/
│   ├── knowledge-forge.sqlite     # 队列、批次、回执、重试、全文索引
│   └── wiki/
│       ├── index.md               # 注入 Agent 上下文的紧凑召回地图
│       └── pages/
│           └── <wiki-id>.md       # 长期任务 Case 或 Skill Meta
└── skills/
    └── <skill-id>/
        └── SKILL.md               # DSH Skill Catalog 可原生发现的 Skill

SQLite 属于运行状态;Markdown Wiki 与 SKILL.md 是可读的长期知识产物。

触发、重试与保留策略

策略默认值
Turn 阈值每个 Session 5 个待处理顶层 Turn
时间阈值最老待处理 Turn 等待 60 分钟
Session 混批禁止;每个到期 Session 独立处理
重试间隔30 秒、2 分钟、10 分钟
Dead letter第 4 次执行仍失败
Processing Lease30 分钟后执行崩溃恢复
运行数据保留90 天
Wiki / Skill 过期不自动过期

常驻 dsh web 可以准时执行时间触发。如果 DSH 停止,待处理数据会继续保存在 SQLite 中,并在 Workspace 再次活跃时补处理。

调度器是进程级单实例,不会为每个 Session 常驻一个后台进程。来源 Agent 已退出时,可以使用同一 Workspace 的其他在线顶层 Agent 承载 one-shot Worker;没有在线 Parent 时,批次等待下一次 Workspace 活动。

看板与运维

将插件安装到 Web profile,执行 dsh web,然后打开 Settings → Knowledge Forge

看板展示:

  • Workspace 与来源 Session 筛选;
  • Pending、Running、Waiting、Completed、Dead-letter 数量;
  • 来源 Session 与 Worker Session 跳转;
  • 批次触发原因和逐 Turn 动作;
  • 生成的 Case、Wiki 与 Skill;
  • 校验错误与执行错误。

Session 内命令

/knowledge-forge
/knowledge-forge run
/knowledge-forge retry <batch-id|all>

离线诊断

下面的命令只读取本地状态,不会启动模型:

dsh plugin --profile web exec \
  dsh-knowledge-forge status --workspace .

dsh plugin --profile web exec \
  dsh-knowledge-forge doctor --workspace .

知识召回

Knowledge Forge 注册两个只读工具:

工具用途
knowledge_search通过本地 SQLite FTS5 搜索 Wiki 与生成 Skill 的 Meta
knowledge_read读取搜索结果中的单个 Wiki 页面或生成 Skill

Agent 创建时只注入紧凑 Wiki 索引,需要时再加载完整页面与 Skill Body。该方式遵循 DSH 原生 Skill 模型,并节省上下文空间。

技术架构

层级实现
DSH 生命周期agent/turn-stoppingagent/created 扩展点
Candidate 提取有限长度的问答、简化 Tool Trace、路径证据、脱敏
运行存储Node 22 内置 node:sqlite,可用时启用 WAL,FTS5 检索
调度一个进程级 Scheduler 协调多个 Workspace 数据库
语义 WorkerDSH subagents.start('spawn', ...),无工具 one-shot 执行
输出契约严格 JSON Schema + Host 语义强校验
长期产物原子写入 Markdown Wiki 与 .dsh/skills/*/SKILL.md
召回Wiki 索引上下文 + knowledge_search / knowledge_read
可观测性只读 HTTP Endpoint + DSH Settings 页面

插件不依赖外部服务,运行时只存在于 DSH 进程与当前项目目录中。

安全与隐私

  • 不复制原始 Session Log、模型 Reasoning、完整工具输出和密钥。
  • Candidate 持久化前会脱敏并限制长度。
  • Candidate、Wiki、Skill、路径、工具参数和工具输出均视为不可信输入。
  • 后台 Agent 不拥有工具,不能执行 Candidate 中的指令。
  • 每次 Wiki 或 Skill 写入前都由 Host 强校验。
  • 产物 ID 限制为安全的 kebab-case 路径。
  • 只允许在声明的项目目录内进行原子文件替换。
  • Dashboard 接口只读,沿用 DSH Web 原有暴露边界。
  • 运行数据保留 90 天;整理后的 Wiki 和 Skill 由用户自行编辑或删除。

配置

Bundle 默认配置位于 [cordis.patch.yml](./cordis.patch.yml):

- insert:
    - id: knowledge-forge
      name: dsh-knowledge-forge
      config:
        turnThreshold: 5
        maxAgeMinutes: 60
        retentionDays: 90
        maxRetries: 3

用户可以通过后置 DSH profile patch 覆盖插件配置。其他选项还包括 processingLeaseMinutes、Candidate 与 Tool Preview 长度、Wiki 上下文长度和 enabled

开发验证

npm install
npm run typecheck
npm test
npm run build
npm run pack:check

当前测试覆盖 Candidate 提取、脱敏、Session 隔离与调度、重试与 Dead Letter、结构化结果校验、Wiki/Skill 原子写入、DSH 原生 Skill 发现、Bundle 组合和 Dashboard Transport。

项目状态

Knowledge Forge 当前适配 DeepSeek Harness 0.1.0-rc.6。该版本仍处于 Developer Preview,DSH 稳定版发布前可能存在破坏性 API 变化,插件需要同步适配。

参与贡献

欢迎提交 Issue、文档优化、兼容性修复和测试。建议将贡献范围保持在通用的本地自动知识沉淀能力,避免在核心中引入特定业务或聊天框架耦合。

如果这个项目对你有帮助,欢迎 Star,并通过 GitHub Issues 分享实际的 Wiki/Skill 晋升案例。

许可证

[MIT](./LICENSE) © 2026 Zhongxibiao