一个面板管住 29 个 AI 编程 Agent:Casbin Gateway 的配置统一、协议互转、用量统计与权限管控

装了五个 AI 编程 Agent 之后,我发现真正的麻烦不是用它们,而是管它们。

Claude Code、Codex CLI、Cursor、Gemini CLI、opencode 同时装在一台机器上,每加一个新的,就多一份要伺候的配置:换个供应商要挨个改 ~/.claude/settings.json~/.codex/config.toml~/.gemini/settings.json,三个文件三种格式;同一个 MCP Server 要在每个 Agent 里各装一遍;这个月一共烧了多少钱,每家后台各看各的,本地跑的模型根本没人统计。

所以有了 Casbin Gateway:一个本地运行的 AI 编程 Agent 管理网关,把机器上所有 Agent 收进同一个面板。Apache License 2.0,Go + React,编译成单个二进制,Windows / Linux / macOS 全平台。

GitHub:https://github.com/apache/casbin-gateway

一、它解决什么问题

一句话:它不是又一个 Agent,它是管 Agent 的那个东西。

启动之后做三件事:

  1. 扫描本机------读用户目录、安装路径和 PATH,把机器上所有编程 Agent 找出来,包括手动解压到某个非常规路径的那个(找不到还能手动指定位置)。
  2. 接管配置------供应商、MCP、技能、提示词、权限统一在一个页面上修改,Gateway 负责翻译成每个 Agent 自己的配置格式写回去。写入前可以 Preview,写错了可以 Restore。
  3. 充当中间人(可选) ------让 Agent 的流量走 http://localhost:17000,于是每一条请求、每一个 prompt、每一次工具调用和花费,全部留在本机。

目前识别 29 个 Agent 客户端,包括 Claude Code、Codex CLI、Gemini CLI、Cursor、opencode、Qwen Code、Kimi Code CLI、Windsurf、Cline、iFlow、CodeBuddy、Zed、Continue、Aider、goose、Trae、Droid 等。行为监控、换供应商、MCP、技能、提示词、会话、安装这七项能力对每个 Agent 单独标注,支持不到的地方写「---」,不写「即将支持」。

模型侧预置 44 家厂商:OpenAI、Anthropic、Gemini、DeepSeek、Kimi、智谱、通义、火山、硅基流动、OpenRouter、Ollama、vLLM 等,也可以直接填写任意 OpenAI / Anthropic 兼容的 base URL。

二、一处修改,全体生效

在 Providers 页面添加一个供应商,在 Agents 页面点一下绑定,Gateway 就把配置写进那个 Agent 自己的文件里。下次要换,再点一下,不用打开任何 json 或 toml。

关键在于它会翻译协议 。Codex 只会说 /responses,Gemini CLI 只会说 Google 那套,Claude Code 只会说 /v1/messages,OpenAI 兼容端是 /v1/chat/completions------四种线格式两两互转,流式响应同样转换。所以:

  • Codex CLI 可以跑 DeepSeek
  • Claude Code 可以跑 Kimi
  • 任何 Agent 都可以指向本地 Ollama

请求进来的协议与上游一致时原样透传,一个字节都不改动。

三、用量统计:包括没走网关的那部分

这是我自己最需要的功能。各家 Agent 都会在磁盘上写会话记录,所以哪怕一条流量都没有接进 Gateway,Usage 页面从第一次启动就有数据:按天、按模型、按 Agent 统计 token 数、缓存命中率,并折算成金额。

价格表可编辑,支持定时从 models.dev 同步,手动改过的条目不会被覆盖。

四、验证供应商:那个 Key 后面真是你买的模型吗

中转服务可以拿便宜模型冒充贵的、把缓存前缀算成新输入、甚至只是「假装」在实现那套 API。这些在流量层面完全看不出来。

所以 Authenticity 模块直接向上游发探测请求:

  • 回答的模型是不是所声明的那个,模型自称由谁训练
  • 请求前面有没有被注入内容;相同请求多次调用是否由同一模型应答
  • 文档声明支持的参数(logprobsnstop)是真支持、明确拒绝,还是返回 200 之后悄悄忽略
  • 一批只有唯一正确答案的题目,从数单词字母到古文作者判定
  • 两层嵌套的 tool schema 在强制调用下是否完整,SSE 事件流是否完备,缓存是否如实计费

最终给出 100 分制评分与 A--F 等级。新增供应商、修改 Key、报告过期都会自动触发一次。分数只是汇总,每一条测例的原始请求、判分方式和权重都摊开在页面上,可以调整权重、关闭某项或自行加题。一次探测消耗该供应商几分钱,报告里会写明。

五、用 Casbin 规定每个 Agent 能做什么

每个 Agent 大约 40 个工具开关,分六组:终端、读项目、改项目、联网、规划与派生子 Agent、以及它安装的每一个 MCP Server。

被关闭的工具在请求离开这台机器之前就从 tool 列表中被移除,模型根本看不到这个工具,Agent 也就无从调用------这与「模型自觉不调用」是两件事。

不同 Agent 的工具命名各不相同,Bashshellrun_shell_command 在这里归并为同一个开关。每组末尾有一个兜底项,管理 Gateway 尚未见过的新工具,这样「整组关闭」才是真的整组关闭,而不是只关掉了配置那天列出的几个。

底层编译成标准的 Casbin model.conf + policy.csv,在 Advanced 里可以直接查看和编写:

复制代码
p, claude-code, tool:mcp/github, use, allow
p, claude-code, tool:mcp/*,      use, deny
p, claude-code, tool:*,          use, allow

第一条匹配的规则生效,所以「除 github 之外的 MCP 全部禁用」一行即可表达。

六、Agent 自身的安装、升级与回退

Agent versions 页面是一张表:本机安装的版本、包管理器发布的版本、相差多少。安装、升级、回退到旧版、卸载都在同一行一键完成,不论当初是通过 npm、brew、winget、微软商店、Agent 自带更新器还是厂商安装脚本装的。命令会先展示出来,进度在行内显示,控制台输出可展开。

升级之后行为异常需要回退------这个功能救过我一次。

七、安装

一条命令,不需要 Docker,不需要预装 Go 或 Node,不需要配置数据库。

Linux / macOS:

bash 复制代码
curl -fsSL https://raw.githubusercontent.com/apache/casbin-gateway/master/scripts/install.sh | bash

Windows PowerShell:

powershell 复制代码
irm https://raw.githubusercontent.com/apache/casbin-gateway/master/scripts/install.ps1 | iex

脚本会下载对应平台的构建、解压、把 casbin-gateway 挂到 PATH、启动并设置登录自启,然后自动弹出窗口。不需要登录,它只服务本机,直接以本地管理员身份进入。关闭窗口后缩到托盘继续运行。没有桌面环境的机器,浏览器打开 http://localhost:17000 效果相同。

数据存在同目录下的一个 SQLite 文件里。右上角显示版本号,有新版本会标记 New,点击 Update now 自动下载、自检、替换并重启,数据与设置原地保留。

卸载执行 casbin-gateway uninstall。不要直接删除目录------它向外部写入过内容(各 Agent 配置中的监控钩子、绑定的供应商、开机自启项、桌面快捷方式、ccswitch:// 协议注册),uninstall 会逐项还原。

八、几个已知限制

  • 默认密码是 admin / 123 仅监听 127.0.0.1 时它不生效(本机免密登录),但一旦把 httpaddr 改为 0.0.0.0,第一件事就是修改密码------那个端口既是免密的管理界面,又是携带全部 API Key 的转发入口。
  • 容器内运行看不到宿主机的 Agent。 Agent 是通过读取「Gateway 所在这台机器」的家目录和安装路径发现的,在容器里那就是容器自己的文件系统。要管理 Agent 就装在那台机器上;容器版适合仅作为模型入口供其他机器使用。
  • Roo Code、Copilot CLI 目前只能识别,尚未接入更多能力。
  • macOS 不注册 ccswitch:// 协议(该平台 URL scheme 属于 App Bundle,注册反而会抢占其他程序的链接),请把链接粘贴到 Import 页面的输入框,这条路径在所有平台都可用。

结语

在线 Demo、完整文档和 29 行支持表都在仓库里:

https://github.com/apache/casbin-gateway

如果你机器上也装了三个以上的编程 Agent,应该能用得上。欢迎提 issue。

相关推荐
长谷深风1111 小时前
AI记忆会过期,会冲突,更需要治理
人工智能·ai·大模型·prompt·memory·aiagent
jedi-knight1 小时前
Codex接入本地QWen3.8模型
人工智能·经验分享
Jgch221 小时前
Meta AI :FB广告账户可以直接交给 AI 做数据分析了
人工智能·facebook·海外社媒·facebook广告
刘海东刘海东1 小时前
5. 机器全图一:图中央处理器(机器脑)一部分
人工智能
xlq223221 小时前
Ai大模型接入sdk day3
人工智能
Anchor3681 小时前
B2B AI 获客工具选型|AI 外呼系统能力拆解与业务落地实践
人工智能·ai获客哪家靠谱·剪流ai拓客系统
司小豆1 小时前
第四课:Cordis 如何把插件组织成一个可运行的 Agent
大数据·人工智能
Summer-Bright1 小时前
深度 | GPT-6 Astra 的相变:从「会答」到「会做」,OpenAI 把对齐做成了护城河
人工智能·gpt·ai·astra·gpt-6
artificiali1 小时前
880 第4章多元
人工智能·算法