供应商与网关
一份供应商池、三档接法、只监听本地的网关,以及各 CLI 真正会读的字段。
更新于 · 2026-11-02
供应商是 AgentHub 的第十一个模块,形态是两栏工作台:左栏 agent 列表,右栏是该 agent 的供应商池(默认供应商、已添加、可添加)。
三档接法
| 模式 | 行为 | 适用 |
|---|---|---|
| 直连 | 只写配置,不进网关,零额外开销 | 单一上游,追求最低延迟 |
| 路由 | 按模型通配分派到指定上游,未命中按优先级兜底 | 不同模型走不同渠道 |
| 聚合 | 多上游加权轮询,首字节前故障转移,模型池合并 | 一个渠道不稳,要自动兜底 |
网关
内置代理只监听 127.0.0.1(默认端口 43117)。统一入口:
http://127.0.0.1:43117/v1
令牌就是 agent 名 —— claude、codex、opencode、hermes、gemini、codebuddy。同系列共用同一个值:Claude Code 与 Claude Desktop 都读 ~/.claude,所以都是 claude。令牌对不上会返回 401 并列出可用值。
各家真正会读的字段
写错一个键,配置就等于没写。AgentHub 按各家 CLI 的真实字段生成:
- Claude Code:
env.ANTHROPIC_BASE_URL、ANTHROPIC_MODEL、AUTH_TOKEN,以及四个ANTHROPIC_DEFAULT_{SONNET,OPUS,HAIKU,FABLE}_MODEL别名——少了别名,用户一在/model里选 opus 就会绕回官方模型。 - Codex:根级
model、model_provider,加上[model_providers.<id>]的base_url、env_key、wire_api。Chat 上游必须写chat,否则会按 responses 打过去,必失败。 - OpenCode:
provider.<id>的npm、name、options与models。缺npm或models时 OpenCode 根本不会加载这条配置。
Gemini / CodeBuddy / Hermes 明确不支持写入,界面会写出原因,不会写猜测的键。
密钥存放
密钥只存引用:env:VAR、keychain:svc/acct,或用户确认过的明文。界面一律脱敏显示。入站请求的 authorization / x-api-key 会被替换成上游密钥,上游密钥不会写进 agent 配置。
隐私边界
请求与响应(含 SSE)逐块转发,不缓冲。请求流只记元数据:状态码、耗时、首字节、重试次数。正文一律不记,重启即清空。