它解决什么问题
Hugging Face 开源了 relore(REpository LORE),目标是给编码 agent 一份「仓库记忆」:把仓库历史里散落在 issue、PR 和评审评论里的决策,连回当前代码。动机来自一个真实案例——2026 年 9 月 8 日 Transformers 的一个 issue(GPTNeoXJapanese 在 rotary_pct 不等于 1.0 时因 RoPE 忽略 partial_rotary_factor 而崩),一天内有人给出正确诊断、维护者回复「很欢迎 PR」,两天内两人开了修复 PR;但他们的 CI agent 差点写出第三个补丁,因为相关信息散在不同 issue、PR 与评论里而且互不链接。
几个关键能力
- 区分「谁说了什么」:把维护者的决定与贡献者的猜测区别对待,默认把机器生成内容排除在证据集之外。
- relore inflight <issue>:这个 issue 有没有人在修。
- relore thread:这段讨论里到底谁说了什么。
- relore search --trust authoritative:只在可信来源里检索。
- relore defs / copies:用 tree-sitter 索引 Python 符号,实测用约 5% 的 token 就能得到比通读文件更好的概览。
- relore why <file:line>:沿 git blame 追到引入这行的 PR,并浮出该行周围的评审评论。
为什么「默认排除机器生成内容」重要
agent 自己写下的结论和人类维护者的决定,在可信度上不是一回事。把两者混在一个证据池里,agent 会用自己上一轮的猜测去支撑这一轮的判断,错误会自我强化。relore 的默认设置是只把人的决定当权威证据,机器生成的内容要单独看待。
怎么试
代码以 Apache-2.0 放出,只在摄取阶段访问 GitHub,之后的查询都走本地 HTTP API,适合放进内网环境,已经在 Transformers 等多个 Hugging Face 项目内部使用。最小验证路径:对你有历史包袱的那个仓库跑一次 why,看它能否把某一行代码追回当初的评审讨论。
给 agent 的记忆里,人类的决定和机器的猜测必须分开放。