用 Codex 干活一直有个烦人的问题:上下文满了触发压缩(或者手动 /compact )之后,内建摘要是无差别转述,它不知道哪条工具输出是承重的。测试结果、报错栈这种东西经常被压成一句“测试全部通过”,之后模型就凭这句转述继续干活,或者再跑一遍工具把信息拿回来,费时费 token ,而且你根本不知道它丢了什么。 Claude Code 那边有 fast-jev-compaction ( tamaratran 写的),思路是压缩前用 TypeSafe 的 Jev 模型给消息打分,hook 直接返回新消息列表把压缩产物整个换掉,完全无损。我想在 Codex 上用同款,翻文档加扒二进制才发现 Codex 的 hook 协议做不到——PreCompact 只能放行或者拦停压缩,没有任何字段能把自定义结果提交回去。 所以换了个思路重写了一个,叫 jev-compact: 压缩前 PreCompact hook 把 transcript 里的工具调用挨个发给 Jev 打分(两个 noul 概率问题:这个调用本身还重要吗、它的输出还需要逐字保留吗),裁决落盘,然后照常放行压缩。压缩完成...