GitOfThoughts:可版本控制的推理与可回放、比较和合并的智能体记忆
摘要
GitOfThoughts将智能体的推理树存储为git仓库,支持回放、比较和合并。该论文测试了多种记忆载体,发现记忆除了对近似重复问题外,并不能提升新问题的准确性。
arXiv:2606.14470v1 公告类型:新
摘要:大语言模型(LLM)的推理是短暂的:思维链随着上下文窗口消失,被剪枝的搜索分支不留记录,记忆缓冲区无法进行比较、合并或审计。其他所有复杂的软件过程(代码、基础设施、数据、实验)都已实现了版本控制,但推理却没有。我们提出了GitOfThoughts,它将智能体的推理树存储为git仓库:每个经过评分的思维都是一个提交,评分是注释,结果是标签,检索则是智能体自身历史上的“git log”。这使得推理可以在近乎零工程成本的情况下跨智能体进行回放、审计和合并。
我们随后提出了一个更难的问题:任何载体上的记忆是否真的能提高准确性?在五种载体(无、Markdown、向量、图、git)、两个基准、两个模型规模和预先注册的复制实验中,对于新问题的答案是否定的。没有一种记忆格式能可靠地提供帮助,一个早期有希望的结果也在其自身的预先注册复制中瓦解。只有在我们所谓的可复制性阈值以上,记忆才起作用:当检索到的案例与当前问题高度相似(相似度 >~ 0.8)时,准确性大幅提升;低于该阈值则毫无作用。收益在于答案检索,而非方法迁移:一个4.5倍更大的模型使近似重复的收益翻倍,但仍然无法从工作示例中提取出可迁移的方法。我们发现的唯一通用杠杆是测试时采样。因此,以git作为载体的优势在于准确性持平下的可审计性、来源可追溯性和可合并性。我们记录了一个撤回的结果和一个被反驳的假设,以此树立我们所坚持的评估标准。
查看缓存全文
缓存时间: 2026/06/15 09:12
# 版本控制的推理与可回放、差异对比和合并的智能体记忆
来源:https://arxiv.org/html/2606.14470
Pavan C Shekar Abhishek H S Aswanth Krishnan QpiAI, 印度班加罗尔 \{pavan\.s, abhishek\.hs, ashwanth\.krishnan\}@qpiai\.tech
###### 摘要
大型语言模型(LLM)的推理是短暂的:思维链随着上下文窗口消失,被剪枝的搜索分支不留记录,记忆缓冲区无法进行差异对比、合并或审计。其他所有复杂的软件过程(代码、基础设施、数据、实验)都是版本控制的;但推理不是。我们提出**GitOfThoughts**,它将智能体的推理树存储为 Git 仓库:每个被打分的思考都是一个提交,分数是注释,结果是标签,检索是通过 `git log` 在智能体自身的历史中进行。这使得推理可以回放、审计,并且几乎以零工程成本实现跨智能体合并。
接着我们提出一个更困难的问题:记忆,在任何**载体**中,真的能提升准确性吗?在五个载体(无、Markdown、向量、图、Git)、两个基准、两个模型规模以及预先注册的复现研究中,对于新问题的答案是**否定的**。没有任何记忆格式能可靠地提供帮助,并且一个早期有希望的结果在其自身的预注册复现中崩塌了。记忆只有在达到我们所说的**可复制性阈值**时才有价值:当检索到的案例与当前问题几乎完全重复时(相似度≳0.8),准确性会急剧提升;低于此阈值,则毫无效果。其增益是答案检索,而非方法迁移:一个规模大 4.5 倍的模型将使接近重复案例的收益翻倍,但仍无法从工作示例中提取出可迁移的方法。我们发现的唯一通用杠杆是测试时采样。因此,将 Git 作为载体的理由在于**准确性持平的前提下**的可审计性、来源追溯和可合并性。我们记录了一个已撤回的结果和一个被证伪的假设,以此作为我们对自己设定的评估标准的模型。
## 1 引言
现代软件工程建立在这样一个普遍的载体之上,以至于它已变得不可见:对非平凡代码库的每一次更改都是一个不可变的、父链接的、内容寻址的对象,存在于版本控制系统中。基础设施即代码、科学数据集和实验跟踪也是如此 [27 (https://arxiv.org/html/2606.14470#bib.bib27)]。**推理**是剩下的异类。当思维链提示 [21 (https://arxiv.org/html/2606.14470#bib.bib21)] 过期时,其步骤就消失了;当思维树智能体 [24 (https://arxiv.org/html/2606.14470#bib.bib24)] 剪枝一个分支时,被剪枝的推理不留记录;当 Reflexion [16 (https://arxiv.org/html/2606.14470#bib.bib16)] 写下自我批评时,那个缓冲区没有差异对比、没有合并、没有签名作者,也没有办法让第三方验证智能体认为发生了什么。
我们认为这种短暂性是一个结构性的阻碍,而非修饰性的。它阻碍了**可重现性**(重放“智能体在第 17 步想了什么?”)、**审计**(检测训练-测试泄露或黄金答案记忆)、**记忆迁移**(结合两个智能体的经验)以及**事件审查**(回溯一个自信的错误答案意味着重新运行它,而不是阅读其历史)。
本文检验了两个可证伪的假设。**H-载体**:一个版本控制的推理载体在准确性上与传统的记忆存储持平的同时,提供操作价值(回放、审计、差异对比、合并)。**H-记忆**:跨问题的记忆能提高智能体在新问题上的准确性。GitOfThoughts 是实现两者的工具:推理树是一个 Git 仓库(§3 (https://arxiv.org/html/2606.14470#S3)),并且一个可插拔的记忆接口让我们在固定智能体的同时只更换载体。本文的大部分内容是对这些假设进行的受控、预注册评估,其结果重塑了我们对该领域应如何讨论智能体记忆的看法:
1. **H-记忆:在新问题上被拒绝**。在两个基准(GPQA-Diamond、MATH-500)、两种迁移机制(跨问题、跨回合)、两个骨干模型以及多达 n=500 的情况下,**没有任何**记忆载体能可靠地提高新问题的准确性(§4 (https://arxiv.org/html/2606.14470#S4))。一个在 n=40 时看起来有希望的 +15 个百分点 Git 趋势在其自身的预注册复现中未能成立。
2. **零假设失效之处:可复制性阈值**。相似度扫描表明记忆**确实**有帮助,一旦检索到的案例是测试问题的接近重复(余弦相似度≳0.8),准确性会急剧提升(+12 至 +13.5 个百分点)。低于此阈值,则毫无效果。其增益是答案检索,而非方法迁移,并且一个预注册的、强度高 4.5 倍的骨干模型并没有改变这一点:规模**加剧了**可复制性步骤(接近重复案例的增益为 +22.5 至 +28.5 个百分点),而方法带则依然无效(§5 (https://arxiv.org/html/2606.14470#S5))。这一单一结果解释了论文中所有的零结果,并界定了智能体记忆何时有价值:用于重复性工作负载,而非新问题。
3. **什么能提高准确性**。测试时采样(自一致性,n=500 时为 +3.4 个百分点)和基础模型强度。我们自己在 GPQA 上的系统 headline(47.0% vs. 33.0%)来自于 MCQ 感知扩展加上大得多的计算预算,我们明确将其标记为一个混淆因素,而不是声称是记忆的胜利(§6 (https://arxiv.org/html/2606.14470#S6))。
4. **H-载体:得到支持**。Git 提供了可审计性、来源追溯、对推理文本的逐行差异对比、确定性回放和可合并的记忆,且与其他所有载体的准确性持平,绝对成本很小(约 15 ms/写入;§3 (https://arxiv.org/html/2606.14470#S3)、§3.4 (https://arxiv.org/html/2606.14470#S3.SS4))。
在整个过程中,我们记录了一个我们发现的测量错误、一个我们撤回的结果,以及一个被数据证伪的我们自己的假设。我们相信,严格建立的否定结果,连同其完整的来源一起报告,是一流的贡献,而我们提出的载体正是使这种报告变得廉价的工具。
#### GitOfThoughts 不是什么。
我们不声称有新的树搜索算法;外部思维树和内部 ReAct [25 (https://arxiv.org/html/2606.14470#bib.bib25)] 循环是最小足够的管道。我们不声称 Git 是唯一有效的载体,只认为它是可用的最成熟、操作最丰富、部署最广泛的内容寻址存储。论点是:**推理是最后一个未版本化的软件过程;GitOfThoughts 对其运行了 `git init`。**
## 2 相关工作
**迭代推理**。ReAct [25 (https://arxiv.org/html/2606.14470#bib.bib25)]、Reflexion [16 (https://arxiv.org/html/2606.14470#bib.bib16)]、Self-Refine [9 (https://arxiv.org/html/2606.14470#bib.bib9)] 和自一致性 [20 (https://arxiv.org/html/2606.14470#bib.bib20)] 丰富了单问题追踪,但将它们保留在短暂的、内存中的结构中,这些结构在回合结束时消失,并且不暴露任何迁移操作。
**树搜索**。思维树 [24 (https://arxiv.org/html/2606.14470#bib.bib24)]、LATS [30 (https://arxiv.org/html/2606.14470#bib.bib30)]、RAP [3 (https://arxiv.org/html/2606.14470#bib.bib3)] 和 ReTreVal [6 (https://arxiv.org/html/2606.14470#bib.bib6)] 通过反思、MCTS、规划或验证以及跨问题记忆扩展了搜索,但在每一个中,树都是一个在进程退出时释放的 Python 对象;GitOfThoughts 为这个家族提供了一个持久的、版本化的载体。
**长期记忆**。Voyager 的技能库 [18 (https://arxiv.org/html/2606.14470#bib.bib18)]、生成式智能体的观察流 [13 (https://arxiv.org/html/2606.14470#bib.bib13)]、MemoryBank [29 (https://arxiv.org/html/2606.14470#bib.bib29)]、MemGPT [12 (https://arxiv.org/html/2606.14470#bib.bib12)]、ExpeL [28 (https://arxiv.org/html/2606.14470#bib.bib28)]、CLIN [10 (https://arxiv.org/html/2606.14470#bib.bib10)]、Mem0 [1 (https://arxiv.org/html/2606.14470#bib.bib1)]、A-MEM [22 (https://arxiv.org/html/2606.14470#bib.bib22)] 和 TextGrad [26 (https://arxiv.org/html/2606.14470#bib.bib26)] 都使用了定制的侧存储。我们将这个格局映射到我们的 {Markdown、向量、图} 分支上,并添加 Git 作为版本化的载体。GitOfThoughts 在载体上有所不同:它的记忆**就是**推理 DAG 本身,在一个内容寻址的 VCS 中。据我们所知,没有先前的工作将 LLM 智能体的提交日志视为其运行时记忆,也没有经验性地比较 VCS 与向量/图存储作为推理记忆载体。
**测试时扩展**。自一致性 [20 (https://arxiv.org/html/2606.14470#bib.bib20)]、多智能体辩论 [2 (https://arxiv.org/html/2606.14470#bib.bib2)] 和基于验证者的最优 N 选择 [17 (https://arxiv.org/html/2606.14470#bib.bib17)] 用计算换取准确性;最近的工作发现辩论主要改善个体预测,而裁决是困难的部分,这与我们的“选择器是瓶颈”的结果一致(§6 (https://arxiv.org/html/2606.14470#S6))。
**上下文学习机制**。我们的可复制性发现与证据相关,该证据表明演示通常通过任务识别和表面格式而不是方法内容起作用 [11 (https://arxiv.org/html/2606.14470#bib.bib11)]:在我们的控制分支中,检索到的工作示例的**内容**几乎不重要,除非该示例是可复制的,这是该 ICL 结果的记忆载体类比。
**基准**。GPQA-Diamond [15 (https://arxiv.org/html/2606.14470#bib.bib15)](研究生级别、“谷歌证明”的多项选择)、MATH-500 [5 (https://arxiv.org/html/2606.14470#bib.bib5)] 和 ScienceWorld [19 (https://arxiv.org/html/2606.14470#bib.bib19)],其中 SwiftSage [8 (https://arxiv.org/html/2606.14470#bib.bib8)] 和 CLIN 报告了跨回合学习。
## 3 设计:推理作为版本化的 DAG
起始观察是,推理树共享了 Git 被设计的每一个结构不变性:不可变节点、父链接、通过哈希进行内容寻址、标记、分支和搜索。表1 (https://arxiv.org/html/2606.14470#S3.T1) 给出了一对一的映射;图1 (https://arxiv.org/html/2606.14470#S3.F1) 显示了它的实际运行。Git 提供的每一个属性(不可变历史、分布式复制、密码学可验证性、三方合并、内容定义的重复数据删除、数十年的工具支持)都成为推理追踪的一个属性,且工程成本几乎为零。
表 1:推理概念 ↔ Git 原语。请参阅标题
图 1:推理树是一个 Git 仓库。每个被打分的思考都是一个包含作者、时间戳和内容哈希元数据的提交;分数是 Git 注释;验证结果是标签(success\_*, failed\_*);被剪枝的尝试保留在历史中而不是消失。获胜路径合并到 main 分支,无答案的经验被提炼到长寿命的 memory 分支,检索是通过 `git log`(--grep, -S, 标签过滤器)在智能体自身的历史中进行。右侧:这带来的操作属性。底部:从探索到检索的端到端流程。
### 3.1 为什么不是数据库,或者带 grep 的 JSONL 日志?
一个自然的反对意见是,SQLite、一个向量存储,或者最强的现代稻草人论点——**一个只追加的 JSONL 日志加上 ripgrep 和 SHA-256 哈希**——可以扮演同样的角色,而且更快。我们认真对待这一点,因为 JSONL 稻草人廉价地复制了 Git 的许多功能:只追加历史、内容哈希和词汇检索。Git 唯一独特提供的剩余部分正是操作层:(i)一个经过测试的**三方合并**及冲突浮现,这是结合两个智能体记忆的唯一结构独特操作;(ii)签名作者(`commit -S`)和原生 refs/tags;(iii)通过内容寻址和 `git bundle` 实现比特一致的重现;(iv)免费的 pack-file 重复数据删除;(v)一个无与伦比的工具生态系统(blame, bisect, 托管, CI),这是定制日志必须重建的。这些是操作性的论点,我们这样对待它们。经验性问题(固定智能体并仅更换载体,Git 是否像一个语义索引一样有用且成本如何?)在 §4 (https://arxiv.org/html/2606.14470#S4) 中正面回答:没有载体能在新问题上获得准确性,因此操作属性成为决定性因素。我们注意到,合并操作,Git 最强的结构差异化优势,现在有了功能性演示:一个通过中央裸仓库进行的跨进程合并端到端运行,并且注入的矛盾教训浮现为合并冲突,而简单的拼接会默默地保留它们(§6.3 (https://arxiv.org/html/2606.14470#S6.SS3))。合并后的记忆是否也能帮助**准确性**是一个仍在进行的预注册实验(§9 (https://arxiv.org/html/2606.14470#S9))。
### 3.2 推理流程
产生节点的搜索机制是故意常规的。**外部循环**:一个深度为 1、分支因子为 4 的思维树;对于多项选择问题,四个根子节点是四个候选答案(A/B/C/D),模型为每个辩论;这个**MCQ 感知扩展**被证明是系统中最大的单一准确性杠杆。**内部循环**:每个节点运行一个 ReAct 循环(最多 3 步),带有一个计算器、一个 sympy 求解器和一个 pulp LP 求解器;在基准模式下禁用网络搜索。**评分**:s = 0.6 * s_local + 0.4 * s_cross;最佳子节点被验证,标记为 success/best 或 failed,并且最多允许一次带有类型化失败上下文的重新扩展。评分和标记步骤正是 GitOfThoughts 与普通思维树的不同之处。
### 3.3 Git 原生记忆
每个问题在其自己的短暂仓库中解决。一个“提交时评分”钩子为每个节点写入四个文件(thought.md, scores.json, trace.jsonl, metadata.json),用结构化消息提交,附加包含分数的 Git 注释,并标记结果。master 分支累积会话树;一个长寿命的 memory 分支保存跨问题的见解。检索仅使用标准 Git:关键字(--grep)、内容(-S pickaxe)、结果过滤器(`git tag -l 'success_*'`)、边界(`git log master..memory`),并按置信度加权分数 ρ = α * s_comb + β * tag + γ * recency 排序,其中 (α, β, γ) = (0.7, 0.2, 0.1)。
### 3.4 可审计性属性
这些是载体的结果,而不是增加的工程。**可回放性**:任何 SHA 通过 `git checkout` 重建完整的推理状态。**事件审查**:`git diff success_X failed_Y -- thought.md` 给出实际推理文本的逐行差异。**可合并记忆**:`git fetch peer && git merge peer/memory` 同步两个智能体的经验,浮现冲突供裁决。**可搜索档案**:10,000 个会话就是 10,000 个仓库,可通过一个 shell 循环查询。**通过 `git log -S` 实现公平性**:我们使用框架自身的原语审计我们自己的 GPQA 运行(表2 (https://arxiv.org/html/2606.14470#S3.T2)),这是外部审查员会使用的相同原语。本文中的预注册本身就是 Git 提交:更强模型复现的决策规则在 32B 模型服务第一个 token 之前就已提交,并且提交历史就是审计追踪。
表 2:公平性审计(GPQA-Diamond)。每行是一次 Git 调用。
## 4 记忆问题:一个稳健的零结果
跨问题记忆,在任何**载体**中,是否提高新问题的准确性?我们通过三个逐步升级的实验来回答,所有实验都在一个接口后面,带有预注册的假设。**阅读指南**:n=40 的结果(§4.2 (https://arxiv.org/html/2606.14470#S4.SS2)–4.3 (https://arxiv.org/html/2606.14470#S4.SS3))是**探索性的**(它们的 ±~12 个百分点置信区间只能检测到大效应),并且存在是为了生成假设。相似文章
git-mem: 使用 git 存储代理记忆
git-mem 是一个面向 AI 代理的记忆解决方案,利用 git 和 redis 实现高性能和审计日志,包含一个 web UI 和极少的依赖项。
rohitg00/agentmemory
agentmemory 是一个开源的持久化记忆层,专为 AI 编程智能体(Claude Code、Cursor、Gemini CLI、Codex CLI 等)设计。它通过知识图谱、置信度评分和混合搜索技术,借助 MCP、Hooks 或 REST API,为智能体提供跨会话的长期记忆能力。该项目基于 iii 引擎构建,无需外部数据库,提供 51 个 MCP 工具。
大家是如何处理 AI 智能体的长期记忆 + 回放/调试问题的?
一位开发者探讨了当前 AI 智能体记忆系统的局限性,并提出了一款具有片段存储和回放调试功能的新记忆层工具,希望获得社区的验证。
@_avichawla:为你的Agent构建类人记忆(开源)!每个智能体和RAG系统在实时知识方面都面临挑战……
Graphiti是一个开源工具,通过持续演进且具有时间感知的知识图谱,为AI代理构建类人记忆,相比MemGPT,准确率最高提升18.5%,延迟降低90%。
智能体记忆是数据库吗?重新思考长期AI智能体记忆的数据基础
本文重新思考长期AI智能体记忆的数据基础,认为当前的数据库范式存在不足。它引入了受控演化记忆(GEM),一种包含状态级别操作符和正确性条件的形式化方法,并提出了一个名为MemState的原型,构建在属性图后端之上。