agents-learning:面向 DSH / Codex / Antigravity 的本地受治项目记忆引擎

前言

用 DSH(DeepSeek Harness)做长周期开发时,常见的问题是记忆断层:昨天排掉的报错,今天开新窗口要重新踩一遍;刚定下的架构约束,一次上下文压缩(Compaction)后很难找回;同一个项目在 Codex、Antigravity 和 DSH 之间来回切换,经验无法接力。另一种做法是把原始聊天记录回填到 Prompt,但长记录会增加输入成本,过期内容也会挤占当前任务的上下文。

下面介绍的 agents-learning 针对的是这个位置。它由 swenbo1-web 维护,自称本地受治记忆引擎(Governed Memory Engine),把排障过程、架构约束、工具结果与代码改动沉淀为可溯源、可纠错、按需展开的工程资产,并让 Codex、Antigravity 与 DSH 共用同一份本地 SQLite 知识库。许可证为 MIT,运行时依赖 Python 3.10+。

需要说明的是,DSH 的理念是「一切皆插件」,本文引用的社区目录 SkillHub 是独立站点,与 DeepSeek / 幻方没有官方从属关系。

基本事实

先把可以核对的基本信息列出来,避免后面的能力描述被当成承诺。

项目 内容
仓库 https://github.com/swenbo1-web/agents-learning
目录页 https://www.skillhub.cn/plugins/swenbo1-web/agents-learning
维护者 swenbo1-web
分类 记忆
插件名 / 包名 agent-learning(插件名与 CLI 名),agent_learning(Python 包)
版本 最新正式版 v1.4.40;main 为 1.4.43,DSH 直接 GitHub 安装与初始化使用 main 的 1.4.43 及后续版本
运行依赖 Python 3.10+,纯本地 SQLite 权威存储
许可证 MIT
星标 目录页登记 1 star

版本口径需要留意:README 写明 v1.4.40 提供三宿主源码、Python wheel 和 SHA-256 校验文件,供 Codex、Antigravity 和本地导出流程使用;DSH 侧则跟随 main 的 1.4.43。仓库 AGENTS.md 给出的兼容基线同样是版本 1.4.43、数据库 schema 25、正式知识全文索引 7、工作历史索引 3、可选语义索引 1、内部发布协议 25。

核心能力

这些能力都来自 README 与仓库内源码,按模块列出。

跨会话工作历史

自动记录公开需求、分析说明、工具执行结果与文件修改关联,长回复会分段并标记完整/部分/截断状态。记录自带来源标签,其中「来源陈述」标记为 reported,用于区分「历史尝试」与「已验证结论」。这部分是插件的基础,其他能力都建立在它之上。

结论优先的渐进式读取

检索围绕当前业务问题过滤,而不是因为调了同一个通用工具就触发引用。输出分三层:「结论+必要前提 → 正文 → 证据」,预算装不下完整前提时宁可给读取索引,也不截断条件。默认自动注入预算为 2,400 字符,对应 config.example.json 里的 injection_max_chars,可配置。

同时做两件事:对持续上下文中已展示的卡片精确去重;知识修订、来源变化、切换任务或压缩恢复时重新校验当前任务与资料资格。这套过滤、全文检索、预算裁剪与展示去重由本地程序完成,默认不额外调用生成模型。

工具报错自动补查

在宿主事件中采集工具结果与说明。工具失败后登记一次有界的经验查找,在后续受支持事件中提供相关参考。这解决的是报错发生时 Agent 只能靠当前推理或临时查资料的问题。

错误经验的熔断与纠错

知识条目保留适用条件、来源引用和修订历史,并可核对关联文件的已观察状态。出现来源变化、反例、争议或撤销时,会在后续受支持事件中重新检查:已确认失效的知识停止后续自动摘要,部分来源风险降为带提示的读取索引,相关会话按事件和预算收到变更提醒。

证据分级与阶段自动发布

证据分 reported 与 tool_success 等级别。可选管理员按阶段提炼候选知识,可以设置每明确交付 1~20 个任务/阶段集中整理一次,并控制在项目 Token 预算内。分级自动发布机制在授权范围内核验健康成功证据,合格解法自动上架,有冲突或缺证据的条目留给人工拍板。

老项目历史吸收

可以主动框选项目文档、核心源码、架构笔记与已有对话历史,冻结为独立批次做历史吸收与增量整理。来源版本、Token 预算与覆盖进度可查,支持中断续做与仅审新增改动。

三端共库与可视化

Codex、Antigravity 与 DSH 共享同一个本地 SQLite 知识库,同时各自的会话状态、管理员开关与模型路由彼此隔离。可视化入口有两类:宿主原生面板(DSH 侧是已绑定项目聊天框左下角的「📖 知识库」实体按键),以及 127.0.0.1 上的本地 WebUI,支持全文搜索、证据溯源、修订比对与批量审批。

安装与启用

DSH 侧的安装是仓库安装加显式初始化两步。README 写明「DSH 直接 GitHub 安装与初始化使用 main 的 1.4.43 及后续版本」;仓库的 package.json 里 dsh.bundle.patch 指向 dsh.patch.yml,后者第一行是「Repository installation starts with an explicit, profile-local initializer.」,说明安装完成后还需要对具体 profile 与项目做一次初始化。

初始化由仓库提供的 agent-learning-dsh-init 完成(package.json 的 bin 指向 scripts/dsh-init.mjs)。它需要的参数在脚本里写明:

agent-learning-dsh-init --profile-directory <DSH_HOME/profiles/name> --workspace <absolute project path> [--python <absolute Python executable>]

其中 --profile-directory 与 --workspace 是必填,--python 可选。运行 agent-learning-dsh-init --help 可以打印同样的用法。这一步的作用是把插件绑定到指定 DSH profile 和项目工作区,生成本地运行副本与配置。

初始化完成后重载宿主,在目标项目开启新对话即可。首次验活用「检查接入」或技能 $learning-debug;想查看沉淀了什么,打开知识库面板或调用 $learning-history。

仓库 skills/ 下还提供了 learning-admin、learning-browser、learning-panel、learning-review、learning-worker 等技能入口,分别对应管理员设置、浏览器视图、面板、复盘与执行侧操作。

默认配置保持克制。config.example.json 里的默认值是:

{
  "injection_max_chars": 2400,
  "event_max_chars": 6000,
  "capture_deliveries": true,
  "work_memory": { "enabled": true, "automatic_context": true, "max_context_chars": 600, "max_items": 3 },
  "retrieval": { "semantic": { "enabled": false, "provider": "ollama", "url": "http://127.0.0.1:11434" } },
  "admin": { "enabled": false, "auto_publish": false },
  "scheduler": { "enabled": false },
  "hindsight": { "enabled": false, "url": "http://127.0.0.1:8888" }
}

仓库 AGENTS.md 也明确:「配置示例保持后台调度、管理员、自动发布和远端服务默认关闭。」也就是说,语义检索、管理员、调度器和 Hindsight 远端召回都需要显式开启。语义检索开启后默认连本地 Ollama(127.0.0.1:11434),需要自行准备模型。

适用场景与注意

适合的场景比较明确:长周期项目,需要跨会话保留排障经验和架构约束;同机多宿主(Codex / Antigravity / DSH)共用项目知识;接手老项目时想先把历史文档与代码批量吸收成可检索资产。

几点需要注意:

  1. 插件以当前 dsh 进程权限运行。安装前应检查仓库源码与许可证(MIT),确认初始化脚本和 Hook 链的行为符合预期,再决定是否常驻。
  2. README 的实测数据来自维护者自测:2026 年 10 月 27~28 日,冷启动简单场景,两个编码阶段加一次主动压缩,模型为 GPT-6.1-Sol/High,管理员关闭。结果是质量得分 97.5/100,与无插件历史样本持平;累计注入 1,086 字符,实际注入 1 条工作历史卡,同卡精确重复 0 次;Hook/MCP 本地累计计时约 3.50 秒。作者自己也写明 A/B 没有重跑、CLI 版本不同,不能把耗时差异单独归因于插件,也不能据此承诺所有任务零开销。
  3. 1,086 是字符数而非 Token 数;注入仍然消耗输入 Token,本地计时不含模型阅读与注意力影响。
  4. 三端共库的宿主应一起升级、重新加载,避免版本与 schema 不一致。
  5. 星标数很低(目录页登记 1 star),功能描述基本来自维护者自述,建议在自己的项目里用 $learning-debug 先验活,再决定是否开启管理员与自动发布。

结尾

agents-learning 的价值在于把「记住上一次怎么修的」从聊天记录回填,换成带来源、带证据等级、按需展开的本地知识库,并用 2,400 字符预算约束自动注入体积。它默认本地运行、不额外调用生成模型,管理员与远端能力都是可选开关,接入成本低;长期收益仍需要在真实项目里持续对照验证。

  • 目录页:https://www.skillhub.cn/plugins/swenbo1-web/agents-learning
  • GitHub:https://github.com/swenbo1-web/agents-learning
羽毛球分组比赛记分
小程序二维码

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

Xiaoye