9Router Chat 技能
通过 9Router 网关调用任意大模型,支持 OpenAI 与 Anthropic 两种 API 格式、流式输出和组合自动回退,让对话与代码生成不再受单家配额限制。
技能本身仅文档化对本地 9Router 服务的 HTTP 调用,无文件写入、无破坏性操作,凭据通过环境变量传入且示例未硬编码密钥,数据流(发往本地路由器再转发给上游 LLM 供应商)基本透明。扣分点:未声明上游供应商会看到全部提示内容的数据流披露,无回滚/失效说明,密钥通过 shell 环境变量传递存在泄露面提示不足。
文档内部自洽:OpenAI 与 Anthropic 两种格式的端点、请求/响应示例、SSE 流式格式描述一致,happy path 可信。扣分点:无测试、无边界/错误场景处理(如 401、供应商超时、fallback 失败时的行为),发现端点的 jq 依赖未说明缺失时的表现,故障反馈完全依赖用户自行调试。
description 中触发条件较清晰(用户想调用 LLM、生成代码、摘要),端点兼容 OpenAI/Anthropic 两种格式适配面广。扣分点:未声明非适用边界(如需 9Router 先运行、需先完成 base skill 配置),中文支持仅在仓库级 README 存在而技能本身为英文,核心功能依赖本地路由器可达的海外上游模型,国内网络下部分免费供应商可用性未披露。
结构清晰、渐进式引用 setup 文档、示例充分。扣分点:关键安装前提被外置到另一 SKILL.md 的原始 GitHub 链接(版本未固定到 revision),技能本身无版本号、变更记录、FAQ 或已知限制披露,维护责任仅在仓库层面可推断。
核心任务(通过 9Router 调用聊天/代码生成 API)文档路径完整,输出为可直接复用的 curl/SDK 代码。扣分点:"免费无限"的营销价值主张在静态审查中不可验证,实际收益取决于 9Router 服务本身及上游免费额度的真实性,静态上限 7 且缺乏代表性输出验证证据,给 5。
响应形状示例与 OpenAI/Anthropic 公开 API 规范一致,可作交叉印证;仓库含真实 CI(Docker 发布)与源代码。扣分点:技能路径本身无测试覆盖、无第三方执行证据,claimed RTK -40% 等 Token 节省数据仅有营销来源,静态上限 5,给 4。
- 该技能仅是 API 文档,必须先安装并运行 9Router 本地服务(见 9router 主技能)才能使用;单独安装无效。
- 上游 LLM 供应商会看到你发送的全部提示与代码内容,处理敏感代码前请自行评估。
- API 密钥通过环境变量(NINEROUTER_KEY)传递,注意 shell 历史与进程环境的泄露风险。
- "免费/无限"为营销说法,实际可用性取决于各上游供应商的免费额度政策,可能随时变化。
- 安装前提链接指向 master 分支而非固定版本,未来内容可能变动;国内网络下部分上游供应商可能不可达。
这个 Skill 能做什么,适合哪些场景?
9router-chat 是一个 Agent Skill,教模型如何通过本地运行的 9Router 网关发起聊天与代码生成请求。它覆盖 OpenAI 的 /v1/chat/completions 与 Anthropic 的 /v1/messages 两种接口,包括流式 SSE、模型发现(/v1/models)以及响应结构解析。9Router 本身是一个本地 AI 路由器,连接 40 多家免费/付费服务商,支持多级自动回退(订阅 → 低价 → 免费)和 RTK 工具输出压缩以节省 20-40% 的输入 token。该技能属于 9router 仓库打包的 9 个技能之一,使用前需先安装并运行 9Router 服务。
该技能指导模型执行以下操作:读取环境变量 NINEROUTER_URL(如启用鉴权还需 NINEROUTER_KEY);用 GET /v1/models 发现可用模型并获取元数据(contextWindow、参数等);用 POST /v1/chat/completions(OpenAI 格式)或 POST /v1/messages(Anthropic 格式)发起聊天或代码生成请求;支持 stream:true 时的 SSE 流式读取(data: {delta} 片段直到 [DONE]);正确解析两种格式的响应体(choices/message/content 与 usage 字段)。组合(combo,如 vip、mycodex)会自动在多个服务商间回退。
- 已经本地装好 9Router 并连接了 Kiro 或 OpenCode Free 等免费服务商的开发者,想在对话中让模型直接查询并调用这些免费模型做代码生成
- 使用 Claude Code、Cursor、Cline 等工具时订阅配额经常用完的用户,通过 combo 自动回退到低价(GLM、MiniMax)或免费层避免中断
- 需要在脚本或 Agent 里以统一 OpenAI 格式同时访问 Claude、GPT、Gemini 等不同厂商模型的集成者
- 写 JS 工具链的开发者,想用 OpenAI SDK 把 baseURL 指向 9Router 来复用现有的 openai npm 包代码
- 需要逐 token 流式输出(SSE)来构建交互式界面的用户
- 在 prompt 中要求总结长文本或运行一次性提问,由 9Router 自动选择可用服务商完成
这个 Skill 有哪些优点和局限?
- 一份技能同时覆盖 OpenAI 和 Anthropic 两种 API 格式,含 curl 与 JS SDK 双示例,直接可用
- 借助 9Router 的 combo 机制,配额耗尽时自动回退到低价/免费服务商,不会中断
- 文档给出完整的响应结构(含 usage、SSE 流式格式),便于解析与调试
- 通过 /v1/models 与 /v1/models/info 可动态发现模型及元数据,无需硬编码模型列表
- 仓库为 MIT 许可的开源项目,有 Docker 镜像与多语言文档
- 强依赖一个已运行并配置好服务商的 9Router 实例,技能本身不含安装或启动 9Router 的步骤
- 未配置 NINEROUTER_URL 时完全无法工作;若启用 REQUIRE_API_KEY 还必须提供 key
- SKILL.md 未声明测试套件,也未验证在 9Router 之外(直连厂商 API)是否可用
- 示例中的模型 ID(openai/gpt-5、cc/claude-opus-4-7 等)取决于你的 9Router 实际连接的服务商,并非保证可用
- "免费无限"依赖 Kiro、OpenCode Free 等第三方免费层的持续可用性,README 已记载 iFlow、Qwen 免费层于 2026 年被取消的前例
如何安装这个 Skill?
- 先安装 9Router 本体:npm install -g 9router,然后运行 9router,仪表盘在 http://localhost:20128。2. 在仪表盘的 Providers 中连接至少一个服务商(如免费的 Kiro AI 或 OpenCode Free)。3. 从仓库 https://github.com/decolua/9router 获取该技能(位于 skills/9router-chat/SKILL.md),按所用 Agent Skills 客户端的方式放入技能目录。4. 设置环境变量 NINEROUTER_URL(默认 http://localhost:20128),若开启了鉴权(REQUIRE_API_KEY=true)还需从仪表盘获取 API Key 设为 NINEROUTER_KEY。SKILL.md 本身未给出专门的安装脚本,具体技能文件夹放置方式取决于你的客户端。
如何使用这个 Skill?
环境就绪后,可在对话中直接触发,例如:"用 9Router 问一下 gpt-5:写一个 Python 的快速排序" 或 "通过 9Router 总结这段文本"。模型会按 SKILL.md 的指引:先 curl $NINEROUTER_URL/v1/models 列出可用模型;再发 POST 到 /v1/chat/completions(OpenAI 格式,示例模型 openai/gpt-5)或 /v1/messages(Anthropic 格式,示例模型 cc/claude-opus-4-7,需带 anthropic-version: 2023-06-01 头);需要流式时设置 stream:true 并逐段读取 SSE。JS 中可 new OpenAI({ baseURL: ${NINEROUTER_URL}/v1, apiKey: NINEROUTER_KEY }) 后调用 client.chat.completions.create。
这个 Skill 与同类方案有什么区别?
同仓库的 OmniRoute fork 是 9Router 的功能扩展版(36+ 服务商、四层回退、多模态 API、语义缓存),若需更多功能可考虑该分支;直接调用 OpenAI 或 Anthropic 官方 API 则无需本地路由器,但会失去自动回退、配额追踪和 RTK 省 token 能力。