我如何在长时间智能体运行中轻松减少约90%的输入token消耗

Reddit r/AI_Agents 新闻

摘要

作者分享了一个实用技巧,通过提示缓存(prompt caching)在长时间智能体运行中将输入token成本降低约90%:将不变文本(系统提示、工具定义、上下文)放在每个提示的开头,以利用LLM提供商的缓存前缀。

我的开源智能体框架SmithersBot让我可以无人值守地长时间运行Claude Code和Codex,一次运行数小时。我使用的是每月100美元的Claude套餐和20美元的OpenAI套餐,所以我经常达到5小时的使用上限,于是开始寻找减少token消耗的方法。最简单的改进就是缓存。你只需将从不改变的内容(系统提示、工具定义、上下文)放在每个提示的最开头,并且每次都保持相同的顺序。其工作原理是,LLM基于下一个token预测运行,如果提示的开头部分与模型已经处理过的部分相同,它就可以将该状态作为检查点,从那里开始预测,而不需要重新预测直到该点的每个token。这就是为什么所有模型提供商对缓存输入都提供90%的折扣。如果你重发之前用过的提示,并将新信息放在末尾,那么重复的部分成本比你把相同的新信息放在前面、打破已见过顺序的情况要低90%。对于单次对话来说,这几乎没什么影响,但对于像我这样的智能体,它要对相同的上下文进行数百次调用,消耗就非常可观了。只需排列一次顺序,之后的每次调用都可以利用缓存前缀。你们是怎么处理这个问题的?我很想知道人们还有哪些减少token消耗、避免达到使用上限的方法。
查看原文

相似文章

API 中的提示词缓存

OpenAI Blog

OpenAI 推出提示词缓存功能,这是一项自动特性,通过在 GPT-4o、GPT-4o mini、o1-preview 和 o1-mini 模型上重用最近缓存的输入令牌,可将 API 成本降低 50% 并改善延迟。该功能会自动应用于超过 1,024 个令牌的提示词,无需开发者进行集成更改。