前言¶
在 DeepSeek Harness(DSH)里写智能体,工具调用失败是常态:参数不对、依赖缺失、权限不足,或者环境策略直接拒绝。常见做法是人工总结、贴到文档里,下次再靠人工检索复用。这中间有两个问题:一是失败日志散落在不同会话里,难以全局回顾;二是人工沉淀耗时,容易变成“写完就忘”。
dsh-tool-meta 是一个跑在 DSH 官方接口上的插件,通过观测 tools/result 事件,把工具调用失败记录为教训,自动沉淀成 SKILL 文件,并在下次会话时自动继承(滋养)。整个流程不引入私有格式,产物是标准 SKILL 文件,可直接被官方 skill-filesystem 发现和使用。
核心功能¶
自学习闭环¶
dsh-tool-meta 将演化算法的四个算子映射到 DSH 官方 seam 上:
- 变异:从
tools/result事件中提取失败,用规则模板分类,生成教训。 - 选择:记录
trials(复发次数)和successes(被复用后验证),只保留有价值的教训。 - 遗传:通过能力盘和
meta_search关键词检索,把教训传给下一代。 - 繁殖:利用官方 skill-filesystem 自动发现机制,无需额外代码,SKILL 文件自动被系统识别。
- 整理:通过
meta_compact对错误类归一,合并重复教训,支持归档(可恢复)。 - 闸门:用官方
ctx.tools.guard对不可逆操作(如删除)执行前强制声明,通配符/受保护路径一律拒绝。
工具面¶
插件提供以下工具(来自 README):
meta_status:查看沉淀进度与账本。meta_search:检索教训。meta_nourish:在会话开始时继承历史教训。meta_claim:写入域声明,使用 CAS 防止并发覆盖。meta_board:查看看板。meta_prepare:对高危动作(不可逆操作)声明目标与备份证据,执行前必须先声明。meta_compact:能力盘去碎片化,合并同工具同错误类的重复教训。
治理承诺¶
项目提供零依赖的单元测试 tests/unit.mjs(58 项),使用 Node 内置模块,不依赖 DSH。它断言以下治理规则:
- 负向清单:缺凭据 / 沙箱拒绝 / 命令不存在 → 不沉淀。
- 分类:UNKNOWN_TOOL / TOOL_OUTPUT_ERROR / 协作冲突 / 通用兜底。
- 错误文本截断 ≤160 字符(只存失败特征,不存用户内容)。
- 单级布局
<root>/<id>/SKILL.md,去重(复发trials+1),账本(successes累加)。 - 审计流水
.audit/ledger.jsonl,记录precipitate/recur/verify/archive/restore等事件,带 UTC 时间戳与ledger_tag。 - 归档而非删除(可恢复),
pinned技能拒绝归档。 - 高危动作闸门:通配符删除一律拒绝;受保护路径(能力盘/审计流水)拒绝;显式删除需先声明目标;代码型批量删除需声明
scope + 预期条数 + 备份哈希;META_GATE=off可整体关闭。
安装与启用¶
- 克隆仓库:
git clone https://github.com/sunwindy91/dsh-tool-meta.git
cd dsh-tool-meta
- 零依赖验证(推荐先跑):
node tests/unit.mjs
期望输出为 UNIT_OK(20/20)。
- 安装到 DSH profile(link 方式):
在 ~/.dsh/profiles/web/package.json 中加入:
"@sunwindy/dsh-tool-meta": "link:/path/to/dsh-tool-meta"
本包自带 cordis.patch.yml,会把自己插入为一个插件层。在 bundles 注册后执行:
pnpm install
然后重启 DSH。
典型用法¶
查看沉淀状态¶
meta_status
返回沉淀进度与当前账本。
检索教训¶
meta_search "文件删除"
按关键词检索教训。
开启会话时继承经验¶
在会话开始时调用:
meta_nourish
系统会自动加载历史教训,用于后续工具调用决策。
声明高危操作(如删除)¶
执行删除前先声明:
meta_prepare target="/path/to/dir" expected_count=3 backup_hash="abc123"
系统会检查声明是否完整,并记录到审计流水。
整理能力盘¶
合并重复教训:
meta_compact
查看审计流水¶
审计流水存储在 .audit/ledger.jsonl,包含各类事件的 UTC 时间戳与 ledger_tag。
适用场景与注意¶
- 适合需要从失败中自动沉淀经验的 DSH 智能体开发场景。
- 插件以当前 DSH 进程权限运行,安装前建议检查源码与许可证(MIT)。
- 高危动作闸门能拦住字面通配符/递归强制删除与未声明的删除,但无法完全防范精心构造的绕过;其价值在于让不可逆动作留下可审计的声明。
- 实测观测数据(13 次快照)详见
docs/observation.md,其中包含数据缺陷说明与结论边界。
短结尾¶
dsh-tool-meta 通过官方接口将失败观测、教训沉淀、自动滋养整合在一起,形成一个可审计、可恢复的自进化闭环。相关文档与代码可在目录页与 GitHub 查看详情。