工程实践面试题(E01–E20)
20 道工具、RAG、状态、性能和测试题。
回答时覆盖正常路径、失败路径、可观测性和验证。
建议先口答 60~90 秒,再展开【追问问题】。不要背句子,要说清判断依据和取舍。
E01|如何设计一个好工具?
简明答案: 职责单一、名称和描述清楚、输入 Schema 严格、输出短而结构化,并说明副作用、超时和错误。业务层独立鉴权,不能依赖模型自觉。
【追问问题】
- 工具该粗还是细?
- 如何让模型少选错工具?
关联知识: 工具设计
E02|工具调用如何保证幂等?
简明答案: 为副作用请求生成稳定幂等键,服务端记录执行状态;重试时返回原结果而非重复执行,并区分可重试、不可重试和结果未知错误。
【追问问题】
- 超时后怎样判断是否已成功?
- 支付或发信工具怎样设计?
关联知识: 工具设计
E03|Agent 重试策略如何设计?
简明答案: 只对暂时性错误重试,采用指数退避和抖动,设置总次数与总时限。参数错误先修正,权限错误停止;副作用操作必须绑定幂等。
【追问问题】
- 模型重试和系统重试有何区别?
- 何时切换备用模型?
关联知识: 生产架构
E04|如何处理工具超时?
简明答案: 设置单工具超时和任务总截止时间;可取消则取消,不可取消则标记结果未知并异步核对。返回简洁可行动的错误,不暴露堆栈和密钥。
【追问问题】
- 长工具怎样异步化?
- 超时后重试有何风险?
关联知识: 生产架构
E05|如何管理长上下文?
简明答案: 先删除无关和重复内容,再结构化关键状态、压缩已完成阶段;原始材料放外部按需检索。摘要保留目标、约束、ID、结果、阻塞和下一步。
【追问问题】
- 摘要漂移如何发现?
- 滑动窗口有何缺点?
关联知识: 上下文工程
E06|RAG 的 Chunk 怎么切?
简明答案: 优先按标题、段落、表格和代码等语义边界切分,再按任务调长度与重叠。Chunk 应能独立回答局部问题,并保留来源、章节、时间和权限。
【追问问题】
- 固定长度切分何时可用?
- 父子块检索是什么?
关联知识: RAG 全链路
E07|混合检索有什么价值?
简明答案: 关键词检索擅长专有名词和精确匹配,向量检索擅长语义改写。混合召回后融合或重排通常更稳,但必须用真实问题评测。
【追问问题】
- RRF 是什么思路?
- 何时不需要重排?
关联知识: RAG 质量排查
E08|如何评测检索层?
简明答案: 用带相关文档标注的问题集计算 Recall@K、MRR、nDCG,并检查权限过滤、空结果率和延迟。检索与最终回答分开评测。
【追问问题】
- 没有标注集怎么办?
- Recall 高但回答差说明什么?
关联知识: Agent 评测
E09|如何评测工具调用?
简明答案: 分别看工具选择、参数、顺序、错误恢复、副作用和最终环境结果。参数可用 Schema 校验,轨迹看关键步骤,最终以真实结果为准。
【追问问题】
- 轨迹不同但结果正确怎么算?
- 如何测并行调用?
关联知识: Agent 评测
E10|什么是 Trace?
简明答案: Trace 是一次任务的端到端记录,由模型、工具、状态转移、审批和错误等 Span 组成。用于定位质量、延迟和成本,但需脱敏和控制保留期。
【追问问题】
- 日志、指标、Trace 有何区别?
- Trace 中不能记录什么?
关联知识: 可观测性
E11|如何降低 Agent 延迟?
简明答案: 先用 Trace 找关键路径,再减少无效轮次和上下文,缓存稳定前缀与检索结果,并行独立工具,流式返回;不要盲目换小模型。
【追问问题】
- 并行会引入什么问题?
- 优化单次延迟还是任务时间?
关联知识: 成本与性能
E12|如何降低 Agent 成本?
简明答案: 关注每个成功任务的总成本。通过模型路由、缩短上下文、减少重复检索、限制循环、缓存和批处理优化,同时监控成功率。
【追问问题】
- 小模型一定更省钱吗?
- 如何设置预算熔断?
关联知识: 成本与性能
E13|如何做并行工具调用?
简明答案: 只并行互不依赖且无冲突副作用的调用。保留 call_id,统一处理部分失败、超时和无序合并;写操作需锁、版本或冲突检测。
【追问问题】
- 什么时候必须串行?
- 部分成功如何返回?
关联知识: 工作流模式
E14|Agent 状态怎样持久化?
简明答案: 在可恢复边界写 Checkpoint,包含状态版本和并发字段。外部副作用用 outbox、幂等键或事务记录对齐,从最后确认步骤恢复。
【追问问题】
- Checkpoint 频率怎么选?
- Schema 变更如何迁移?
关联知识: 持久化与人工介入
E15|如何测试非确定性 Agent?
简明答案: 对 Schema、路由、权限、状态转移和工具适配做确定性测试;对模型行为用固定评测集多次运行,比较分布和回归阈值,不断言完整文本一致。
【追问问题】
- Mock LLM 有何局限?
- 如何控制评测成本?
关联知识: 测试与发布
E16|如何做模型路由?
简明答案: 按风险、难度、模态、延迟和成本选择。定义可观测特征与兜底,再用评测验证;不让模型随意选择更高权限或更高成本模型。
【追问问题】
- 如何判断任务难度?
- 路由错误如何监控?
关联知识: 模型选型
E17|如何设计 Agent API?
简明答案: 把创建任务、查询状态、提交审批、取消和获取结果分开;长任务返回 task_id,状态机明确,并支持幂等和事件流。
【追问问题】
- 同步接口何时足够?
- 取消如何传播到工具?
关联知识: 生产架构
E18|如何处理流式输出?
简明答案: 区分临时文本、最终文本、工具和状态事件;客户端按类型渲染,断线从游标恢复。未通过输出校验的内容不能当最终业务结果。
【追问问题】
- 工具等待期间展示什么?
- 流式内容如何安全检查?
关联知识: 生产架构
E19|如何做 Prompt 版本管理?
简明答案: Prompt 与代码一样需要版本、评测和发布记录。保存模板、变量 Schema、模型配置与变更说明,灰度验证并支持回滚。
【追问问题】
- Prompt 与模型升级应一起改吗?
- 如何避免补丁式提示词?
关联知识: 测试与发布
E20|生产 Agent 最低监控项有哪些?
简明答案: 任务成功率、步骤数、工具错误率、循环率、端到端延迟、Token/费用、人工介入率、安全拦截和按版本分组的回归趋势。
【追问问题】
- 平均值为什么不够?
- 如何给业务定义 SLO?
关联知识: 可观测性