Skip to content
阅读进度0%
知识库待复核

Agent 面试题

从模型决策、工具执行、记忆、恢复和授权解释 Agent 面试题,配有工程案例与验证方法。

我的学习与文章检索 →
学习记录仅保存在当前浏览器,可随时取消标记。

Agent 面试题 ​

用“能够查订单、生成处理方案并提交工单的助手”贯穿回答。面试的重点是模型如何参与决策,以及系统如何约束、记录和恢复这些决策。

核心问题 ​

1. Agent 和固定工作流怎么区分? ​

固定工作流由代码确定主要步骤;Agent 允许模型根据观察结果选择后续行动。二者可以组合:代码负责鉴权、预算和状态提交,模型负责在限定工具中选择下一步。任务步骤稳定、规则能覆盖时,先考虑普通程序或固定工作流,减少不必要的模型调用。

追问:只调用一次工具算不算 Agent?先约定定义,随后讨论实际控制权和失败模式,标签本身不能证明系统可靠。参见 Agent 全景。

2. Tool calling、planning、reflection、memory 分别负责什么? ​

能力输入与输出工程边界
工具调用任务状态 → 工具名称和参数模型提出调用,执行器验证并执行
规划目标与约束 → 步骤与依赖计划不是事实,执行后要更新状态
反思产物与反馈 → 修正建议缺少外部证据时可能重复原错误
记忆已发生事件 → 可检索的状态或摘要需要来源、时效、权限和删除机制

不要把对话摘要当作外部动作的最终执行记录。是否成功创建工单,应以业务系统返回与查询结果为准。继续阅读 记忆管理 与 规划。

3. 工具超时后可以直接重试吗? ​

先区分结果:请求未发送、明确失败、结果未知。读取通常可在预算内重试;创建工单等写入可能已经生效,只是响应丢失。应使用稳定的幂等键或查询业务状态,确认后再决定是否重试。

失败案例:客户端超时后重新生成一个幂等键,仍可能重复创建工单。幂等键应绑定同一业务动作,重试时复用;真正的新动作才使用新键。更多见 异常处理与恢复。

4. 什么时候使用多 Agent? ​

当子任务能独立执行、输入边界清楚、结果可合并时,考虑并行分工,例如分别核对多个独立文档。若所有子任务都争用同一可写状态或需要频繁交换上下文,协调开销可能超过收益。

实验设计:让单 Agent 与多 Agent 在相同工具权限、任务集和成本预算下比较成功率、总 token、完成延迟和冲突次数。增加角色数量本身不算改进。参见 多智能体协作。

5. 如何防止提示注入导致越权执行? ​

网页、检索结果和工具输出都作为外部数据处理,不能升级为系统授权。执行器在每次工具调用时检查真实身份、资源权限、参数范围及业务条件;涉及重要外部变更时,根据产品规则展示具体动作并取得确认。

关键词过滤和第二个模型可以辅助检测,但不能替代服务端权限校验。测试应包含正常任务夹带恶意指令、工具描述污染,以及合法参数指向无权限资源等情况。详见 安全。

追问角度 ​

  • 如何停止:明确完成条件、最大步骤、时间/token 预算、取消信号和无法继续时的交接状态。
  • 如何恢复:保存任务 ID、已确认的动作、待确认结果、检查点和下一步,避免恢复时重复执行写入。
  • 如何评估:验证最终业务状态、参数正确性、越权次数、人工接管原因,以及每个成功任务的成本。

示例回答骨架 ​

“我会把订单查询做成只读工具,把工单创建拆成草稿和提交。运行时负责 schema 校验、权限、预算与幂等,模型只在这些边界内决定下一步。每次调用保存请求 ID 和结果状态;超时先查结果,不立即重复写入。评估同时看最终任务是否完成、是否越权,以及失败后能否恢复。”

自测 ​

画出“工单已创建但响应丢失”的恢复路径;说明哪些信息可以重新生成,哪些状态必须从业务系统确认。用 评估与监控 设计一个能够发现重复写入的指标。

基于 VitePress 构建