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

相关推荐
小林ixn6 小时前
从线性 RAG 到 Agentic RAG:用 LangGraph 搭一个会判断、会纠错、会兜底的检索闭环
langchain·llm·agent
故作春风6 小时前
Agent开发-页面流式效果(进阶)
agent
土木AI提效大古6 小时前
Vercel + Spaceship 全自动部署:8 分钟上线一个站,附 3 个坑的排查记录
人工智能
小蒋观天下6 小时前
网络抖动、乱序、丢包:UDP/RTSP/TCP对AI抓拍、轨迹跟踪的不同影响
大数据·人工智能·深度学习
移动开发者实验室6 小时前
被 App Store 截图折腾了几次后,我开源了一个 AI 截图生成工具
人工智能·开源
一只爱撸猫的程序猿6 小时前
全球出货第二,却不在 AI 的默认推荐里:一份悖论解剖报告
人工智能·python·产品
高洁016 小时前
大模型检索增强生成(RAG)的技术原理与架构设计
人工智能·深度学习·机器学习·django·迁移学习
数聚天成DeepSData6 小时前
两份名录里的同名机构,主键该怎么合并
人工智能·深度学习·机器学习·数据集·deepsdata
海宇数据6 小时前
零信任架构实战:基于海宇双人婚姻评估查询构建自动化配偶签约一致性审查网关
人工智能·ai·工具分享
悟天特斯6 小时前
安防一体化:从“各管各的“到“全局联动“
java·大数据·网络·人工智能·物联网