[控场AI]
· 5 分钟阅读· 2,892 字

Magpie:统一管理所有AI编程代理的本地网关

Magpie:统一管理所有AI编程代理的本地网关

开源本地网关Magpie统一调度多个AI编程代理,减少订阅闲置。

Magpie是一个运行在本机3425端口的开源网关,旨在解决开发者同时为Claude Code、Codex、Gemini CLI等多个AI编程助手付费却频繁出现订阅闲置的问题。它通过改写代理配置文件中的Base URL,把请求统一交给本地网关,再完成协议翻译(OpenAI、Anthropic、Gemini格式互转,含流式输出、工具调用与推理内容)、路由组调度(顺序、轮换、智能三种模式)、意图路由和额度耗尽自动切换,使代理对后端变化完全无感知。它不同于售卖模型访问权的OpenRouter,而是本地调度层,还可将OpenRouter作为上游接入。文章同时提醒:读取订阅登录信息可能违反厂商条款,应关闭隐私设置中的订阅读取并优先使用API密钥;项目仅数周大、更新频繁且不接受PR,建议先在副项目验证。

开发者每月为多个AI编程助手付费,却常常在某个额度耗尽时发现其他订阅闲置。一个名为Magpie的开源项目试图解决这个问题:它在本机运行一个轻量网关,把所有代理的请求统一路由到不同模型或订阅上。项目上线不到一个月,GitHub星标已超过17000。

为什么需要统一网关

据YouTube频道MasaTech的演示,当前多数开发者的AI编程环境是割裂的:Claude Code只能对接Anthropic,Codex只能对接OpenAI,每个代理维护独立的配置文件、密钥和Base URL。

MasaTech用机场比喻这种状态——每架飞机都有专属跑道,一条跑道关闭,飞机只能盘旋等待。Magpie则像一座统一塔台,所有代理先与塔台通信,由塔台决定请求落到哪条跑道。

Magpie作为统一塔台调度所有代理请求

这个网关运行在本机3425端口,支持Claude Code、Codex、Gemini CLI、OpenCode、Cursor CLI、Klein等一长串代理。

一次请求的完整路径

MasaTech用一个牙科诊所预约应用的开发场景,逐步追踪请求从编辑器发出到答案返回的全过程。

配置改写:在Magpie的代理页面为Codex选定模型后,Magpie只改写Codex配置文件中一个键,注释、顺序、格式全部保留。Codex并不知道Magpie的存在,照常把请求发给本地网关。

协议翻译:Codex使用OpenAI的消息格式,但若希望由Claude模型回答,就需要转换到Anthropic格式;Gemini又是另一种格式。网关在飞行中完成翻译,包括流式输出、工具调用和推理内容。这正是Claude Code能跑在Kimi上、Codex能跑在DeepSeek广告上的原因。

不同厂商使用不同的消息格式,网关负责实时翻译

路由选择:在Magpie中,代理视为单一模型的模型集合称为路由组。顺序模式先用第一个模型,无法响应时切到下一个;轮换模式每轮切换到下一个成员;智能模式则挑选仍有额度且最早重置的订阅,减少套餐浪费。

意图路由:可选的小模型会先阅读每一轮新请求。写测试交给强模型,简单问题交给便宜模型,避免用顶级价格问一个函数叫什么名字。

额度耗尽时的切换:当Claude额度在中西部时间耗尽,路由组会切到下一个账号或模型,Codex完全感知不到错误。只要厂商的提示缓存仍有价值,对话就保留在回答它的账号上。

额度耗尽时路由组自动切换,代理无感知

用量看板:用量页面展示每个请求的token、缓存命中与按标价计算的成本。终端运行magpie quota可查看每个密钥和套餐的剩余量,并在额度窗口即将重置而使用率很低时提醒你。

提示缓存(Prompt Caching) 是 Anthropic、OpenAI 等厂商提供的一项优化机制:当请求的前缀(系统提示、工具定义、历史对话)与之前某次请求高度重合时,厂商可直接复用已计算好的 KV 缓存,跳过重复的预填充计算,从而显著降低延迟与费用(通常缓存命中的输入 token 按原价的 10%–25% 计费)。缓存的有效期一般为几分钟到数小时,且与具体账号绑定。因此当网关因额度耗尽切换账号时,新账号没有旧账号的缓存,首轮 token 成本会上升;这也是文中“只要厂商的提示缓存仍有价值,对话就保留在回答它的账号上”这一策略的直接动因——切换是一种成本权衡,而非无条件的容错。

与OpenRouter的区别

Magpie与OpenRouter并非同一类产品。OpenRouter是售卖模型访问权的云服务,而Magpie运行在你自己机器上,OpenRouter反而可以作为它的一个上游提供商接入。

上游提供商(Upstream Provider) 指网关在转发链中把请求再委托给的外部服务。Magpie 本身不售卖模型访问权,它只做本地调度,因此当本地没有可用密钥或额度时,可以把 OpenRouter、厂商官方 API,甚至另一个自建网关配置为上游,由它完成最后的鉴权与计费。这种分层让 Magpie 可以同时持有多条互不干扰的凭证来源,也让用户能够在“订阅账号”“自有 API Key”“第三方聚合服务”之间按合规性与成本自由组合,而不必改动任何代理客户端的配置。

使用前必须关掉的开关

MasaTech特别强调了一个设置项。为了发现你已经付费的套餐,Magpie会读取代理的登录信息,例如Claude Code和Codex的文件以及系统钥匙串。

如果不想这样,需要在设置→隐私中关闭订阅账号。原因在于,在自有应用之外使用订阅并不总是被允许——Claude Code的文档对此有明确说明。

订阅在自有应用外使用可能违反条款

MasaTech的建议是:路由组优先使用API密钥,或明确允许第三方工具接入的提供商。Magpie每天还会发送一次匿名使用统计,同样可以在隐私菜单关闭。

早期项目的风险

这个项目只有几周大,几乎每天发布更新,且不接受Pull Requests。MasaTech的建议是每日测试,并先在副项目上验证,再让它接触客户付费的工作。

项目能否长期维护、路由策略是否足够稳健,仍需时间检验。但它提出的问题真实存在:当多个AI订阅并行付费时,一个本地调度层确实能减少闲置浪费。

核心要点

  • Magpie是本地运行的AI代理网关,统一调度Claude Code、Codex、Gemini CLI等工具的请求。
  • 支持协议翻译、路由组、意图路由和额度耗尽自动切换,减少多订阅闲置。
  • 使用订阅账号前应关闭隐私设置中的订阅读取,优先使用API密钥以规避条款风险。
  • 项目早期更新频繁且不接受PR,建议先在副项目测试。

背景补充

Base URL 是 OpenAI 兼容客户端(Codex、Cursor CLI、OpenCode 等)配置中的一个字段,用来指定 API 请求实际发送到哪个域名。默认值指向厂商官方端点(如 https://api.openai.com/v1),把它改为 http://localhost:3425/v1 即可让客户端把流量交给本地网关。由于这些工具大多遵循 OpenAI 的 /chat/completions 或 /responses 接口约定,只要网关在本地复现同样的路径与方法,客户端就完全不需要修改代码或感知中间层的存在——这正是 Magpie 能做到“Codex 并不知道 Magpie 存在”的技术前提。

分享:

相关推荐