【免费下载链接】backpassYou dont write AGENTS.md. You train it with gradient descent.项目地址https://gitcode.com/gh_mirrors/ba/backpass点击查看免费下载backpass 是一个用梯度下降思路训练 AGENTS.md、CLAUDE.md 与项目 skills 的开源工具。它的Gap Ledger缺口台账机制负责跨多次运行累积缺口证据同一个缺口这次只被 1 个会话提到、下次又被另一个会话提到两次运行加起来才算数从而让真实复发的教训有机会通过至少两个不同会话佐证的证据门槛。 问题为什么一次运行内佐证不够backpass 的核心规则是一个缺口gap必须被至少 2 个不同会话独立报告才会进入提案minGapEvidence默认 2。单看一次运行有两个坑会让佐证永远凑不齐坑原因后果证据文件会被重写每次apply都会改变记忆文件触发重分析旧证据被新证据覆盖上次看到的缺口记录消失了模型会换措辞分析模型每次用不同的话描述同一个缺口两次观察在单次聚合里对不上号换句话说这个会话见过这个缺口这个事实不能只存在于当次运行的内存里。它必须被持久化才能在若干次运行之后与新的观测汇合。这就是 Gap Ledger 存在的理由。 Gap Ledger 是什么跨运行的观察档案台账是一个普通 JSON 文件位于仓库状态目录文件位置.backpass/gap-ledger.json读写入口src/state.js 中的readGapLedger/writeGapLedger核心逻辑src/gap-ledger.js它的组织方式是按缺口gap分组、再按会话session索引。每次运行结束时backpass 把本轮证据中报告的所有缺口作为**观察observation**记入台账每条观察携带原始引语quote、错误描述、领域投票project/orchestration、首次发现时间等。设计目标写得很直白let observations collected on different runs reach the bar when their sessions are together in a later runs selected sample让不同运行收集到的观察在它们的会话同时进入某次运行样本时仍然能凑够门槛——见 src/gap-ledger.js 的文件头注释。 三层身份判定如何认出同一个缺口不同会话、不同措辞怎么知道说的是同一件事backpass 设计了三层机制可靠性从高到低1️⃣ 引用机制让模型直接点名每轮分析前backpass 会把台账中所有未解决的缺口含稳定 id渲染进分析 promptrenderOpenGapIndex提示词模板见 src/prompts/analysis.md。模型如果发现本次的缺口与已知缺口是同一件事就在返回 JSON 里用matchesGap字段引用那个 id。有效的引用直接获胜——因为是否同一件事是语义判断模型面前摆着两句话比任何词重叠分数都可靠。2️⃣ 词法相似度兜底bigram 分数 0.45没有引用时回退到 Sorensen-Dice 词二元组相似度实现见 src/memory.js 的similarity与台账条目的规范措辞保留最短的那句比较阈值定在0.45src/gap-ledger.js。3️⃣ Consolidation 判定调用合并平行新造的条目还有种情况前两层都覆盖不了同一次运行里两个并行分析同时发现一个全新缺口——谁也不知道对方于是各自造了一个条目。于是 backpass 在聚合前插入一次有界的模型调用src/consolidate.js、prompt 见 src/prompts/consolidate.md把全部未解决缺口交给模型只问一个问题——哪些 id 是同一个缺口。合并本身是纯机械操作mergeGapEntries模型说错不会污染计数会话永远不会被重复计数。源码注释里有一段很有说服力的实测数据生产台账中 89 个多会话缺口条目跨会话词法相似度最高只有0.34全部低于 0.45 门槛——纯词法匹配根本认不出真实的重述所以必须引入判定src/consolidate.js。同时它设计为 fail-soft调用失败就降级回词法身份绝不让整轮运行挂掉。️ 记账规则不双计、不过期、不诈尸台账最怕三类脏数据对应三条铁律均在 src/gap-ledger.js 实现同一会话永不双计观察以会话的规范身份为 key同一会话重复分析只会覆盖自己旧的观察并保留首次发现时间recordGapObservationsL171-L250保证重新观察绝不增加计数。观察只被替换、不因缺席被删除某次重分析没再提到某缺口是模型噪音而非会话变了所以旧观察不会被删掉。两条退出路径pruneGapLedgerL259-L285被覆盖即退休——记忆文件里出现了相似度 ≥ 0.6 的指令或某个 skill 的 description/正文能回答该缺口比如缺口恰好通过提取为 skill解决了条目整体退休不再 haunting 分析 prompt等待超期——从首次发现算起超过gapLedgerMaxAge默认90d仍未凑齐伙伴的观察过期删除。重分析不会刷新这个时钟避免永不老化。另外还有一层采样护栏台账里的历史观察只有当对应会话属于本次运行选中的样本时才参与计数src/commands/propose.js。这样超出maxTranscripts上限或时间窗口的旧观察既不能扭曲样本构成、又能在会话重新入选时继续提供佐证。 一次运行中台账参与的完整流程foldForRunsrc/commands/propose.js把整个顺序编排得非常讲究顺序本身就是一种设计过滤只取属于本次选中样本、匹配当前记忆文件哈希的新鲜证据record把本轮观察写入台账consolidate判定合并——刻意放在 record 之后让同一次运行平行发现的新缺口也有机会对齐prune放在合并之后因为被合并进来的旧观察证据文件还躺在磁盘上先剪枝会被它们加回来fold把台账摊平成观察列表ledgerGapObservations交给 src/fold.js 的foldEvidence聚类会话数 ≥minGapEvidence的聚类才有资格进入 synthesis 生成 ADD/REWRITE 提案。一句话总结在凑够佐证之前缺口完全不出现在提案里——它是静默积累的。⚙️ 相关配置参数在 src/config.js 中可看到两个直接相关的默认值也写在.backpassrc.json里minGapEvidence: 2—— 佐证门槛需要几个不同会话gapLedgerMaxAge: 90d—— 观察等待伙伴的最长寿命all可设为永不过期✅ 设计要点小结设计决策解决的问题台账按 (缺口, 会话) 持久化证据文件重写导致跨运行信息丢失引用 词法 判定合并 的三级身份判定模型重述让同一缺口对不上号会话去重 90 天过期 覆盖即退休防止双计、陈旧证据与僵尸条目仅计入选中样本的会话旧观察扭曲采样构成全程 fail-soft台账损坏重建、合并失败降级任何一环出错都不阻断主流程Gap Ledger 体现的是 backpass 整体的证据门控哲学小步、有界、可追溯——单次运行的教训可以很微弱但跨运行累积的、来自多个独立会话的复发现象才是记忆文件值得为之更新的理由。所有上述行为的回归测试集中在 test/gap-ledger.test.js值得想深入了解行为边界时一读。赞分享【免费下载链接】backpassYou dont write AGENTS.md. You train it with gradient descent.项目地址https://gitcode.com/gh_mirrors/ba/backpass点击查看免费下载相关推荐Bear --append 模式深度解析跨多次构建累积 compile_commands.json 的完整机制Bear append 模式深度解析跨多次构建累积 compile_commands.json 的完整机制 Bear 是一款为任意 C/C 构建生成 co开发工具CLILedger Docker部署跨平台运行会计系统的终极指南Ledger Docker部署跨平台运行会计系统的终极指南 Ledger是一款强大的复式记账系统提供命令行报告界面帮助用户高效管理财务数据。通过DockeCLI跨平台桌面应用开发完整指南一次编写多平台运行跨平台桌面应用开发完整指南一次编写多平台运行 还在为不同操作系统开发独立桌面应用而苦恼吗跨平台桌面应用开发技术让你使用单一代码库就能构建在Windows、操作系统虚拟化创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考