You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
提案讨论:在 model 路由层支持挂载外部 learned-routing provider(orchestrator-as-provider)
#2415
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
背景
当前 aevatar 的 model 选择是一条声明式优先级链 + provider failover:
caller-explicit model > account default > chat route policy > deployment defaultIngressModelPreferenceChatRoutePolicyGAgent→ projection → readmodel):ChatRouteResolverFailoverLLMProviderCompositeLLMProviderFactory选择依据是声明式元数据(model / channel / command / tool_mode / scope policy),不是 query 的难度或质量感知。这是有意的轻量设计:LLM 经 NyxID 黑盒经纪,model 选择留给声明式策略 + failover,"组合 > 单体"的编排放在更高的 agent / workflow / member 层。
缘起
Sakana Fugu(2026-06)及其开源复刻 OpenFugu 提出 learned per-query 模型选择:一个小模型 + 学出来的打分头,按每个 query 在一池 worker 大模型里选"最该回答这题"的那个,纯编排(不改权重)就能显著高于最强单体,对外是单一 OpenAI 兼容端点。
提案:把外部 learned router 作为 provider 接入(orchestrator-as-provider)
把这类 orchestrator 作为外部 OpenAI 兼容 provider 接入现有 provider 池:
fugu);ChatRoutePolicyGAgent的default_target可以把选定范围的请求 forward 给它。之所以可行且顺架构:provider 池本身已经是 OpenAI 兼容、可热插拔、composite 的(
CompositeLLMProviderFactory),接入点天然存在,不需要改动内核的 model 选择算法——aevatar 把"选哪个底层模型"这件事委托给这个外部 provider,自己仍只面对一个 provider 契约。需要先讨论清楚的开放问题
ChatStreamAsync是主链强约束;orchestrator 选完模型后能否无损透传 token stream,还是只能整体返回?gen_ai.provider.name = provider;经 orchestrator 后实际回答的 worker 对 aevatar 不可见,是否需要回传 / 如何归因。All reactions