opencode 逆向/兼容 A社渠道上下文不准确解决方案

因为 opencode 现在依赖的库 @ai-sdk/anthropic 的逻辑是 从开头的 message_start 读 input_tokens, 末尾的 message_delta 读 output_tokens, 但大部分逆向/兼容渠道在最后的 message_delta.usage 中返回真实的 input_tokens, 所以导致上下文不一致

修复方案:

  1. 使用自定义 SDK, 我单独改了一版2.0.57, 修复了 input_tokens 的问题, 发布到了 npmjs @hank9999/ai-sdk-anthropic-v2-modified
    在配置文件里自定义 渠道 SDK 里就可以了正常了
    "npm": "@hank9999/ai-sdk-anthropic-v2-modified"

PS: 目前版本号: 2.0.57-patch-1

  1. 等待提交的 PR 合并, 等PR合并 bakcport 到 v2 再被 opencode 更新可能要等好久…
    fix(anthropic): read real output_tokens in message_delta block by hank9999 · Pull Request #11611 · vercel/ai · GitHub
5 个赞

感谢大佬分享!

大佬,有你世界美好

我去 大佬!不过我现在用好像上游不炸不会报什么问题诶反倒是openai response的有的会话会报store的问题