- 少样本示例(Few-shot examples) — 注入到分类器系统提示词中的”提示词 / 预期模式”配对(每次请求最多 8 条)。
- 置信度下限覆盖(Confidence-floor overrides) — 针对每种模式,替换 Theo 全局
0.85的提升下限。降低下限可以让意图提升更容易发生;提高下限则会更保守。
在密钥上编辑规则
打开api.hitheo.ai/dashboard/keys,找到要调优的 API 密钥,点击 Routing 标签。面板中直接内置了你所需要的一切:
- 继承上下文(Inherited context) — 如果没有为该密钥设置按密钥规则,面板会告诉你该密钥当前继承的是团队默认值、你的个人默认值,还是什么都没有继承。
- 规则(Rules) — 每条规则对应一行。每一行都有一个关键词标签输入框、一个目标下拉框,以及一个 Gentle(宽松)/ Balanced(平衡)/ Strict(严格)切换开关。空状态下提供几个一键式起始模板(定价问题、客户投诉、法律审查、照片与图片请求),以及供高级用户使用的空白规则标签。
- 更多选项(More options) — 每一行上的一个小箭头图标可以展开备注字段、原始正则表达式文本框、可选的 Theo 引擎指定,以及用于精细控制的原始置信度滑块。
- 试用提示词(Try a prompt) — 一旦你开始编辑,就会出现一个紧凑的输入框。输入一段示例客户提示词,面板会渲染出一行差异对比(
基线模式 → 应用规则后的模式),让你在保存之前就能准确看到会发生哪些变化。
高级:手写正则表达式
标签编辑器会将关键词映射为 API 内部使用的同一个pattern 字符串。如果要用原始 ECMAScript 正则表达式(前瞻、锚点、捕获组)编写规则,请展开该行的 More options 箭头,在 pattern 文本框中编辑。粘贴正则表达式会自动将该行切换为高级模式,这样我们就不会悄悄地重写你的表达式;如果加载某个密钥时发现它的 pattern 无法在标签编辑器中往返还原,该行会默认以高级模式打开。
ContractIQ ——完整实操演示
ContractIQ 是一个虚构的法律科技工具。它的用户会粘贴合同条款,并要求 Theo 对其进行分析。如果没有任何规则,“look at this clause”(看看这条条款)会被路由到fast(简短回复);而在密钥上设置一条规则后,它会被路由到 think(深度分析)。
1. 在 API 密钥上设置规则
active: true 字段确认了这些规则目前正在驱动该密钥上的补全请求。要删除这些规则并回退到继承的默认值,向同一个端点发送 DELETE 请求即可(或者在 SDK 中调用 theo.routingRules.clear(keyId))。
2. 发送一次补全请求
meta 事件现在会携带一个 customer_preference 字段,用于确认触发了某条规则:
3. 在上线前测试变更
使用测试端点,分别在启用与不启用该偏好的情况下重放同一个固定提示词:routing 遥测结构——这份差异对比是对你的调优效果的一次精确、确定性的预览。
测试尚未保存的草稿
控制台的测试台会重放你当前正在编辑的草稿——它绝不会要求你先保存。如果你是在 API 之上构建自己的界面,可以携带完整的草稿正文,请求不带 id 的POST /api/v1/routing-preferences/test 路由。响应结构与按 id 请求的路由相同;不会持久化任何内容。
优先级顺序
Routing Studio 位于 Theo 更广泛的路由引擎之内。完整的级联顺序如下,首个匹配项获胜:- 代理锁(Agentic locks)(
insurance_*、data_extraction)——永不被提升。 - 附件 → vision — 非媒体调用方携带的图片附件会路由到
vision。 - 技能独占覆盖(Skill exclusive override) — 设置了
intensity: 100和modelPreference的技能优先生效。 - Routing Studio 规则 — 你的规则在这一步触发。
- 意图分类器(Intent classifier) — 运行时会注入你的少样本示例,并使用你按模式设置的置信度下限覆盖。
- 隐身族保持(Stealth family preservation) — 来自
stealth_*调用方的提升会保持在隐身族内部。 - 对话提示(Conversation hint) — 当调用方使用
auto时,回退到上一轮的产出物类型。 - 请求的模式(Requested mode) — 默认值。
置信度下限覆盖
只有当置信度 ≥0.85(PROMOTION_CONFIDENCE_FLOOR)时,分类器才会提升调用方的模式。对于分类器在较低置信度下也经常判断正确的专业领域,可以降低该下限:
[0.5, 0.99] 区间内——无论取哪一端,都无法彻底关闭这个下限机制。
品牌安全契约
每一个由客户编写的字段——名称、描述、规则 pattern、规则描述、示例提示词——都会被扫描是否包含上游供应商名称(Claude、OpenAI、Anthropic、Gemini、fal.ai 等),一旦发现就会在校验阶段被拒绝。Theo 的界面始终以 Theo 的身份呈现。你的客户永远不会看到底层的模型提供方。 同样的扫描也会应用于 Routing Studio 的输出——你的调用方收到的customer_preference 数据块,保证不包含任何供应商名称。
限制
团队作用域 vs. 个人作用域
创建时传入scope: "team",可以将该偏好的作用域设为你当前所在的组织。团队偏好会成为组织默认值的候选项;拥有团队配置权限的团队管理员可以对其进行管理。如果没有团队绑定,密钥会依次继承:所属作用域的默认值 → 用户的个人默认值 → 无偏好。
is_default: true 会返回 409 conflict——每个作用域最多只能有一个默认值。
常见模式
- 领域词汇偏置。 对于明确的关键词(“policy""claim""rune”)使用规则;对于表达方式(“draft me a response to this complaint” →
think)使用示例。 - 成本控制。 为个人密钥提高
image/video的下限;团队密钥则保留默认值。 - 速度偏置。 降低
fast的下限,并添加类似{ prompt: "thanks!", expected_mode: "fast" }的示例,避免简短回复被升级为think。
按密钥规则 vs. 共享规则集——如何选择
如果你只是在调优一两个密钥,直接在密钥页面上编辑规则即可。控制台会隐藏除规则编辑器本身之外的一切——无需创建”偏好”,也无需配置绑定。 在以下情况下,可以选择使用共享规则集:- 你希望一份规则列表能够覆盖多个 API 密钥(例如团队中每个密钥都使用同一套法律词汇)。
- 你希望有一个团队默认值,新建密钥可以自动继承它。
- 你在通过脚本进行批量修改,更倾向于在源代码管理中一次性编写规则,而不是在各个密钥之间重复维护。
routing_preferences 表;唯一的区别在于这一行记录是以某个特定密钥命名(不会出现在共享列表中),还是带有客户自定义的名称。
后续步骤
/api/v1/routing-preferences参考文档 — 每个端点的完整请求/响应结构。- Routing Studio SDK 参考文档 —
theo.routingPreferences.*、theo.routingRules.*以及按密钥绑定的辅助方法。 - 引擎路由与回退 — Routing Studio 在 Theo 更广泛的路由引擎中所处的位置。
