3 行配置实现 Codex 多仓库记忆隔离:Hindsight 记忆银行布局实战
【免费下载链接】hindsightHindsight: Agent Memory That Learns项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsight
让 Codex 修 API 仓库里的一个查询 bug,它却先抛出前端仓库的 lint 约定——两个项目的会话写进了同一个记忆库,跨仓库记忆污染就是这么发生的。要做 Codex 记忆隔离,解法不复杂:多仓库记忆银行按仓库分库,每个工作目录一个库,再留一个固定共享库存真正跨仓库的规范,总共三行配置。
🏦 布局一览:一仓库一库 + 一个共享库
| 运行位置 | 银行 ID | 模式 |
|---|---|---|
~/projects/api | codex::api | 动态 |
~/projects/frontend | codex::frontend | 动态 |
| 其他新仓库 | codex::<目录基名> | 动态 |
| 团队规范 | team-standards | 固定 |
动态库的 ID 由dynamicBankGranularity里的字段用::拼接:agent取代理名(默认codex),project取工作目录基名,于是得到codex::api。配置了bankIdPrefix时前缀拼在最前;静态模式下则直接返回bankId配置值,缺省是codex,所有仓库共享一个库,这正是污染的来源。银行隔离是严格的——数据不跨银行流动,按仓库分库等于给每个代码库一份私有且跨会话存活的记忆。
最小可用配置:dynamicBankId 按仓库分库
把下面三行写进~/.hindsight/codex.json:
{ "dynamicBankId": true, "dynamicBankGranularity": ["agent", "project"] }两种模式的区别一句话:静态模式下银行 ID 恒为bankId配置值(缺省codex),所有仓库写同一个库;动态模式下 ID 由粒度字段拼出,每个工作目录自动拥有一个库。派生逻辑完整实现在 bank.py,含空格或 UTF-8 目录名的行为用例在 test_bank.py 里。配置按默认值、settings.json、用户配置、环境变量四层加载,后写覆盖前写(见 config.py#L110-L140),所以也能用HINDSIGHT_BANK_ID这类环境变量临时切换,不必动文件。
记什么、丢什么、钩子怎么触发
默认retainMode是full-session,会话结束整份 transcript 被 retain 并抽取事实——正常干活就能沉淀,下面的分类帮你判断哪些会话值得留。
值得沉淀:
- 仓库约定:构建系统、lint 命令、测试运行器、发布流程
- 脆弱区:部署前必须先跑的迁移、有超时毛病的端点
- 根因与决策:复发性 bug 的根因故事、重构接受的权衡
可以丢弃:
- 临时性草稿、一次性命令
- 寒暄问候等转瞬即逝的对话内容
钩子定义在 hooks.json,出错时优雅降级、不打断对话:
| 钩子 | 时机 | 动作 |
|---|---|---|
| SessionStart | 会话开始 | 预热服务器 |
| UserPromptSubmit | 提问前 | 召回注入上下文 |
| Stop | 每轮结束 | 会话入库 |
真正跨仓库的规范放固定bankId的共享库:关掉dynamicBankId、设bankId为team-standards,队友的 Codex 指向同一银行即可互相召回。
自检清单:隔离到底生效没有
- ✓ 同仓库开新会话问上次沉淀过的约定或决策,能召回——这是基本盘
- ✓ 换个仓库问同样的问题,旧答案不应浮现
- ✓
dynamicBankId确认为true,且同一仓库两次运行派生出相同的银行 ID - ✓ 测试期把
retainEveryNTurns调低:full-session模式下会话没结束,记忆可能还没入库 - ✗ 别把团队规范只写进按仓库银行——跨切标准必须进固定共享库
- ✗ 别指望 API 仓库召回前端仓库的上下文——隔离是严格的,这是特性不是缺陷
- ✗ 所有仓库继续堆在默认
codex库——仓库越多噪声召回越狠,召回冒出别的项目内容就是该拆的信号
钩子没装好或要查完整配置表,看 Codex 安装指南 和 Codex 集成 README。
【免费下载链接】hindsightHindsight: Agent Memory That Learns项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsight
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考