10. 面试题
初级
Q1:Agent Runtime 与 LLM Gateway 有什么区别?
参考答案:
- LLM Gateway 解决“调哪家模型”的问题:路由、限流、重试、多供应商统一接入。
- Agent Runtime 解决“怎么让模型持续执行任务”的问题:ReAct 循环、工具调用、状态管理、护栏、可观测。
- 典型关系:
Agent Runtime → LLM Gateway → LLM。
Q2:什么是 ReAct?
参考答案:
ReAct = Reasoning + Acting。模型在每一步先进行推理(Thought),然后决定执行什么动作(Action),Runtime 执行动作后把观察结果(Observation)回传给模型,循环直到任务完成。
Q3:Agent Runtime 为什么需要状态管理?
参考答案:
因为 Agent 任务通常是多轮的,需要记录当前处于 planning/acting/observing/done/error 哪个状态,还要支持 checkpoint 与断点续跑。
中级
Q4:工具调用时如何防止模型参数幻觉?
参考答案:
- 给工具提供清晰的 JSON Schema 和描述。
- Runtime 对参数做类型校验和范围检查。
- 参数错误时让模型重试,但限制重试次数。
- 对枚举值、路径等做白名单校验。
Q5:Agent 无限循环怎么解决?
参考答案:
- 设置
max_steps上限。 - 检测重复工具调用(相同 name + 相同参数)。
- 检测状态是否长期没有进展。
- 对模型提示“如果无法推进,请承认失败”。
Q6:长时任务如何保证可恢复?
参考答案:
- 每轮循环后 checkpoint:保存 state、messages、plan、trace_id。
- 使用外部持久化(Redis/Postgres)存储 checkpoint。
- 失败或进程重启后从最近 checkpoint 恢复。
- HITL 请求本身也是状态机的一部分。
- compaction 之后立即写新 checkpoint,避免恢复到压缩前状态与压缩后消息错位。
Q7:Agent Runtime 中 Guardrails 应该放在哪些位置?
参考答案:
- 输入层:过滤敏感/越权请求。
- 工具前置:检查参数、权限、调用次数。
- 工具后置:检查结果是否合规。
- 输出层:校验最终答案。
- 资源层:限制迭代次数、超时、token 预算。
高级
Q8:设计一个生产级 Agent Runtime,你会怎么设计?
参考答案:
- 数据面无状态:Runtime worker 可水平扩展,状态外置。
- 状态持久化:checkpoint 到 Redis/Postgres,支持断点续跑。
- 任务队列:接收任务后入队,worker 异步消费。
- LLM Client:通过 LLM Gateway 调用多模型,支持 fallback。
- Tool Registry:声明式注册,自动生成 schema,带权限标签。
- Executor:危险工具进沙箱,超时隔离。
- Guardrails:多层策略,HITL 高风险操作。
- Observer:OpenTelemetry trace + Prometheus metrics + 结构化日志。
- Eval:固定评测集 + 影子运行 + A/B 测试。
Q9:LangGraph 与 OpenAI Agents SDK 的主要区别是什么?
参考答案:
- OpenAI Agents SDK:SDK 式,Agent/Runner/Tool 抽象,快速落地;构建在 Responses API 上,2026-04 起支持任意 Chat Completions 兼容模型、原生沙箱与 subagents。
- LangGraph:图编排式,StateGraph/Node/Edge,显式状态管理 + checkpoint/durable execution,强持久化与可观测,适合复杂生产工作流;2025-10 已 GA,1.2.x(2026-10 最新 1.2.16)持续打磨 resume/checkpoint 正确性。
- 2026-09 之后的新变量:OpenAI 把 Codex harness 以 Agents API(2026-09-10 public beta)托管化(durable sessions、自动压缩、tool search、并行 subagents),与 Agents SDK 分层——API 托管更多 harness 职责,SDK 保留编排控制权。
- 选型:简单任务、SDK 平台化能力(沙箱/subagents)优先用 Agents SDK;复杂有状态、需要断点续跑与人工介入的任务用 LangGraph。2026 年两者都可对接 Temporal 等 durable 引擎与 OTel 可观测。
Q10:Agent Runtime 中如何处理工具执行失败?
参考答案:
- 参数错误:把错误信息作为 observation 回传,让模型修正后重试。
- 超时/异常:返回统一的 error observation,Runtime 决定是否 fallback。
- 连续失败:触发熔断或进入 error 状态。
- 不可恢复:记录失败 trace,必要时请求 HITL。
Q11:为什么 Agent 的可观测比传统服务更重要?
参考答案:
因为 Agent 的执行路径是模型动态决定的,无法像传统服务那样通过代码路径预测。必须记录完整的 thought-action-observation 链、guardrail 事件、token 成本,才能调试、审计和优化。落地时用 OpenTelemetry GenAI 语义约定做采集层(span 树 invoke_agent → chat → execute_tool),后端可替换 Langfuse / LangSmith / Datadog。
Q12:什么是 durable execution?为什么 Agent 特别需要它?
参考答案:
Durable execution 是把每次执行的输入输出记录到 journal,崩溃后从最后记录重放恢复的执行模型。Agent 特别需要它是因为:任务长(分钟到小时级)、每一步 LLM 调用都要花钱、且有外部副作用(写库、发邮件)。普通 checkpoint 恢复容易重复已完成的调用与副作用;durable 引擎(Temporal / Inngest / Restate / DBOS)通过事件溯源保证 exactly-once 语义。典型模式:Agent 循环作为 workflow,每个 LLM/工具调用作为一个 activity/step。
Q13:MCP 与 A2A 分别解决什么问题?Runtime 如何使用它们?
参考答案:
- MCP(Model Context Protocol):Agent ↔ 工具/数据的协议,解决能力发现与标准化调用;2026-07-28 规范转向无状态核心,部署成本大降,由 Linux Foundation Agentic AI Foundation 治理。
- A2A(Agent2Agent):Agent ↔ Agent 的协作协议,v1.0 于 2026-03 发布(签名 Agent Card、多租户、版本协商);IBM 的 ACP 已于 2025-08 合并进 A2A。
- Runtime 通过 MCP 接入工具生态(也可继续用 function calling),通过 A2A 与其他组织的 Agent 互通;两者互补,同属一个治理基金会。
Q14:2026 年托管 Agent Runtime(如 OpenAI Agents API、Claude Managed Agents)与自建 Runtime 如何取舍?
参考答案:
- 托管形态提供:durable sessions、自动上下文压缩、tool search、并行 subagents、托管沙箱(如 Agents API 2026-09-10 public beta);Claude Managed Agents 按 $0.08/session-hour 计费(仅 running 状态),2026-10-09 加入 dynamic workflows beta;AWS Bedrock AgentCore Managed Harness 2026-07 GA。
- 托管的优势:零基建、开箱即用的会话持久化与压缩、按量计费;适合任务标准化、团队小、上线速度优先的场景。
- 自建的理由:需要深度定制循环逻辑、跨模型供应商(托管通常绑定自家模型)、强合规隔离、或要把 Runtime 与内部权限/审计体系深度集成。
- 中间路线:用 Agents SDK / LangGraph 自建数据面,把沙箱、工具检索、durable 存储等横切能力外包给托管服务或专业引擎。
本章小结
面试中关于 Agent Runtime 的问题通常集中在:ReAct 循环、工具调用与参数校验、状态与持久化、Guardrails 与 HITL、可观测、框架对比。掌握本章问题,基本可以覆盖中级到高级面试场景。
参考来源