Agent 面试指南

模型路由、成本与延迟要如何设计?

模型路由不是“便宜模型优先”,而是在能力、质量、成本、延迟、稳定性之间做可评测的策略。

SCOPE本章边界

本章聚焦模型作为资源池的治理:能力目录、策略路由、fallback、成本、延迟和漂移。具体模型价格、上下文窗口和能力必须动态刷新,不能写成静态事实。

30 SEC面试开口版

我会把模型路由设计成 Provider Abstraction + Capability Registry + Policy Router。先统一不同 provider 的消息、工具、streaming、usage 和错误,再给每个模型记录能力、上下文窗口、价格、延迟、工具支持、vision/reasoning、可靠性和数据策略。路由时按任务类型、风险、预算、SLA 和 eval 结果选择模型:主推理用强模型,摘要/分类/检索改写用便宜模型,高风险或失败升级,provider 故障降级,但每次路由都要记录原因和成本。

理解与记忆 · 术语、解析、关联知识点
专业术语Provider Abstraction:统一不同模型供应商接口。
Capability Registry:模型能力目录。
Policy Router:按策略选择模型。
SLA:服务等级目标。
Fallback:故障或质量不足时切换路径。
为什么这样回答先把路由讲成策略系统,而不是 if/else 省钱技巧,能自然覆盖质量、延迟、成本和可靠性。
小白解析不是所有路都开跑车,也不是所有路都骑自行车;要看货物、时间、路况和预算。
关联知识点Guga provider abstraction context pack 强调多 provider、辅助任务路由、fallback、凭证池、prompt caching 和定价感知。

1 MIN一分钟口语版

我会先把 provider 适配放到 transport 层,主循环只认统一 messages、tools、stream events、usage 和 normalized error。模型元数据来自配置、models.dev、provider endpoint 或人工覆盖,记录 context window、output limit、tool calling、vision、reasoning、价格、缓存、区域和数据保留。路由策略分主推理、辅助任务、验证任务和 judge 任务:主推理看质量和工具能力;摘要压缩走便宜模型;安全/发布走稳定模型;长上下文优先大窗口或压缩;超时、429、402、质量失败触发 fallback。所有路由决策进入 trace,eval 持续校准阈值。

理解与记忆 · 术语、解析、关联知识点
专业术语Transport:不同 provider 的格式适配层。
Auxiliary Model:摘要、分类、改写等辅助模型。
Prompt Caching:复用长 prompt 降低输入成本。
Rate Limit:限流。
Routing Trace:路由决策记录。
为什么这样回答一分钟版要把抽象层、元数据、路由策略、fallback、trace/eval 全接上。
小白解析公司用车系统要知道每辆车能装多少、多少钱、多久到、有没有司机,再按任务派车。
关联知识点OpenAI Agents SDK 有 model/model provider/model settings 抽象;Hermes smart model routing 记录上下文长度、models.dev、凭证池和 fallback。

FLOW从模型目录到路由决策

ADAPTTransport 统一 provider 消息、工具和错误。
CATALOG记录能力、价格、窗口、延迟和策略。
ROUTE按任务、风险、预算和 SLA 选择模型。
FALLBACK故障、限流、质量不足时降级或升级。
MEASUREtrace 记录成本延迟,eval 校准策略。

模型路由控制面

模型路由、成本与延迟要如何设计? Mermaid diagram 1

COMPARE主流方案怎么讲

OpenAI Agents SDK Models

Agents SDK 将 model 和 model provider 抽象出来,ModelSettings 承载 temperature、tool choice、parallel tool calls、truncation、reasoning、verbosity 等配置。

Hermes Smart Routing

Hermes 分离主推理和辅助任务,维护模型元数据、上下文长度、models.dev、凭证池和支付/限流 fallback。

OpenCode / Vercel AI SDK

OpenCode 采用统一 provider 层和模型元数据,把多供应商差异隔离在 provider/transform,而不是污染主循环。

Guga 设计方向

Guga 目标是 provider-neutral runtime:provider bridge、ProviderRouter、usage、成本、fallback 和 context window 都进入可观测事实。

DESIGN我会怎么设计

  1. Transport Layer各 provider 的 messages、tools、streaming、finish reason、usage、error 统一归一化,主循环不写 provider 分支。
  2. Model Metadata记录 contextWindow、maxOutput、toolCalling、vision、reasoning、cost、cache、region、dataPolicy、latencyStats。
  3. Task Classes主推理、摘要压缩、检索改写、安全分类、judge、代码修改、长上下文各有不同模型偏好。
  4. Fallback Policy429/5xx/timeout 走重试或同级切换;402/余额耗尽走 provider fallback;质量失败可升级模型。
  5. Cost Controls先减少轮次和上下文,再做小模型、缓存、批处理、并发限制和预算熔断。

TRADEOFF常见问题和优化

问题:便宜模型省钱但失败率高

按任务风险分层,小模型用于低风险辅助任务;失败或置信度低时升级,不让便宜模型承担高价值动作。

问题:路由策略太复杂

先用少量任务类型和静态规则,所有决策写 trace;等 eval 数据够了再调阈值或学习策略。

问题:多 provider 行为不一致

Transport 归一化只是第一步,还要有 provider conformance tests、tool-calling pairing tests 和 streaming tests。

问题:延迟来自多轮交互

优先减少无效轮次、工具选择错误和上下文膨胀,再做模型降级和缓存。

REVISION路由策略样例

条件路由决策
risk=high禁止小模型做最终动作;允许小模型做摘要,但必须保留 source refs 并由强模型或规则验证。
context > 80k先压缩和 artifact 化,再考虑长上下文模型;不要把最大窗口当默认方案。
tool_required=true必须选择支持 tool calling / structured output 的模型,否则改写任务或降级为人工。
provider_error=429同级 fallback 或排队;不要直接升级到昂贵模型把成本打爆。
quality_fail升级模型或提高 reasoning effort,并记录 fallback_chain 和质量信号。

模型元数据必须有 source、updated_at、confidence、override,并在 trace 中记录实际 usage;涉及价格、上下文窗口和 provider 能力的数字不要写死。

INTERVIEW高强度追问

面试官:模型路由的目标是什么?第二层追问:是不是就是省钱?

我:省钱只是一个目标。模型路由要同时满足任务质量、工具能力、上下文窗口、延迟、成本、稳定性、合规和数据策略。高风险任务宁可贵一点也要稳;低风险辅助任务可以便宜。路由是把模型当资源池治理,而不是简单用最便宜的。

理解与记忆 · 背后工程点

背后工程点:模型路由是多目标策略。
专业术语:
Quality:质量。
Cost:成本。
Latency:延迟。
Compliance:合规。
为什么这样回答:先纠正“省钱”等价路由的误区。
小白解析:医院不会所有病都找最便宜医生,也不会所有感冒都找专家会诊。
关联知识点:Guga provider abstraction 把成本、延迟、能力、fallback 和凭证都列为 provider 层问题。

面试官:Provider abstraction 怎么设计?第二层追问:内部消息格式选什么?

我:我会用内部统一消息和工具格式,transport 层负责转 Anthropic、OpenAI Responses、Chat Completions、Bedrock 等。内部格式要支持 role、tool call/result pairing、stream event、usage、artifact refs 和 provider-specific extension。选生态最大的格式做基线,但不要让主循环依赖某个 SDK 类型。

理解与记忆 · 背后工程点

背后工程点:Provider 适配要隔离在 transport,不污染 AgentLoop。
专业术语:
Transport:格式适配层。
Normalized Response:归一化响应。
Provider-specific Extension:供应商扩展。
Pairing:配对。
为什么这样回答:回答实现边界,避免抽象空泛。
小白解析:公司内部说普通话,对外再翻译成英语、日语或法语。
关联知识点:Hermes/OpenCode 都使用统一内部表示,再在出口做 provider 转换;Guga provider bridge 也走 provider-neutral contract。

面试官:模型元数据从哪里来?第二层追问:上下文长度和价格经常变怎么办?

我:来源分层:用户配置优先,provider /models 或官方元数据,其次 models.dev/本地缓存,最后保守默认。每条 metadata 带 source、updatedAt、confidence 和 override。价格和窗口变化要可刷新,但生产运行不能依赖每次联网;trace 记录实际 usage 校准估算。

理解与记忆 · 背后工程点

背后工程点:模型目录要有来源和刷新策略。
专业术语:
Model Metadata:模型元数据。
Override:覆盖配置。
Cache:缓存。
Confidence:置信度。
为什么这样回答:这能应对信息变化和供应商差异。
小白解析:车辆参数来自厂家、车队记录和手动标注,不能靠司机临时猜。
关联知识点:Hermes smart model routing 有多级上下文长度解析链、models.dev 集成和本地缓存。

面试官:主模型和辅助模型怎么分?第二层追问:摘要用小模型会不会丢关键事实?

我:主模型负责高风险推理和最终行动;辅助模型负责摘要、分类、检索改写、轻量 judge。摘要用小模型前要有结构化要求、protected facts、source refs 和 verification,比如保留用户约束、未完成事项、关键错误。高风险摘要或连续失败时升级模型。

理解与记忆 · 背后工程点

背后工程点:辅助模型省成本,但要用保护字段和评测约束质量。
专业术语:
Primary Model:主模型。
Auxiliary Model:辅助模型。
Protected Facts:受保护事实。
Source Ref:来源引用。
为什么这样回答:这把成本优化和 context 安全结合。
小白解析:助理可以整理会议纪要,但合同关键条款要律师复核。
关联知识点:Guga provider abstraction 建议主/辅分离路由;Context 章节强调 protected rules 和 artifact refs。

面试官:Fallback 怎么设计?第二层追问:模型失败后换模型会不会改变行为?

我:Fallback 要分故障类和质量类。429/timeout/5xx 可同级重试或切 provider;402 余额耗尽走支付降级;schema/tool calling 不兼容不能盲切,要检查 capability;质量失败升级强模型并记录 reason。换模型可能改变行为,所以 fallback 前后要保留 trace、model id、settings 和差异。

理解与记忆 · 背后工程点

背后工程点:Fallback 要能力兼容和可审计。
专业术语:
Rate Limit:限流。
Payment Fallback:支付降级。
Capability Check:能力检查。
Model ID:模型标识。
为什么这样回答:避免把 fallback 讲成简单 try/catch。
小白解析:航班取消可以换航司,但必须确认目的地、行李规则和签证要求都兼容。
关联知识点:Hermes auxiliary client 和 credential pool 处理 402/429/401 等不同 fallback;OpenAI ModelSettings 也提醒不同模型参数支持不同。

面试官:成本优化先做什么?第二层追问:是不是先换小模型?

我:我会先减少无效轮次和上下文,再换小模型。具体包括工具描述精简、capability discovery、artifact refs、大结果不进 prompt、缓存、摘要触发阈值、并行可并行的只读工具。小模型分层是第二步,因为如果上下文脏、工具选错,小模型只会更差。

理解与记忆 · 背后工程点

背后工程点:先减少浪费,再做模型降级。
专业术语:
Round Reduction:减少轮次。
Prompt Cache:提示缓存。
Artifact Ref:产物引用。
Capability Discovery:能力发现。
为什么这样回答:这是很实用的成本观。
小白解析:先少绕路、少带无用行李,再决定开省油车。
关联知识点:Guga context policy 和 tool result budget 都能减少 token;Hermes prompt caching 可显著降低长输入成本。

面试官:延迟优化怎么做?第二层追问:强模型慢,小模型快,直接路由不就行了吗?

我:延迟来自模型、上下文、工具、网络、重试和多轮。策略是:减少轮次,缩短上下文,选择合适 reasoning effort,辅助任务并行,工具超时和缓存,流式输出,必要时小模型预处理或草稿。高风险最终决策仍可能需要强模型,不能只看 p50 latency。

理解与记忆 · 背后工程点

背后工程点:延迟是端到端链路问题。
专业术语:
End-to-end Latency:端到端延迟。
p50/p95:分位延迟。
Streaming:流式。
Reasoning Effort:推理强度。
为什么这样回答:展示系统级优化而不是单点换模型。
小白解析:送餐慢可能是厨师慢、路远、排队、地址错,不只是换个骑手。
关联知识点:OpenAI ModelSettings 暴露 truncation、max tokens、reasoning 等参数;Guga trace 记录 usage 和 latency。

面试官:不同模型工具调用能力不同怎么办?第二层追问:不支持 parallel tool calls 呢?

我:模型目录要记录 toolCalling、parallelToolCalls、structuredOutput、vision、maxOutput 等能力。Runtime 根据能力投影不同 tool schema 和 execution plan;不支持并行就串行,不支持结构化输出就加验证和修复,不支持工具则不能路由到需要行动的任务。

理解与记忆 · 背后工程点

背后工程点:路由必须能力感知。
专业术语:
Tool Calling:工具调用。
Parallel Tool Calls:并行工具调用。
Structured Output:结构化输出。
Capability-aware Routing:能力感知路由。
为什么这样回答:模型不是可任意替换的黑盒。
小白解析:不能派没有吊车的车去吊重物。
关联知识点:OpenAI Agents SDK ModelSettings 包含 tool_choice、parallel_tool_calls 等;Hermes model metadata 记录工具、视觉、reasoning 支持。

面试官:如何避免 vendor lock-in?第二层追问:统一抽象会不会损失高级能力?

我:核心路径 provider-neutral,provider 特性通过 capability flags 和 extension fields 暴露。主循环不依赖某家 SDK 类型,但允许具体 transport 使用 prompt caching、reasoning、computer use 等高级能力。抽象不是抹平差异,而是让差异显式、可测试、可路由。

理解与记忆 · 背后工程点

背后工程点:好的抽象保留差异,但不让差异污染核心。
专业术语:
Vendor Lock-in:供应商锁定。
Extension Field:扩展字段。
Capability Flag:能力标记。
Conformance Test:契约测试。
为什么这样回答:平衡抽象和能力是架构重点。
小白解析:插座标准统一,但高速充电能力可以标出来,不必把每个电器焊死在墙上。
关联知识点:Guga 小内核大外围和 ProviderRouter 就是为了隔离 provider 差异。

面试官:路由策略怎么评测?第二层追问:怎么证明新策略更好?

我:用同一批任务比较 baseline 和新策略:成功率、失败分类、成本、p50/p95 latency、tool error、安全回归、用户接管率。还要分任务类型看,不能平均数掩盖高风险任务退化。路由决策 trace 要记录候选模型、选择原因和 fallback。

理解与记忆 · 背后工程点

背后工程点:模型路由也要进 eval/release gate。
专业术语:
Baseline:基线。
Segment:分群。
Routing Reason:路由原因。
Cost per Success:单次成功成本。
为什么这样回答:把路由从经验调参变成可验证策略。
小白解析:新派车规则不能只看平均油耗,还要看急件有没有迟到。
关联知识点:评测章节的 release gate 同样适用于 model routing;Guga strategy 用 eval runs 统计真实任务完成率。

面试官:多租户企业环境模型路由要注意什么?第二层追问:数据能不能发到任意 provider?

我:要把 data policy 纳入路由:租户允许的 provider、区域、数据保留、PII、行业合规、私有模型优先级。敏感任务可能只能走企业指定模型或本地模型。路由器不是只看质量成本,还要看合同和合规边界。

理解与记忆 · 背后工程点

背后工程点:模型路由必须尊重数据治理。
专业术语:
Data Policy:数据策略。
Data Residency:数据驻留。
PII:个人信息。
Tenant Policy:租户策略。
为什么这样回答:企业面试经常追合规。
小白解析:有些文件只能在公司内网处理,不能拿去外面的复印店。
关联知识点:Guga strategy 提到未来 enterprise policy、credential pool、remote sandbox;安全章节也要求 tenant/scope。

面试官:一次路由决策要记录哪些字段?第二层追问:线上发现成本突然上涨怎么归因?

我:要记录 task_class、risk_level、candidate_models、selected_model、policy_version、reason、estimated_cost、actual_usage、latency、cache_hit、fallback_chain、provider_error、quality_signal。成本涨时能看是任务分布变了、上下文变长、缓存失效、fallback 变多、模型价格变化,还是策略阈值把更多任务升级到了强模型。

理解与记忆 · 背后工程点

背后工程点:路由决策必须可解释、可归因、可回放。
专业术语:
Policy Version:路由策略版本。
Fallback Chain:降级或升级链路。
Cache Hit:缓存命中。
Quality Signal:质量信号。
为什么这样回答:这把“我选了哪个模型”升级成可观测控制面。
小白解析:月底车队油费涨了,要知道是跑得更多、路更远、换了车、堵车多,还是调度规则变了。
关联知识点:评测与可观测性章节强调 trace 负责单次归因;Guga provider-neutral runtime 要把 usage、cost、fallback 写进事实。

面试官:Router 用规则还是让 LLM 自己选模型?第二层追问:LLM router 会不会被 prompt injection 影响?

我:第一版我会用可解释规则和 eval 校准阈值。LLM 可以做辅助分类,比如任务类型和风险标签,但最终路由要受 policy engine 约束,尤其不能让用户输入直接决定 provider、预算和数据边界。LLM router 如果读了不可信内容,确实可能被注入影响,所以安全边界、预算和合规必须是确定性控制。

理解与记忆 · 背后工程点

背后工程点:LLM 可以提供信号,但不能绕过确定性策略边界。
专业术语:
Policy Engine:策略执行器。
Task Classification:任务分类。
Risk Tag:风险标签。
Prompt Injection:提示注入。
为什么这样回答:面试官会担心“智能路由”把安全控制交给模型,这里明确控制权边界。
小白解析:前台可以建议挂哪个科,但医保限制、隐私规则和高危病例转诊不能由病人一句话决定。
关联知识点:Guga 小内核强调 policy 和 permission 是 runtime 控制,不是模型自由发挥;安全章节也要求不可信输入不能提升权限。

面试官:Provider conformance tests 具体测什么?第二层追问:只测能返回文本够吗?

我:不够。要测 message roundtrip、tool call/result pairing、parallel tool calls、structured output、stream event 顺序、usage 统计、finish reason、timeout、rate limit、错误归一化、max output、long context、unicode 和附件引用。每个 provider 升级 SDK 或模型版本前都跑契约测试,避免主循环被供应商差异击穿。

理解与记忆 · 背后工程点

背后工程点:多 provider 抽象必须靠契约测试守住。
专业术语:
Conformance Test:契约一致性测试。
Roundtrip:输入输出往返。
Finish Reason:模型结束原因。
Error Normalization:错误归一化。
为什么这样回答:统一接口最大的风险是“看起来统一,边界行为不同”。
小白解析:各种充电器都说支持快充,但要实际测电压、电流、过热保护和异常断电。
关联知识点:OpenAI Agents SDK 将 model/provider/settings 分层;Guga provider bridge 需要用 contract test 保证 provider-neutral contract 不退化。

面试官:Prompt caching 怎么进成本策略?第二层追问:缓存失效会不会导致成本抖动?

我:缓存适合稳定长前缀,比如系统规则、工具说明、项目上下文和长文档摘要。路由时要估算 cacheable_tokens、cache_hit_rate、首轮写入成本和后续节省。缓存 key 要包含模型、provider、prompt 版本、工具版本和关键上下文 hash。缓存失效要进 trace,否则成本抖动很难解释。

理解与记忆 · 背后工程点

背后工程点:Prompt caching 是路由经济模型的一部分,不只是 provider 功能。
专业术语:
Cacheable Tokens:可缓存 token。
Cache Hit Rate:缓存命中率。
Prompt Version:提示词版本。
Context Hash:上下文哈希。
为什么这样回答:这能体现你理解成本波动来自 prompt 结构和版本变化。
小白解析:常用资料可以提前复印成册,但版本变了就不能拿旧册子继续用。
关联知识点:Hermes smart routing 把 prompt caching 和模型成本一起考虑;Guga context policy 通过稳定前缀和 artifact refs 降低重复输入。

面试官:遇到 429 和配额不足怎么做?第二层追问:所有请求都 fallback 会不会把成本打爆?

我:要有 rate-limit aware scheduler。按租户、任务优先级、模型池和 provider 配额做队列、并发限制、退避、预算检查。低优先级任务可以延迟或降级,高风险交互任务才升级 fallback。fallback 也要受预算和能力约束,不是无限换更贵模型;超过上限要给用户透明反馈。

理解与记忆 · 背后工程点

背后工程点:限流不是简单重试,而是资源调度和预算控制。
专业术语:
Backoff:退避重试。
Priority Queue:优先级队列。
Concurrency Limit:并发限制。
Budget Guard:预算保护。
为什么这样回答:这能回答生产流量下的稳定性和成本风险。
小白解析:餐厅爆单时不是所有菜都叫专车送,要按急单、普通单和厨房能力排队。
关联知识点:Hermes credential pool 和 fallback 处理 429/402;Guga runtime 需要把预算和 fallback 写成可审计策略。

面试官:长上下文任务怎么路由?第二层追问:直接选最大窗口模型可以吗?

我:最大窗口不是默认答案。先看任务是否真的需要原文全量输入:能用检索、artifact refs、摘要、结构化索引解决,就不要把所有内容塞进 prompt。必须全局推理时再选大窗口模型。路由要比较压缩后质量、窗口风险、成本、延迟和关键事实保留率。

理解与记忆 · 背后工程点

背后工程点:长上下文路由要先做上下文治理,再做模型选择。
专业术语:
Context Window:上下文窗口。
Retrieval:检索。
Artifact Ref:产物引用。
Fact Retention:关键事实保留。
为什么这样回答:避免把大窗口当成架构捷径,体现成本和质量意识。
小白解析:查一本书不一定要整本背下来,先用目录和索引找到相关页,必要时才通读。
关联知识点:Context 章节强调事件账本、投影和压缩边界;Hermes 元数据会记录 context length 但仍要配合上下文策略。

面试官:模型版本漂移怎么处理?第二层追问:provider 悄悄更新模型导致质量变了怎么办?

我:生产要尽量 pin 具体 model id 或 dated version,metadata 记录发布日期和 deprecation。每次模型版本变更跑路由 eval 和 canary;线上 trace 要能按 model_version 聚合。发现漂移时可以回滚、降级、提高 guardrail 或更新 prompt。不能把“同名模型”默认当成行为稳定。

理解与记忆 · 背后工程点

背后工程点:模型是会变化的外部依赖,要版本化和监控漂移。
专业术语:
Model Pinning:固定具体模型版本。
Model Drift:模型行为漂移。
Canary:小流量灰度。
Deprecation:供应商下线或弃用。
为什么这样回答:这展示供应商依赖治理经验。
小白解析:同一家店换了厨师,菜单名字没变,味道也可能变,所以要试吃再全面上架。
关联知识点:评测章节的 release gate 和 trace 分群可以用来发现模型版本带来的质量、成本和延迟变化。

面试官:预算怎么强制执行?第二层追问:Agent 已经做到一半了,预算快没了怎么办?

我:预算要分 per-turn、per-run、per-tenant 和 per-tool,路由前预估,执行后用实际 usage 结算。快到上限时先压缩上下文、停掉低价值辅助任务、改用便宜模型或请求用户确认;高风险任务不能为了省钱跳过验证。超预算要可恢复地暂停,而不是静默失败。

理解与记忆 · 背后工程点

背后工程点:预算是 runtime 状态机的一部分,要能预估、扣减、暂停和恢复。
专业术语:
Budget Envelope:预算包络。
Preflight Estimate:执行前预估。
Usage Settlement:用量结算。
Pause and Resume:暂停和恢复。
为什么这样回答:成本控制要进入交互体验和恢复语义,而不是账单统计。
小白解析:装修做到一半预算不足,要先停下来确认方案,不能偷偷省掉承重墙检查。
关联知识点:Guga strategy 把预算、可恢复性和用户接管纳入 runtime 设计;评测章节也建议看 cost per successful task。

面试官:Model routing MVP 怎么做?第二层追问:第一版别做什么?

我:MVP 做 provider transport、model registry、task class、static policy、usage/cost tracing、basic fallback 和 conformance tests。先不做自动学习路由、复杂实时竞价、全 provider marketplace、凭证池高级策略。先让主推理和辅助任务分开,能解释为什么选模型,能在 eval 中比较效果。

理解与记忆 · 背后工程点

背后工程点:路由 MVP 先可解释、可测试,再智能化。
专业术语:
Static Policy:静态策略。
Conformance Test:契约测试。
Usage Trace:用量轨迹。
Marketplace:市场。
为什么这样回答:最后给出落地路径,控制范围。
小白解析:先有清楚派车规则和行程记录,再做智能调度。
关联知识点:Guga 迁移判断把 Transport ABC、主/辅分离、prompt caching 列为必须采用,凭证池和 models.dev 可 Phase 2。

PRINCIPLE我总结的核心范式

模型路由的核心原则是“先统一接口,再记录能力;先减少浪费,再分层模型;先用 eval 校准,再让策略自动化”。不要把路由做成省钱小技巧,它是 Agent runtime 的资源调度和质量控制面。