Hermes Agent 读文件太多导致 token 消耗高,先调任务范围,再看 file_read_max_chars。不要让它无差别读整个仓库,应该要求它先搜索定位,再只读取相关片段。
为什么文件读取会贵
文件内容会进入模型上下文,尤其是日志、构建产物、压缩后的代码、大 JSON、大 markdown 文档,很容易一次塞进几万 token。官方配置里 file_read_max_chars 默认用于限制单次读取字符数,大上下文模型可以提高,小上下文或本地模型建议降低。
马上能做的优化
- 让 Hermes 先用搜索定位关键词,再读取命中的局部文件。
- 要求它不要读取
node_modules、dist、build、大日志和缓存目录。 - 小模型场景把
file_read_max_chars降到更保守的值。 - 大文件让它分段读,并在每段后提取结论,不要一次全塞。
注意自动去重的边界
Hermes 会对重复文件读取做一定去重:同一文件区域没变时,后续读取可能返回轻量提示,而不是重复发送全部内容。但上下文压缩后,模型可能需要重新读取关键文件,所以你仍然要控制读取范围。
最好的提示方式是:“先列出你需要读取的文件和原因,等我确认后再读”。这能把 token 花在真正相关的上下文上,而不是让 Agent 用预算摸索路线。