Appearance
在模型 slug 末尾添加 :exacto,可以让 OpenRouter 在路由时优先选择工具调用质量更好的提供商,而不是默认的价格优先排序。适合对工具调用准确性和可靠性要求高于成本考虑的 Agent 工作流场景。
用法
在模型 ID 末尾加上 :exacto:
typescript
import { OpenRouter } from '@openrouter/sdk';
const openRouter = new OpenRouter({
apiKey: process.env.OPENROUTER_API_KEY,
});
const completion = await openRouter.chat.send({
model: 'moonshotai/kimi-k2-0905:exacto',
messages: [
{
role: 'user',
content: 'Draft a concise changelog entry for the Exacto launch.',
},
],
stream: false,
});
console.log(completion.choices[0].message.content);也可以在 models 数组中同时配置 fallback 模型,带 :exacto 后缀的模型被选中时会触发 Exacto 排序:
json
{
"models": ["anthropic/claude-sonnet-4-5:exacto", "openai/gpt-4o:exacto"]
}Exacto 的工作原理
Exacto 使用三类信号对提供商进行排序:
- 真实流量的工具调用成功率和可靠性
- 提供商性能指标(吞吐量、延迟)
- 基准测试和评估数据(持续更新)
具有良好历史记录的提供商排在前面,数据不足的提供商排在成熟提供商之后,质量信号差的提供商进一步降权。
Exacto vs Auto Exacto
| 特性 | Exacto(:exacto 后缀) | Auto Exacto |
|---|---|---|
| 触发方式 | 显式在 model slug 加后缀 | 有工具调用时自动生效 |
| 适用场景 | 需要明确指定排序模式 | 大多数工具调用场景 |
如果你显式指定了价格、吞吐量或延迟排序,该排序仍优先于 Exacto。
推荐使用场景
Exacto 最适合以下情况:
- 工具调用准确性比成本更重要的 Agent 流程
- 同一模型有多家提供商,且各家工具调用质量差异明显
- 对工具调用成功率有明确要求的生产环境
常见问题
Q: Exacto 会增加费用吗?
A: Exacto 只影响提供商排序,费用由最终选中的提供商定价决定。质量优先可能会选到单价稍高的提供商,但不是 Exacto 本身的附加费。
Q: 没有工具调用的请求也可以用 :exacto 吗?
A: 可以加上,但效果主要体现在有工具调用的场景。普通文本请求影响不大。
Q: Exacto 和 Auto Exacto 有什么区别?
A: Auto Exacto 在检测到工具调用时自动应用,无需任何配置。:exacto 是你主动选择的显式版本,适合需要明确控制路由策略的场景。