Hoshimi

渠道概念

Hoshimi 如何组织上游:渠道(供应商)、账号、账号池和模型路由,各类渠道怎样添加账号,以及怎样选择合适的渠道。

Hoshimi 把每个上游服务当作一个渠道(代码和配置中称为 provider,用一个 ID 表示,例如 cline、opencode、agg)。渠道下面挂着一个或多个账号,同一渠道的账号组成账号池,请求在池内轮换。本页说明这些概念和通用的添加方式;各类渠道的细节见本节其他页面。

渠道的种类

类别渠道 ID 示例账号怎么来详见
匿名入口opencode、kilo不需要账号,默认开启匿名入口
免费站点与订阅登录cline、gemini、zcode、minimax、trae、qoder、qodercn、buddy、workbuddy、codearts、loomy、raccoon、lobsterai、codex、eac、zhipu浏览器或设备码登录(zhipu 用 API 密钥)免费站点
通用兼容入口agg自填地址或选 22 个预设之一,加 API 密钥聚合入口 agg
云平台与特殊协议azure、cloudflare-workers-ai、cloudflare-ai-gateway、google、google-vertex、amazon-bedrock、radius、typesafe平台密钥、Google/AWS 凭据云平台
NVIDIA NIMnvidiaAPI 密钥NVIDIA NIM
常规 API 服务与本地后端openai、anthropic、openrouter、deepseek、groq……;lmstudio、ollama、llamacppAPI 密钥,部分支持登录;本地服务密钥可选本地与兼容端点

所有渠道与其来源的对照见渠道清单。清单记录的是“有入口”,不代表上游当前一定可用。

名字相近、ID 不同的服务

同一家公司的不同产品、不同套餐、不同协议使用不同的渠道 ID,凭据不能互换:

  • minimax 是 MiniMax Agent 的登录账号;minimax-api、minimax-cn、minimax-chat 是三个按密钥计费的公开 API。
  • gemini 是 Gemini Code Assist(Google 账号登录);google 是 Gemini Developer API(API 密钥);google-vertex 是 Vertex AI。
  • amazon-bedrock(ConverseStream)和 bedrock-mantle(OpenAI 兼容端点)分别配置。
  • zhipu 是 bigmodel.cn 的通用 API;zai、zai-coding-cn、zai-api 是 Z.AI 的编码套餐和国际站 API;zcode 是 ZCode 客户端的登录通道。
  • cline 是 Cline 的免费登录通道;cline-pass 是 ClinePass 订阅密钥。
  • typesafe 提供分类,不是聊天模型。

添加账号

三种方式写入的是同一个文件:数据目录下的 config.json(用 hoshimi config path 查看位置)。网页界面和 hoshimi login 写入后立即生效;直接编辑文件需要重启服务。

  1. 打开 渠道 页面,选中一个渠道。还没有账号的渠道在 未设置 筛选下。
  2. 支持登录的渠道点 登录,按对话框提示在浏览器中完成授权;其余渠道点 添加账号,选择 鉴权方式 并填写表单,然后点 保存账号。
  3. 账号出现在 账户 列表中。添加账号会顺带开启被关闭的渠道。

同一站点身份重新登录时,会更新原有账号,而不是再叠加一个。删除账号用账号菜单中的 删除,凭据会同时从 config.json 和运行中的账号池移除。

config.json 就是凭据库

账号的令牌和密钥都以明文保存在 config.json 中。不要提交或分享填过真实凭据的文件;分享示例时用占位符替换。

每个渠道的配置键

键说明
providers.<id>.enabledfalse 完全关闭该渠道(匿名入口也用它关闭)。省略时为开启。
providers.<id>.accounts账号列表,每项是一个对象,字段由渠道决定。
providers.<id>.accounts[].id账号名,用于界面、用量统计和日志。省略时由网关命名(登录产生的账号形如 cline-1a2b3c,按位置推断的形如 <id>-0)。
providers.<id>.options渠道级选项,例如 TRAE 的 channel、agg 的能力声明、本地服务的 models。
providers.<id>.options.network该渠道自己的网络线路,默认继承全局设置,见网络与代理。

选择模型:路由规则

客户端在请求的 model 字段中指定模型:

  • 写成 渠道/模型(例如 opencode/big-pickle、nvidia/<model-id>)会直接交给该渠道。
  • 只写模型 ID 时,网关按固定顺序查找第一个列出该 ID 的渠道:cline、opencode、kilo、gemini、zcode、minimax、trae、qoder、qodercn、buddy、workbuddy、codearts、loomy、raccoon、lobsterai、eac、agg、zhipu、nvidia,然后是其他渠道。
  • 只开启了一个渠道时,未知的 ID 也会原样转给它。

GET /v1/models 中每个 ID 只出现一次,owned_by 是按上述顺序胜出的渠道。模型 ID 本身含有 / 时(例如 Kilo 的 openrouter/free),建议加上渠道前缀:kilo/openrouter/free,避免第一段被当成渠道名。客户端配置见接入客户端。

账号池与轮换

同一渠道的多个账号按配置顺序使用。一次请求遇到账号层面的失败时,网关会换下一个账号重试,每次请求最多尝试 server.max_account_retries 个账号(默认 3):

  • 额度用尽或限流:该账号暂停轮换,时长取上游给出的重置时间,没有则为一小时。
  • 凭据被拒:先尝试续期,再换账号。续期令牌本身被拒绝时,账号标记为 需要登录,不再参与轮换,直到重新登录。
  • 已经向客户端输出内容后,请求不会自动重放。

这些规则的完整说明见模型行为。

续期与签到

很多登录型站点的令牌会过期。开启 凭据续期(server.auto_refresh,默认开启)后,网关每 30 分钟检查一次,续期一小时内到期或没有记录到期时间的账号。开启 每日签到(server.auto_checkin,默认开启)后,网关每天按北京时间日期为支持签到的站点领取免费额度。哪些站点支持续期、签到和余额查询,见免费站点。

怎样选择

  • 先试默认开启的匿名入口,不需要任何账号。
  • 想要更多免费额度,登录免费站点;多登录几个账号能让轮换更从容。
  • 已有某个 OpenAI 兼容服务的密钥:它在原生渠道列表中就用原生渠道(见本地与兼容端点),否则用 agg。
  • 企业云账号用云平台对应的渠道;本机模型用 LM Studio、Ollama 或 llama.cpp。

本页目录