某 Agent 线上平均一次会话 12 轮、调用 20+ 次工具和模型。目前 trace 是平的:一次用户请求只有一条根 span,工具调用和模型调用都打在同一层日志里。排查一个『答非所问』的 badcase,工程师要手工捞日志约 2 小时。目标是把定位时间压到 10 分钟内,并支持成本归因(token 花在会话的哪一步、哪个工具、哪类用户)。请给出可观测性方案:trace 模型怎么建、采样怎么定、成本怎么归因。
面试官在考什么
判断候选人能否为多轮 Agent 设计可观测体系(span 语义建模、采样策略、成本归因、badcase 闭环),而不是接个 APM 打日志。
回答框架 · 前两步
- Trace 模型:会话 → 轮次 → 模型调用/工具调用 → 子步骤;工具调用是模型调用的子 span,携带工具名、入参摘要、耗时、结果状态;流式与异步必须显式透传 trace context。
- 记录语义事件而不是纯日志:选中了哪个工具、为什么放弃某个工具、是否触发重试或回退——这些决策点才是定位『答非所问』的关键。
还有 3 条答案要点、 3 层追问、 5 个常见坑, 以及针对你简历的追问路径,在定制报告里。
同一能力域的其他题
- 你要为一个 Agent 系统设计评测 harness,会包含哪些维度?怎么保证评测结果可复现?
- Agent 的工具编排里,工具多了以后模型选错工具、参数填错怎么办?你会怎么设计降低这类错误?
- 提示词版本管理你怎么做?线上提示词改了以后,怎么知道是变好还是变坏?
- 你的 Agent 要完成『查上周失败订单 → 查每个订单的用户信息 → 给用户发补偿邮件』。可用工具:list_failed_orders(约 200ms,可能返回 500 条)、get_user(约 80ms/次)、send_email(写操作,第三方接口超时后会重复投递)。模型走 ReAct 循环,最多 20 步。请给出你的编排设计:哪些步骤并发、并发度怎么定、写工具如何避免重复发送、单步超时与整体预算怎么设、工具失败后是重试还是把错误回填给模型继续。
- 某内部 Agent 有 30 个工具,线上平均一次任务发起 8 次工具调用,其中约 60% 彼此无依赖;单次 LLM 规划延迟约 400ms,单次工具平均 200ms、p99 2s,有 5 个工具单次返回 100KB+ 文本。延迟预算要求 p95 小于 3s。你会把编排做成「每步让 LLM 选下一个工具」还是「先让 LLM 出完整 DAG 再执行」?给出你的决策条件、并行策略、失败重试与返回体裁剪方案,并说明工具数从 30 涨到 300 时哪些设计会先失效。
- 某 Agent 平台挂载 40 个工具(内部 API、检索、代码执行),当前做法是把全部工具 schema 注入 system prompt,约占 8k token。线上数据显示:工具选错率 22%,其中 60% 的错误集中在 6 个语义高度相近的工具之间;端到端 p95 延迟随工具数量近似线性增长。业务方要求半年内把工具扩到 120 个,同时选错率不能再涨。请给出你的编排演进方案:分几步、每一步解决什么问题、每一步用什么指标决定『继续推进』还是『回退』。