
在之前的文章 openrouter 调用Claude模型api注意事项 中说到,我在autoclaw中添加了openrouter里的opus 4.7模型,设置如下: 模型ID:anthropic/claude-opus-4.7 Base url: https://openrouter.ai/api/v1 接口协议:OpenAI API Key:(自己在openrouter中获取) 这个设置也是AI 搜索公开信息后告诉我的,这里用的协议,我奇怪为啥不用anthropic,AI说openrouter用的OpenAI。嘛、当时在autoclaw里也连通了,就没在意。 用了一段时间后,我发现费用烧得挺快,几轮对话,充的40美金就变30美金了,虽然知道Claude的模型就是这德性,但还是留意看了下openrouter的日志,结果发现每一条记录都是0.5美金、0.6美金,甚至还有0.7美金的。虽然当时小龙虾的上下文已达10万+token,但也不至于这么夸张的价格吧,不是说有缓存命中计费吗?

感觉上图这价格,应该是没启用缓存命中计费吧?如果真没启用缓存命中,那要如何启用? 于是,我请opus 4.7模型来帮我计算判断。它根据我输入输出token总量,以及余额变化情况,结合opus 4.7模型的官方报价,并对比了Claude官方api和openrouter api两处的情况,得出结论:
1、Claude官方api(即Claude开发者平台),在autoclaw中调用时,会默认开启缓存命中,收费已经是计算了缓存命中的。 2、上面截图的openrouter的api,根据计算,以及和Claude官方api的比对,是没有开启缓存命中的,每一条对话都是按完整的价格费用计算的(即按“5美金输入/Mtok,25美金输出/Mtok”计算),非常亏!
于是,问题就来了,为啥我上面openrouter中的Claude opus 4.7模型,会没有开启缓存命中? 我这个设置,可以正常连通openrouter的api,使用openrouter路由的Claude opus 4.7模型没任何问题。既然连通没问题、模型正常使用没问题,为啥不给我开启缓存命中?难道openrouter中,Opus 4.7模型缓存命中的开启,还得自己手动来开启?为啥Claude官方api中就不用我自己手动来开启缓存命中?如果真要自己手动开启,如何开? 带着一连串问题,我翻了翻openrouter的个人中心设置页面,发现在“Routing”设置项下,可以将服务商选择从默认的“Default”改为其他项目,我改为了“Price (cheapest first)”,然并卵,试验了几回合,依然每一条对话记录都是0.3~0.7美金,依然没有启用缓存命中。

于是,忍着烧钱的痛,我和opus 4.7模型一起研究了下openrouter,最终发现了相应的解决办法。因为opus 4.7用着贵,所以我并没有进行全部情况的测试,我这里就说说我测了的情况。
按我下面这种方式操作,在autoclaw(或其他小龙虾软件)中调用openrouter的Claude opus 4.7模型,可以顺利开启opus 4.7模型的缓存命中,大幅降低费用: 1、将autoclaw(或其他小龙虾软件)中的相关设置改成下面这样: 模型ID:anthropic/claude-opus-4.7 Base url: https://openrouter.ai/api/v1 接口协议:anthropic
2、不要让openrouter自己选择服务商,比如我上面截图里的“Amazon Bedrock”,起码在我测试期间,该服务商是未启用opus 4.7模型缓存命中的。你要限定服务商,只让openrouter路由到Anthropic,操作方法是在openrouter的个人账号页面“Privacy → Allowed Providers”中,只加入“Anthropic”,如下图:

3、完成上面两步设置后,你在autoclaw(或其他小龙虾软件)中调用openrouter的Claude opus 4.7模型时,就可以开启缓存命中了,费用大幅降低,对比一下,同样是10万+的token,费用从每条0.5~0.7美金,直接降到了0.1美金以下!

根据上面的费用信息,opus 4.7帮我计算了一下,我当时19美金的openrouter余额,如果没开启缓存命中,只够和opus 4.7模型对话50轮;开启缓存命中后,可以对话237轮! 不过,你注意看我上面的截图,在一堆缓存命中里面,也穿插了几条没有缓存命中的记录,这是怎么回事?这里还有一点要特别注意,这点也是写在Claude开发者平台官方文档里的,那就是: 4、每轮对话你不要超过5分钟!否则缓存会失效!你又得来一轮贵的,才能重新恢复缓存命中。下面是花花在每日记忆中给我的总结:


