33、【Agent】【OpenCode】本地代理(智能适配层)

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除

背景

上篇 blog
【Agent】【OpenCode】模型配置(配置 Qwen 模型)

分析了 OpenCode Zen 剩余的描述,比如 opencode/xxx 不只有 6 个免费的模型,还有更多的 GPT,Claude,Gemini 等其他众多收费模型,其模型托管在 A 国,所以之前一直分析讨论的数据安全合规,以及网络延迟是个问题,接着介绍了配置模型直连国内 API 的方法,以 Qwen 为例,首先在 OpenCode CLI 输入 /connect 连接供应商,这里选择的是 Alibaba(China),然后输入 API Key,其敏感信息保存在 auth.json(权限 600,只有管理员能看),接着在 OpenCode CLI 输入 /models 选择模型,其中以 Qwen-Plus 为例,发现输入简单的【你是谁】的问题都要消耗 1w+ tokens,即使 reasoning 配置成 false,依然也会消耗这么多 tokens,下面继续分析

OpenCode

OK,上篇 blog 把本土的模型给配上并使用了,其流量路径如下

下面准备在 OpenCode 和远端大模型 API 之间加一个适配层,也就是本地代理,由本地代理代为收发 OpenCode 给远端大模型 API 的消息和响应

用代理转发 OpenCode 到模型 API 的请求,虽然看似多此一举,但实际上能带来非常多实用且关键的好处,下面简单介绍下

  • 首先是协议/格式兼容性适配 :OpenCode 默认按 OpenAI API 格式发送请求,并且 OpenCode 模型库来源 https://models.dev/api.json,这里的模型库更新肯定比官方慢,比如虽然也是 Qwen-Plus,但是 DashScope 还提供了其历史版本 qwen-plus-2025-07-28,而这些历史版本的模型在 OpenCode 模型库是找不到的

想要在 OpenCode 通过 /models 切换模型也更不会有这些特定版本的模型

那么本地代理的第一个作用就出现了,由于 OpenCode 客户端是先将请求发送给本地代理,本地代理可以在转发前,自动重写请求体,比如在代理中修改

bash 复制代码
parsedBody.model = 'qwen-plus-2025-07-28'; // 将 qwen-plus 映射为 qwen-plus-2025-07-28

此时无需再 OpenCode 中填写 DashScope 特有的模型名,保持配置通用,也能用上供应商的特定模型

  • 其次是统一认证管理(安全&便捷) :如果直接在 OpenCode 中填写 DashScope Key,有两点不便
    1、Key 会明文暴露在 IDE 配置中(不安全) ,上篇 blog 【Agent】【OpenCode】模型配置(配置 Qwen 模型) 里有提到,敏感信息会存放在 auth.json,需要加权限进行限制
    2、换 Key 时,需要修改所有客户端配置

此时代理的第二个作用就出来了,客户端只需要填一个假 Key(比如 sk_proxy),然后代理在转发过程中,可以自动替换成真实的 DASHSCOPE_API_KEY,这样可以集中管理 Key,避免泄露,更换也方便

  • 此外,代理还可以收集请求,响应日志,方便调试:当 OpenCode 直连模型 API 时,用户看不到 AI 请求细节,出问题时难排查,并且想优化 Agent 也不方便

此时代理的第三个作用:可以自动保存每条请求,响应到日志文件里,方便调试,比如把请求内容,以时间戳为文件名保存下来

bash 复制代码
// 保存为 1712345678901.json
{
  timestamp: 1712345678901,
  request: { model: "qwen-plus", messages: [...] },
  response: { choices: [...] }
}

方便后面复现问题,分析 token 消耗,审计内容


OK,本篇先到这里,如有疑问,欢迎评论区留言讨论,祝各位功力大涨,技术更上一层楼!!!更多内容见下篇 blog
【Agent】【OpenCode】本地代理(收益分析)

相关推荐
bryant_meng2 小时前
【VLA】Vision Language Action
人工智能·深度学习·rl·vla·世界模型·vlm
墨10242 小时前
工具调用拆解:为什么给 Agent 加能力,不用重写循环
ai·agent·智能体·harness
ZPC82102 小时前
ROS 2 手眼标定完整方案
人工智能·算法·性能优化·机器人
起个名字总是说已存在2 小时前
github开源AI技能:UI UX Pro Max智能设计系统生成器
人工智能·ui·开源·github
Oflycomm2 小时前
高通公司与Neura达成合作,重注人工智能机器人领域
人工智能·机器人·高通·wifi7·wifi模组
撬动未来的支点2 小时前
【神经网络核心】张量、正向传播(空间映射)、反向传播(调整映射参数)
人工智能·深度学习·神经网络
互联网志2 小时前
具身智能:从炫技到实干,开启产业化新征程
人工智能
小垣2 小时前
java调用yolo26n.onnx模型输出图像推理检测
java·人工智能·深度学习·onnx
新知图书2 小时前
React的预构建creat_agent模块详解
人工智能·ai agent·智能体·langgraph