magpie:把一堆 AI Agent 的模型,收到一个地方

magpie:把一堆 AI Agent 的模型,收到一个地方

magpie 菜单栏面板

每天开 Claude Code 写文档,开 Codex 改代码,偶尔再用 Gemini CLI 查点资料。三个工具,三份配置,三个地方填 API Key,三种不同的模型命名格式。

最烦的不是重复劳动,是钱花了却用不上:这个月在 DeepSeek 充了值,想让 Claude Code 也吃上,得翻它的配置文件、改 base_url、改 model、重启,改错一个字符就报 401,报错了还不知道是哪一层的问题。

magpie 就是来收拾这个的。

它是个装在本机的应用,菜单栏常驻。你把 provider(API Key 或订阅账号)加进去,把 agent(Claude Code、Codex、Gemini CLI、OpenCode 之类)配好,之后所有模型切换都在一个下拉列表里完成。底下是一个跑在 127.0.0.1:3425 的本地网关,所有 agent 的请求都过它,它负责翻译成各家要的格式。

开源,MIT,仓库是 yetone/magpie,官网 usemagpie.ai。

它不是一个”套壳客户端”

这点得先说清楚,不然容易误解。

magpie 不改你的工作流,它不给你一个新的聊天窗口让你去那里对话。Claude Code 还是你原来那个 Claude Code,终端里敲 claude 进去,界面一模一样,工具调用一模一样。变的只是它背后问谁。

它做的是一件更底层的事:改写 agent 自己的配置文件。你去 Agents 页面,点 Claude Code 那一行的模型,选 deepseek/deepseek-v4-pro,magpie 就会把 Claude Code 配置文件里那个关键的键改掉,而且是原子写入,你的注释、字段顺序、缩进格式全部保留。

Agents 页面:每个 agent 当前挂的模型,一点就换

所以它不劫持你,它只是替你编辑那些你本来要手改的文件。

装

curl -fsSL https://usemagpie.ai/install.sh | sh

或者去官网下那个签名过的 Mac 包。Windows、Linux、Docker、Termux 都有,Linux 上还带 TUI 和 web UI。

卸载也是一条命令,而且会先把你的 agent 配置恢复原样再走:

curl -fsSL https://usemagpie.ai/install.sh | sh -s -- --uninstall

这个细节我挺在意的。很多这类工具装上去容易,卸下来之后你的 Claude Code 就废了,因为配置被改得面目全非还没备份。magpie 把还原当成安装流程的一部分,说明作者自己也在天天用。

三个词:provider、agent、group

搞懂这三个,剩下的都是界面操作。

provider 是模型从哪来。两种:一种是你自己的 API Key,DeepSeek、Kimi、智谱、火山、通义、SiliconFlow、Ollama、LM Studio……预置了一长串,选中粘贴 Key 就行。

Providers:预置了一长串厂商,也能自己填兼容地址

model 列表从 models.dev 拉,今早刚发布的模型下次刷新就出现在选择器里。

另一种是你本来就在付费的订阅:Claude、ChatGPT、GitHub Copilot、Gemini Code Assist、Grok。第二种是 magpie 最有意思的地方,后面单独说。

agent 是模型给谁用。magpie 只显示你机器上真装了的那些,不会给你塞一堆用不上的。每个 agent 可以挂自己的短名单,比如 Claude Code 只留三个模型,Codex 只留两个,省得每次在几十个里面翻。

模型选择器:provider/model 的形式,可搜索

group(路由组)是把几个模型打包成一个给 agent 用,中间坏了自动换下一个。这个也值得单独说。

订阅可以互相借

这是我觉得 magpie 真正打穿的地方。

你订阅了 Claude Pro,那你手上就有一堆 Claude 额度。问题是这个额度只对 Claude 自己家的工具友好。你想在 Codex 里用 Claude,或者拿 ChatGPT 的额度去喂 Gemini CLI,正常是做不到的。

magpie 里,一个你已经登录的 agent 本身就是一个 provider,可以给你的其他 agent 用。README 里的说法是:Claude 那条会去驱动本地真实的 claude 二进制,再通过 MCP 把你的工具桥接过去;ChatGPT 的模型则在其他 agent 里直接可用。

一个订阅,所有 agent 都能吃。这大概是它最实在的价值。

配套还有个细节:每日预热。Claude 和 ChatGPT 的额度是 5 小时滚动窗口,你可以指定 magpie 在几点帮你把窗口”开起来”,或者干脆在上一个窗口重置的瞬间自动开。这样等你早上坐下开始干活时,窗口是满的,不会因为你凌晨随手问了一句就白白消耗掉。

额度用完了,agent 不该知道

单个账号总有跑干的时候。magpie 有两种兜法。

一种是一个 provider 挂多个账号,这个用完自动切下一个。另一种是路由组:

模式 干什么
smart 在还有额度的订阅里,挑最快重置的那个,减少浪费
order 死磕第一个,不行了才走第二个
rotate 每轮换一个
usage 最少用的优先
pace 按”每周剩余额度 / 距离重置还有几小时”算,最宽裕的优先
Routing:每次请求落到了哪个账号、为什么

组里还能嵌套组。

嵌套路由:组里放组

还有 intent routing:让一个小模型读你这一轮问的话,测试、调试这类活儿派给强模型,随手一问派给便宜的。

Intent 路由规则:按每一轮在问什么来决定

Routing 页面能看到每一次决策的实时过程。

关键在它把这个过程做在网关里,agent 那边什么都不知道。正常情况下你会在 Claude Code 里看到一个红色的 429,然后手动切模型重跑一遍;现在它静默换了,你只看到回复。

当然,只有单个账号、也没建组的时候,没得换,错误还是会传到 agent。这个边界 README 里写得很直白。

隐私脱敏:这个我没在别处见过

agent 会把读到的东西塞进 prompt。一个 .env、一个配置文件、一段带了 token 的日志。这些内容原封不动地就发到厂商服务器了。你平时不会想到这件事,直到某天你把一份带生产密钥的配置丢给 agent 让它”看看哪里配错了”。

打开 Settings → Privacy 里的 masking(默认是关的),magpie 会在请求离开你电脑之前,把这些值换成一个占位符:

{{API_KEY_k3v9x2mq}}

回复回来的时候再换回去,流式文本和工具调用的参数都换,所以 agent 真要跑一条带 Key 的命令,拿到的是真 Key。

Masking:每个请求改了什么,和厂商实际收到的内容并排

几个设计上的讲究:

  • 同一个值永远对应同一个占位符。不然对话历史、prompt 缓存、thinking 签名全废,你等于每轮都在和一个失忆的模型说话。
  • 值只在内存里,不落盘。记录里只留类型、长度和前几个字符。
  • 脱敏开着但跑不起来时,请求直接扣住(503),绝不按原样发出去。
  • 除了规则能确定的东西(Key、私钥、token、邮箱、校验和能对上的卡号和证件号),还能装个跑在本机 CPU 上、1.6 GB 的小模型,去捞那些规则抓不到的姓名、地址、密码。
  • 每个值可以设成 Mask、Warn、Block 三档。

代价也是有的,而且很清楚:模型看到的是占位符,所以”这个 token 为什么被拒”这类关于值本身的任务就做不了了。那种值放进 Never mask。规则也可能误判,Masking 页面就是给你查这个的。

中间件:网关是能写代码的

如果只是转发,网关这层就浪费了。magpie 允许插件做 gateway middleware,三个钩子:

// alias.middleware.js — magpie plugin add ./alias.middleware.js
export function onRequest(body, ctx) {
  if (body.model === "fast") return { ...body, model: "deepseek/deepseek-chat" };
}

onRequest 改请求或直接拒掉,onEvent 看流式事件,onResponse 看完整回复。钩子抛错或者超时,请求按原样放行,不会把你卡死。

社区已经有一批现成的,思路基本是照抄 New API 那套 channel 配置:param-override(改/删/挪请求字段)、model-map(模型改名,回复里还声称原来的名字)、system-prompt(强制注入系统提示词)、word-guard(敏感词,拦掉或者打码)、think-tags(把 think 标签抽出来或塞进去)。

最后那个 think-tags,我看着有点感慨。之前为了”能不能看到思考过程”这个问题,我在网关里折腾了整整一天,四个方向来回试,最后发现真正的答案是这层代理本身也是成本。现在同样的事,一个插件加一行 options 就完事。

还有一堆东西

README 后半段基本是清单,挑几个说:

用量:token、缓存、推理和折算的钱
  • 用量和钱:token、缓存读写、推理、调用次数,按 list price 折算成美元或人民币,价格能自己改。每个 Key、每个订阅、每个账号的余额和窗口都有,快重置了还剩很多会提醒你。
  • Library:指令、MCP server、skill、subagent 写一次,magpie 按各家格式写进各自的文件,卸载时只删自己写的那部分。
  • 给任何模型加搜索:模型自己不能搜,就挂 magpie 的。Tavily、Brave、Exa、Firecrawl、You.com、DeepSeek、火山豆包、腾讯元宝、SearXNG 都行,按你拖的顺序问。一个 API 可以挂多个 Key,轮流用,最近被拒的排最后。这套还能作为 MCP server 给 agent 用,带 web_search 和 web_fetch。
  • 局域网共享:开一个开关,给每个客户端发一个命名的 gateway key,各自带每日/每周/每月的 token 和金额上限。
  • Remote magpie:笔记本可以直接用台式机上那台的 provider 和组,但 agent 还是给本机接线。
  • Profile:把当前所有 agent 的配置存成一个名字(“省钱”、“专心”),一句话整套切回来。

整体结构大概是这样:

magpie 架构:agent 在上面,网关在中间,provider 在下面

代价

说了这么多好处,也得说不好的。

第一,它是个常驻进程加一个本地端口。你多了一层要维护的东西,这层挂了所有 agent 一起挂。虽然它稳,但心理上你多了一个”哦对还有它在跑”的负担。

第二,脱敏和改配置都在本地做,意味着你得更信任一个二进制。它的隐私声明写在 README 最后(每天上报一次随机 id、版本、系统、以及用到了哪些 agent/provider/model,全是 magpie 自己的 id,不含名字 URL 账号 Key prompt;可以整段关掉或者 DO_NOT_TRACK=1)。我倾向于信,因为它代码开源、声明细到”合作方网站点击会经过 usemagpie.ai/go/… 计数、服务端不存 id 和地址”这种程度——愿意把脏细节写出来的项目,通常藏着的东西少。

第三,这个仓库不收 PR,只有维护者能开。想改要么提 Issue 说,要么自己 fork。这是作者的选择,不喜欢的话就是不喜欢。

第四,也是最实在的一条:如果你只用一个 agent、一个 provider、一个账号,你不需要它。 README 自己就是这么写的。这不是客套话,是认真的。为了一个不存在的痛点引入一层代理,纯亏。

什么样的人该用

我自己的判断标准很简单:数一下你手上有几个模型来源。超过两个,或者你在两个以上的 agent 之间切换,那 magpie 帮你省的时间就是实打实的。如果只有一个,去看点别的。

它解决的不是”AI 不够强”,是AI 太散了。能力早就溢出了,散在各个订阅、各个 Key、各个配置文件里,每次想用都得先做一次手工搬运。magpie 把这堆东西按一个统一的口径收起来,仅此而已。

有时候一个工具的价值,就在于它把一件本来要动脑子的小事,变成了不用想。


文中的界面截图来自 magpie 官方仓库(MIT),其余为实际使用拍摄。

参考:

  • 官网与下载:https://usemagpie.ai
  • 仓库:https://github.com/yetone/magpie
  • 文档:https://usemagpie.ai/docs/start
  • 插件市场:https://github.com/magpie-community/plugins

magpie:把一堆 AI Agent 的模型,收到一个地方
https://fengliangit.cn:9999/archives/magpie-introduction
作者
fengliang
发布于
2026年11月11日
许可协议