上一次做 benchmark 遇到 Agent 读取文件的问题,http://t.cn/AXJOxrUy 然后做了分析和优化。按照当前 Codex/Claude 的实现,单文件最好保持在 500 行以内,这样可以保证 Claude/Codex 有需要的时候可以一次性加载进来。
Agent 读取文件的时候,读取的太长了就会触发压缩,它会做截取。如果正好是被截取部分有用,就会触发 LLM 再次读取。
Codex 没有专门的读取工具,用的是 shell 命令来读取。
Claude code 给了读取工具,读取文件的工具比 Shell 给的额度更宽松一些,但也有上限,但 Agent 经常会自己决定用 shell。
如果单行按照 50 chars 计算,Codex 大约 700 行左右,Claude shell 大约 600 行,Claude FileRead 大约 2000 行。 所以当前保守一些让文件保持 500 行内是最佳的。
发布于 上海
