前言¶
在 DeepSeek Harness(DSH)里跑智能体,工具失败、命令非零退出、LLM 请求报错都很常见。模型每次都会从头排查,而人往往已经在上一轮或另一个会话里修过同类问题。把解法写进 ERRORS.md 或聊天记录能缓解,但检索靠关键词,环境稍有变化就不一定对上,也很难在失败发生前把已知修复递回模型。
Error Knowledge Base 走另一条路:在本地把失败脱敏、规范化、指纹化后写入 PostgreSQL;下次同一失败出现时,先交回库里记录的解法、匹配原因和可信度,核心不调用模型、也不发外网请求。仓库里的 DSH 适配器包名为 dsh-errkb,与 CLI、daemon、MCP 共用同一套后端。下面介绍它是什么、能做什么,以及和 DSH 一起用时要注意什么。
这是什么¶
错误知识库(error-knowledge-base)是面向 LLM 工具与命令行工作流的本地报错知识库,维护者为 jingchangzhao-gif。DSH 侧通过 Cordis 插件 err-kb(npm 包 dsh-errkb)接入:适配器把宿主事件转成 ErrorEvent v1,经 Named Pipe 交给本机 errkb daemon,分类、脱敏、指纹、存储与检索不在每个宿主里各写一套。
项目状态(2026-10-22):README 标明为验收候选、尚未正式发布;核心、schema、CLI、daemon、MCP、DSH/Codex/Claude 连接器与 Windows Web 工具箱已实现,干净 VM 验收与带 tag 的正式发布仍在进行。GitHub 仓库当前约 1 star。社区目录 SkillHub 将其归类为「记忆」,与 DeepSeek / 幻方无官方从属关系,只是 DSH 生态的第三方收录站点。
核心功能¶
与 DSH 相关的闭环能力¶
| 阶段 | 在 DSH 里大致对应什么 |
|---|---|
| 观察 | 插件 Hook 采集 tool、command、llm、agent 等来源的失败(可配置 capture) |
| 保护 | 写库前按 spec/redact.cue 脱敏密钥、凭据、邮箱与家目录路径 |
| 识别 | 规范化文本并计算 12 位十六进制指纹,同一失败得到相同指纹 |
| 检索 | 先精确匹配,再有限模糊候选(最多 3 条,近似匹配须人工确认) |
| 复用 | 在模型再次诊断前注入已知解法:常驻 system-prompt 提示、post-execute / pre-step 通知 |
| 学习 | 通过 errkb feedback 或连接器记录解法成败,可信度由 SQL 函数 errkb_trust() 计算 |
连接器矩阵(2026-10-20 实测)记载:DSH 0.2.0-rc.2 + 本树 dsh-errkb 0.0.0 走通道 A(插件钩子),支持诊断前回传——与通用 CLI 包装器(失败后才打印解法)不同。验收记录见 EKB-039 / PR #66;真实会话中的 tools/result 路径仍列在「未验证」缺口里。
插件暴露的五类工具¶
适配器向 DSH 注册五个工具(经本地 core,不重复实现匹配逻辑):
err_lookup:按 id、指纹或文本检索已知问题与解法err_record:从消息录入问题(可与核心采集配合)err_list:列出问题或解法err_forget:将问题标为 wontfix(不物理删除)err_stats:计数与通知统计
此外还有 agent/request-error 瀑布 Hook:在 LLM 请求失败时旁路记录,不改变下游重试策略。
默认连接与示例配置¶
插件默认通过 Named Pipe \\.\pipe\errkb 对话 daemon(pipeTimeoutMs 默认 10000)。cordis.patch.yml 中的 bundle 示例只写出 README 示例里的两项,其余字段走 src/index.ts 里 Config 的默认值:
- insert:
- id: err-kb
name: dsh-errkb
config:
fuzzyThreshold: 0.72
inject: hit-only
package.json 声明 dsh.bundle.patch: ./cordis.patch.yml,把该包加入 profile 后会自动合并上述层,无需手改 profile patch。peer 依赖包括 @deepseek-ai/cordis 4.0.2、@deepseek-ai/dsh-llm / @deepseek-ai/dsh-tools 的 ^0.1.5-rc.2 等;README 记载插件按锁文件解析的 0.1.5-rc.3 构建,宿主为 0.2.x(实测 0.2.0-rc.2)。
安装与启用¶
DSH 插件依赖本机已迁移的 PostgreSQL 与正在运行的 errkb daemon。README 强调:目前还没有受支持的一键安装版本,dist\ 与 dist\release\... 不要混用。
1、准备 PostgreSQL 与 errkb 后端¶
开发工作区流程(Windows,摘自 README 快速开始):
- 安装 PostgreSQL 16(或使用安装器在 5433 端口创建专用实例),记下 DSN。
- 构建并迁移 schema:
go build -o errkb.exe ./cmd/errkb
.\errkb.exe db migrate --dsn "postgres://postgres@127.0.0.1:5433/errkb?sslmode=disable" --migrations .\db\migrations
- 启动后台服务:
.\errkb.exe daemon --dsn "postgres://postgres@127.0.0.1:5433/errkb?sslmode=disable"
daemon 提供 Named Pipe API;HTTP 默认关闭。可用 errkb doctor 做八项只读环境检查。
2、构建 DSH 适配器¶
仓库根目录即 npm 包 dsh-errkb,需要 Node.js >= 22.13(packageManager: pnpm 11.7.0)。开发段落给出的命令:
pnpm install
pnpm build
pnpm build 用 tsdown 产出 lib/,即 DSH 加载的连接器 bundle。
3、装入 DSH profile¶
README 已知局限写明:DSH 插件仍在等待商店审核,目前以手动安装为受支持路径。SkillHub 目录页显示可安装、版本 v0.0.0,但未替代上述状态说明。安装前请自行阅读仓库源码与 MIT 许可证;插件与 DSH 进程同权限运行。
官方文档未给出单独一行 dsh plugin add … 摘录;手动路径的含义是:在本地完成 pnpm build 后,按你使用的 DSH 版本文档,将本仓库根目录(含 lib/、cordis.patch.yml、package.json)作为第三方 bundle 安装到目标 profile——bundle patch 会自动注册 err-kb。若改用 errkb run -- 包装 agent 命令,则不再走插件 Hook,会丢失宿主 session_id、tool_name 等字段(连接器矩阵中的降级说明)。
典型用法¶
先验证「无模型」CLI 闭环¶
在接 DSH 之前,可用包装器确认后端与检索链路正常(README 与 docs/e2e-cli-loop.zh-CN.md):
.\errkb.exe run --connector cli --session demo --project demo -- cmd /c "exit 9"
首次失败会创建 issue,尚无解法;经 MCP(err_record_solution)或产品 API 写入解法后,再跑同一条命令,包装器会打印已知解法、来源与可信度。全程不调用聊天模型。
在 DSH 会话中的预期行为¶
满足 daemon 可达且插件已加载时(矩阵实测环境):
- 失败经适配器写入核心,并可在会话中收到执行后通知。
- 常驻 system-prompt 提示与
inject: hit-only等设置控制是否在命中时才注入长文本。 - 智能体可主动调用
err_lookup等工具查询库内记录。
具体日志形态以你本地的 DSH 0.2.x 与 headless/desktop profile 为准;未在矩阵实测的行不要当成已支持能力。
运维侧常用命令¶
与插件并列的 errkb CLI(同一二进制)支持检索、统计与反馈,例如:
.\errkb.exe search <issue-id|指纹|文本>
.\errkb.exe feedback <issue-id> <solution-version-id> --outcome success --json
.\errkb.exe stats --json
配置为单一 YAML,由 spec/config.cue 校验;与 daemon 共用 database.dsn、保留期等字段(见 README「配置」一节)。
适用场景与注意¶
适合谁: 在 Windows 上长期用 DSH 做编码智能体、希望把重复性技术错误沉淀为可检索、可度量可信度的本地知识库,并愿意维护 PostgreSQL 与 errkb 服务的开发者。
不适合当成什么: 不是聊天模型、不是全量日志仓、不是云服务;近似匹配不会自动复用,界面与 JSON 会标 APPROXIMATE — confirm before reuse。
环境与交付: 后台服务、Named Pipe 与 Windows 连接器面向 Windows 10/11 x64;PostgreSQL 16 为运行时硬依赖。2026-10-22 时发布包仍属验收候选,安装器与 dist/ 产物在干净 VM 上未最终签收。
安全与隐私: 数据留在本机;脱敏在写库前完成。安装未签名发布物时可能触发 SmartScreen,README 建议核对 SHA256SUMS。
结尾¶
Error Knowledge Base 把「诊断一次、下次直接交回修复」做成本地闭环,DSH 插件 dsh-errkb 负责在宿主侧采集与诊断前注入,而不在后端重复实现指纹与检索。若你要核对功能边界与实测矩阵,以仓库文档为准。