惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
D
Docker
腾讯CDC
J
Java Code Geeks
大猫的无限游戏
大猫的无限游戏
The Cloudflare Blog
Martin Fowler
Martin Fowler
MongoDB | Blog
MongoDB | Blog
博客园 - Franky
博客园 - 三生石上(FineUI控件)
Recent Announcements
Recent Announcements
F
Fortinet All Blogs
IT之家
IT之家
WordPress大学
WordPress大学
M
MIT News - Artificial intelligence
爱范儿
爱范儿
Microsoft Azure Blog
Microsoft Azure Blog
Vercel News
Vercel News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
小众软件
小众软件
N
Netflix TechBlog - Medium
T
Tailwind CSS Blog
Engineering at Meta
Engineering at Meta
博客园 - 【当耐特】

V2EX

我用 AI 写代码,但终端管理反而成了累赘——于是我做了 codux [调研] 各位在公司都用什么 ide 和 agent 写代码? 老运维 share 一个运维平台 新电脑 brew install node 之后,一个小设置可以提升对供应链投毒的防御 GLM-Coding 调用持续报错: z.ai 的 Lite 套餐几乎无法使用,官方 Pro/Max 是否稳定? 上海漕河泾内推,本组有 2 个 hc,一个后端,一个前端,预算都是 20k 左右,不打卡,氛围好 如果 V2EX 上有一组不永久保存聊天记录(比如只保存 7 天或者 24 小时)的聊天室,那么会开启哪些有用或者有趣的可能? gemini cli 貌似挂了,一直返回 403 第一次在自媒体上赚到钱 收集了最近在使用的低价 GPT, Gemini,邮箱等 AI 会员的小店合集 讨论个大实话:现在企业还在说 AI 编程提效 20%, 30%的,真的太落后,没用懂 AI。因为包括很多前沿公司,已经狂奔到提效 200%-500%的情况 [招聘][远程][币安] 前端/后端/QA/iOS/Android 至少 3 年以上经验 目前有大量 HC 欢迎投递 Chatgpt Pro 用量用不完的可以开这些设置 面试的时候好像遇到钓鱼了,给各位避个坑 cursor 年续费 22 号到期, 自动续费是否还是老的计次套餐呢 被两件破事毁掉的一下午,琐碎的内耗消磨人的精力 使用 Planet 存储 Codex 的会话或者重要信息 如果业务部门领导不要你开发功能,而是要求你教会它用 claude code 开发功能,你会怎么做? 分享一个 MacOS 接绿联 CM818 USB 转 DP 转接器使用感受 我的 HR 朋友 10 年老 Java ,非全大专,大家帮忙看看简历 开源了一个 AI 口语练习工具,音素级发音评分,完全免费可自部署 V2EX 上有哪些你觉得很有趣、印象深刻的妹纸? 字节为啥不出个国内版 Vercel? 有在大马的朋友吗? 问个运营商问题 你们在有领导的公司大群发过的最大胆的消息是什么 公司裁员,目前没有工作。想试试摆摊,做一个移动鲜啤打酒车 我的硬盘 Memblaze Pblaze 5 Linux 下不识别,给 Linux 内核提交了补丁, AI 说有望被合并 只有我一个人觉得 codex 不好用? 做了个 AI + 真人专家监督的广告投放平台 Auxora, 7 个品牌跑出 6x ROAS
一行代码,让 Claude Code / Gemini / Codex 接入任意 LLM
shuaijinchao · 2026-04-20 · via V2EX

大家好,我是帅进超,曾参与并主导过 Apache APISIX 、CNCF APIOAK 、Orange 等 API 网关的开发。最近我在做一个新项目 — Nyro,一个专为 Agent 设计的原生 AI 网关。


一、AI Coding Agent 的现状

OpenAI 、Anthropic 、Google 等各家一线 LLM 厂商都提供了自家的 AI Coding Agent —— Codex CLI 、Claude Code 、Gemini CLI 且迭代速度之快,几乎以周为单位在刷新,上周还是新功能,这周就已经全部成为了标配。

厂商不计成本的投入 Agent 的开发,这背后共同逻辑是:把开发者锁定在自家的模型生态内,完成从工具到模型的端到端闭环。而数据交互技术协议就是锁定工具与模型的一种重要手段,Claude Code 只走 Anthropic 协议,Codex CLI 绑定 OpenAI Responses API 协议,Gemini CLI 依赖 Google 自家的 GenerateContent 协议,工具越好用,对原厂模型的依赖就越深,迁移成本也越高。


二、AI Coding Agent 的使用问题

虽然各大 LLM 厂商都提供了功能强大、生态完善的 CLI 工具,但国内开发者来说,带来了几个现实问题:

原厂模型:网络和费用是门槛

Anthropic 、OpenAI 、Google 在国内均无法直接访问,需要代理,Anthropic 更是对国内访问严格限制;原厂旗舰模型的 API 百万 Token 输出价格均在 20 美元左右,开发场景的高强度使用成本是必须要考虑的问题。相比之下,国内的 DeepSeek 、GLM 、Kimi 、MiniMax 在价格和访问上有明显优势,部分模型的性能已经相当可观。

国产模型:协议支持好,但限速 / 配额是硬伤

好消息是,国内的 GLM (智谱)、Kimi (月之暗面)、MiniMax 都陆续跟进,提供了 OpenAI 兼容协议和 Anthropic 协议,接入 Claude Code 这类工具在技术上已经没有障碍。

坏消息是,各家推出的 Coding Plan 普遍有比较严格的限速和配额限制。真正重度使用下来,很容易碰到 429 报错、响应变慢、或者单日配额跑完等问题,用起来体验大打折扣。

Codex CLI & Gemini CLI 的协议壁垒:国产模型全军覆没

Codex CLI 走 OpenAI Responses API,Gemini CLI 走 Google GenerateContent ——这两套都是各家相对较新的接口规范。而目前国内主流模型提供商( DeepSeek 、GLM 、Kimi 、MiniMax 等)只跟进实现了 OpenAI Chat Completions 兼容层。这意味着,即使你有这些模型的 API Key ,也无法直接把它们接入 Codex CLI 和 Gemini CLI 。

三个工具,三套协议,三套配置

Claude Code 用 Anthropic 协议,Codex CLI 用 Responses API 协议,Gemini CLI 用 Gemini GenerateContent 协议。想把某个模型同时接入这三个工具,要么自己写协议转换程序,逐一修改各工具的配置文件 —— 格式不同、路径不同,换个模型还得重来一遍。


三、什么是 Nyro ?

Nyro 是一个桌面原生的 AI 网关。 它让 Claude Code 、Codex CLI 、Gemini CLI 等任意 AI 工具,无需改动任何配置,就能无缝接入 100+ LLM 提供商。Nyro 实现了 OpenAI 、Anthropic 、Gemini 等主流协议的毫秒级协议重写和跨协议工具调用适配。在此基础上,还提供负载均衡、语义缓存、访问控制和用量监控等能力。

Claude Code · Codex CLI · Gemini CLI · OpenCode
     OpenAI SDK · Anthropic SDK · Gemini SDK
              Any HTTP API Client
                      ↓
              Nyro AI Gateway
            (localhost:19530)
                      ↓
    OpenAI · Anthropic · Google · DeepSeek
    MiniMax · xAI · Zhipu · Ollama · ...

GitHub: https://github.com/NYROWAY/NYRO


四、使用场景对比

场景:把 DeepSeek V3 同时接入 Claude Code 、Codex CLI 、Gemini CLI

之前的做法

# 第一步:自己实现或找一个 Anthropic Messages → OpenAI Completions 的协议转换服务
# 第二步:改 Claude Code 配置
vim ~/.claude/settings.json

# 第三步:自己实现或找一个 OpenAI Responses → OpenAI Completions 的协议转换服务
# 第四步:改 Codex CLI 配置
vim ~/.codex/auth.json
vim ~/.codex/config.toml

# 第五步:自己实现或找一个 Google GenerateContent → OpenAI Completions 的协议转换服务
# 第六步:改 Gemini CLI 配置
vim ~/.gemini/.env
vim ~/.gemini/settings.json

# 三个工具,三套协议,五个配置文件,格式不同、路径不同,换个模型还得重来一遍。

用 Nyro 的做法

第一步:Providers → New ,填入 DeepSeek 的 Base URL 和 API Key
第二步:Routes → New ,设置虚拟模型名,选择 DeepSeek 作为目标
第三步:Connect → 选择 Claude Code / Codex CLI / Gemini CLI ,点击 Sync

后续更换模型或提供商,只需在路由配置中修改目标即可,客户端无需做任何调整。

三个工具、三套协议、五个配置文件 → 三步操作、一次同步、客户端零改动。


五、快速上手

安装

macOS (推荐)

brew tap nyroway/nyro
brew install --cask nyro

其他平台

# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/nyroway/nyro/master/scripts/install/install.sh | bash

# Windows (PowerShell)
irm https://raw.githubusercontent.com/nyroway/nyro/master/scripts/install/install.ps1 | iex

也可以直接从 GitHub Releases 下载对应平台的安装包,支持 macOS / Windows / Linux ,Intel 和 ARM 全覆盖。

安装完成后启动应用:

![Nyro 应用启动页面.png]( https://raw.githubusercontent.com/shuaijinchao/docs/master/images/Nyro 应用启动页面.png)


配置

第一步:创建提供商

点击 提供商 → 新增提供商,通过快捷选项选择目标提供商。可选供应商已预设基础配置,只需填写名称API Key,点击创建即可。

如果厂商的 Base URL 需要代理访问,可以在「系统设置 → 代理」中开启代理转发。

![Nyro 提供商创建页面.png]( https://raw.githubusercontent.com/shuaijinchao/docs/master/images/Nyro 提供商创建页面.png)

第二步:创建路由

完成提供商创建后,点击 路由 → 新增路由,填写名称虚拟模型 ID,选择目标提供商,点击创建即可。

路由支持以下进阶能力:

  • 负载均衡:配置多个目标供应商时,支持加权轮询和主备分级两种策略,满足不同场景下的调度需求
  • 访问控制:开启后需在 API Key 中创建访问密钥并绑定路由
  • 精确匹配缓存:基于请求级别的精确缓存,命中后由 Nyro 直接代应答(系统设置 → 精确匹配缓存 → 启用)
  • 语义相似缓存:基于语义相似度的缓存,支持本地 Embedding 模型(如 Ollama ),可自定义相似度阈值,命中后支持流式输出(系统设置 → 语义相似缓存 → 启用)

![Nyro 路由创建页面.png]( https://raw.githubusercontent.com/shuaijinchao/docs/master/images/Nyro 路由创建页面.png)

第三步:工具接入

完成路由创建后,点击 接入 → 工具接入 → 选择工具 → 同步配置

Nyro 会自动检测本机已安装的 AI 工具,生成对应的配置文件并写入正确路径,原配置自动备份。

![Nyro 工具接入页面.png]( https://raw.githubusercontent.com/shuaijinchao/docs/master/images/Nyro 工具接入页面.png)

同步完成后,打开终端启动对应工具,可以看到模型 ID 已更新为 Nyro 虚拟模型 ID ,Vibe Coding 开始。

![Nyro 终端工具运行效果.png]( https://raw.githubusercontent.com/shuaijinchao/docs/master/images/Nyro 终端工具运行效果.png)

代码接入

如果你是通过 SDK 或 HTTP 直接调用,点击 接入 → 代码接入 → 选择协议 → 选择路由 → 复制代码,即可获取对应语言的示例代码。

![Nyro 代码接入页面.png]( https://raw.githubusercontent.com/shuaijinchao/docs/master/images/Nyro 代码接入页面.png)

打开终端 -> 粘贴代码,即可进行验证。

![Nyro 终端执行示例代码.png]( https://raw.githubusercontent.com/shuaijinchao/docs/master/images/Nyro 终端执行示例代码.png)


六、服务端部署

Nyro 除桌面客户端外,同时支持服务器端部署,适合团队共享或生产环境使用。

GitHub Releases 下载对应平台架构的二进制文件:

![Nyro 发布平台架构列表.png]( https://raw.githubusercontent.com/shuaijinchao/docs/master/images/Nyro 发布平台架构列表.png)

Server 模式(带控制台 + 数据库)

./nyro-server-linux-x86_64 \
  --storage-backend postgres \
  --postgres-dsn "postgres://user:pass@host:5432/db"

启动后通过 http://127.0.0.1:19531 访问控制台,通过 http://127.0.0.1:19530 访问接入端点。

Standalone 模式(纯 YAML 配置,无控制台)

# config.yaml
providers:
  - name: openai
    endpoints:
      openai:
        base_url: https://api.openai.com/v1
    api_key: sk-xxx
 
routes:
  - name: gpt-4o
    vmodel: gpt-4o
    targets:
      - provider: openai
        model: gpt-4o
./nyro-server-linux-x86_64 --config config.yaml

Standalone 模式不启动控制台,启动后直接通过 http://127.0.0.1:19530 访问接入端点。

接入验证

启动后可通过以下方式验证三种协议均已正常工作:

OpenAI Completions

curl http://localhost:19530/v1/chat/completions \
  -H "Authorization: Bearer sk-00000000000000000000000000000000" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o",
    "messages": [{"role": "user", "content": "Hello"}]
  }'

Anthropic Messages

curl http://localhost:19530/v1/messages \
  -H "x-api-key: sk-00000000000000000000000000000000" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o",
    "max_tokens": 1024,
    "messages": [{"role": "user", "content": "Hello"}]
  }'

Google GenerateContent

curl http://localhost:19530/v1beta/models/gpt-4o:generateContent \
  -H "x-goog-api-key: sk-00000000000000000000000000000000" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{"role": "user", "parts": [{"text": "Hello"}]}]
  }'

最后

Nyro 目前还处于早期阶段,还有很多功能想做、还有很多细节值得打磨。

如果你在使用过程中遇到了问题,或者对 AI 网关有任何想法和建议,欢迎直接来留言评论或者去 GitHub 提 Issue 都行,我都会认真看并回复。

如果觉得这个工具对你有帮助,去 GitHub 点个 Star 是对开发者最直接的支持。

https://github.com/NYROWAY/NYRO