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】本地代理(收益分析)

相关推荐
火山引擎开发者社区3 小时前
技术速递|使用 GitHub Copilot CLI 构建 Emoji 列表生成器
人工智能
codefan※4 小时前
干掉“幻觉“实战:如何构建企业级知识图谱增强 RAG
人工智能·知识图谱
wukangjupingbb4 小时前
传统基于药物 SMILES 序列和蛋白质氨基酸序列的 DTI(Drug-Target Interaction)预测方法的缺陷
人工智能
沪漂阿龙4 小时前
Codex 额度重置周期变化:AI 编程免费试玩时代正在结束
人工智能
TickDB4 小时前
美股行情 API 接入避坑:REST 快照、WebSocket 推送、盘前盘后数据的边界
人工智能·python·websocket·行情数据 api
装不满的克莱因瓶5 小时前
深入理解卷积神经网络(CNN)——从原理到代码实践
人工智能·神经网络·cnn
完成大叔5 小时前
模块二,Agent知识图谱的工具链思考
人工智能
lauo5 小时前
ibbot手机发布:搭载poplang技术 + token节点经济,革新AI手机体验
人工智能·智能手机
咖啡星人k5 小时前
云端开发环境技术架构深度解析:从容器隔离到AI Agent集成
人工智能·架构
袋鼠云数栈5 小时前
从前端到基础设施,ACOS 如何打通企业全链路可观测
运维·前端·人工智能·数据治理·数据智能