路由

每个请求都由 JoyToken 选择最终模型和 provider。请求必须使用 model: "auto",并可通过 tier 和 API Key 策略控制候选路由范围。

常用写法

目标请求写法
自动路由model: "auto"
指定档位model: "auto" + `tier: “economy"
限制候选模型在 API Key 策略设置模型黑名单

档位

档位适合场景
economy成本优先、批处理、低风险任务
standard默认平衡档
premium高质量或关键评估任务

钱包回退

当请求使用 model: "auto",且当前 tier 余额不足时,JoyToken 可在策略允许范围内尝试其他 tier。

当前 tier回退顺序
premiumstandard -> economy
standardpremium -> economy
economystandard -> premium

请求不接受具体模型 ID。若策略、余额或预算过滤后没有可用候选模型,请求会返回错误。

编排模式(多任务规划)

对于复杂请求,JoyToken 可能以编排模式处理单个 model: "auto" 请求:先生成任务计划(plan),用选定的子模型逐个执行任务,最后汇总出最终答案。你无需显式开启,由网关根据请求自动决定。

如何识别

信号说明
plan(顶层)有序任务列表,仅编排模式返回
choices[].message.content变为各任务输出的 JSON 数组(含 contenttitle),而非单一字符串
metadata(数组)每个任务一条,含保留任务 __planner____final__
流式 planning 事件首先发出一个 orchestration.phaseplanning 的 chunk,携带有序的 plan,其后紧跟 __planner__ 的 metadata 事件
流式任务 chunk每个任务的正文 chunk 都携带 orchestration 字段(task_idtask_seqtask_statustitle
流式 metadata 事件每个任务在其正文之后各发出一个独立 metadata 事件(值为单个对象,而非数组)

任务生命周期

字段说明
task_id任务标识;__planner____final__ 为保留值
task_seq执行顺序;0 为规划器
task_status任务状态,如 DONE
tag任务角色,如 orchestrationsearchreasoningwritingaggregation
title可读的任务标题

编排模式下每个任务单独计费(每个任务一条 metadata/billing),且可能使用不同子模型。渲染前请先将 choices[].message.content 按 JSON 解析,并对所有任务 metadata 的 billing.credits_used 求和。

确认路由结果

信号说明
metadata.modelJoyToken 最终模型
metadata.tier实际计费/路由档位
metadata.billingCredits 和 token 消耗

常见排查

现象优先检查
tier 不允许API Key 策略是否允许该 tier
没有候选模型tier、模型黑名单、钱包和 Key 预算
IP 不允许服务端出口 IP 是否在白名单
auto 失败策略、tier、余额过滤后是否还有候选模型
具体模型 ID 被拒绝改为 auto