9Router 嵌入生成技能
通过本地 9Router 的 /v1/embeddings 端点,调用 OpenAI、Gemini、Mistral、Voyage、Nvidia、GitHub 等嵌入模型,为 RAG、语义搜索和相似度计算生成向量。
该技能为纯文档型,不含可执行脚本,仅通过环境变量 NINEROUTER_URL/NINEROUTER_KEY 引用本地 9Router 服务,权限面小、无隐蔽外发行为;但认证方式('if auth enabled')含糊,未说明嵌入文本会发送至哪些上游供应商,数据流披露不完整。
curl/JS 示例与响应 shape、provider quirks 表自洽,仓库内 ping.js 证实嵌入探测路径存在;但无任何测试、无错误处理示例、未说明批量上限与失败反馈,静态审查不给满分。
frontmatter 触发词(embeddings/vectors/RAG/semantic search)明确,场景清晰;但未声明非适用边界,核心依赖需先安装并配置 9Router,且文档全英文、未说明中国大陆可达性(多数嵌入供应商为海外服务),存在环境适配缺口。
文档结构清晰(Discover/Endpoint/Examples/Quirks),MIT 许可明确;但技能本身无版本号或变更记录,安装说明依赖另一个 SKILL.md 的外部链接,维护责任与更新路径未在本技能中声明。
示例可直接复制使用并预期得到 OpenAI 形状的嵌入结果,边际价值在于多供应商统一接口与 quirks 说明;但未执行验证,输出可用性仅为合理推断,静态上限 7 分未达。
仓库内 ping.js 与 README 的自托管嵌入章节与技能描述相互印证,可审计的原始材料有限;但无测试覆盖、无第三方执行证据,静态上限 5 分,覆盖面薄给 4 分。
- 纯静态审查,未实际执行任何请求;可用性为源码推断。
- 嵌入的文本会发送到所选上游供应商,技能未披露各供应商的数据流向,敏感文本使用前请自行评估。
- 需先安装并配置 9Router(NINEROUTER_URL/KEY),主技能文档通过外部链接引用,可能随仓库更新而变化。
- 多数嵌入模型为海外服务,中国大陆网络可达性未说明;文档仅英文。
- 部分免费/自托管说明中提到免费额度与模型列表随时可能变动,使用前请核对供应商现状。
这个 Skill 能做什么,适合哪些场景?
该技能是 9Router 仓库(monorepo)中九个技能之一,专注于向量嵌入生成。它教代理如何发现 9Router 实例上可用的嵌入模型、查询各模型的向量维度,并用 OpenAI 兼容格式调用 POST /v1/embeddings。支持 float/base64 编码格式和批量输入,适用于 RAG、语义搜索等场景。前置条件是已运行 9Router 服务并配置 NINEROUTER_URL(如启用鉴权还需 NINEROUTER_KEY)。技能本身是纯文档型指引,不包含可执行脚本。
通过 curl 访问 /v1/models/embedding 列出可用嵌入模型,通过 /v1/models/info?id= 查询模型维度;构造 POST 请求到 $NINEROUTER_URL/v1/embeddings,传入 model、input(字符串或数组)、可选 encoding_format(float/base64)和 dimensions(仅 OpenAI v3 模型);返回 OpenAI 形状的 JSON(data 数组中含 embedding 向量及 usage token 统计)。技能还记录了各提供商的格式差异,例如 Gemini/Google AI Studio 请求会被服务端自动转换,调用方仍发送 OpenAI 形状。
- 已在用 9Router 做 AI 编码路由的开发者,想为代码库构建 RAG 检索而无需再接一套嵌入 API
- 需要在不同嵌入提供商(OpenAI、Gemini、Mistral、Voyage 等)之间切换或做比对的工程师,希望保持统一的 OpenAI 风格接口
- 构建语义搜索或相似度功能、需要知道每个模型输出维度的开发者
- 预算敏感的独立开发者,想通过 9Router 的免费/低价提供商路线生成嵌入向量
这个 Skill 有哪些优点和局限?
- 统一 OpenAI 风格接口访问多家嵌入提供商,包括自动转换 Gemini/Google AI Studio 格式
- 附发现端点(列出模型、查询维度),便于动态选择模型
- 支持 float/base64 编码、批量输入和 OpenAI v3 的 dimensions 参数
- 技能文档简洁,含 curl 和 JS 双语示例,易于照搬
- 强依赖已运行的 9Router 实例,不能独立使用
- dimensions 参数仅对 OpenAI text-embedding-3-* 系列有效,其他模型不可用
- 部分提供商有批量大小上限,具体数值未在文档中给出
- README 未说明 9Router 实例的嵌入模型配额、免费额度或计费细节
如何安装这个 Skill?
该技能属于 decolua/9router 仓库(MIT 许可)打包的技能集合,路径为 skills/9router-embeddings/SKILL.md。将整个技能集合按你的 Agent Skills 客户端惯例放入技能目录即可;仓库 README 未给出单独安装该技能的专用命令。前置条件:按 9Router 主文档安装并启动 9Router(如 npm install -g 9router 后运行 9router,仪表盘在 http://localhost:20128),并设置 NINEROUTER_URL(及 NINEROUTER_KEY,如启用鉴权)。
如何使用这个 Skill?
在代理中提及嵌入、向量、RAG 或语义搜索即可触发。典型用法:先运行 curl $NINEROUTER_URL/v1/models/embedding | jq '.data[].id' 查看模型,再用 curl -X POST $NINEROUTER_URL/v1/embeddings -H "Authorization: Bearer $NINEROUTER_KEY" -H "Content-Type: application/" -d '{"model":"openai/text-embedding-3-small","input":["hello","world"]}' 生成向量;响应中 data[i].embedding 即向量,usage 含 token 统计。批量传入 input 数组更快,但部分提供商有批量上限。
这个 Skill 与同类方案有什么区别?
与其姐妹技能 9router 主技能(负责聊天模型路由、RTK 省 token、自动回退)互补:本技能只管嵌入。若不需要统一多提供商接口,也可直接调用各嵌入提供商原生 API,但那样要为每家写不同格式适配。