跳转至

四十:Agent 概述自测题答案

来源:http://mp.weixin.qq.com/s?__biz=MzYyNTk3Njg1NA==&mid=2247484535&idx=1&sn=5b77a31324369480cfca0b1544fee5ef&chksm=f01eb70ec7693e182b619ccf01dd2af7aad1031fa1cf30f272f398a5d55585d803f8a8beec77#rd

参考资料

  • Agent 概述: https://www.woshipm.com/ai/6082990.html

  • 如何使用 Agent 工具: https://zhuanlan.zhihu.com/p/17412460686

  • ReAct paper: https://arxiv.org/pdf/2210.03629

  • LangChain Agents docs: https://python.langchain.com/docs/concepts/agents/

  • OpenAI Agents guide: https://platform.openai.com/docs/guides/agents

A. Agent 基础

1. 什么是 Agent?

Agent 是能感知环境、根据目标做决策并采取行动的系统。它不只是输出文本,而是能在环境中执行动作并根据反馈调整。 核心是目标驱动、行动和反馈循环。

2. 什么是 LLM Agent?

LLM Agent 是以大语言模型为核心决策器的 Agent,使用 LLM 进行理解、规划、工具选择和生成,并通过工具、记忆和反馈完成任务。 简化公式:LLM Agent = LLM + Goal + Tools + Memory + Planning + Feedback Loop。

3. LLM Agent 和普通 Chatbot 有什么区别?

Chatbot 主要回答用户问题。Agent 不只回答,还能规划步骤、调用工具、观察结果并继续行动。 Chatbot 告诉你怎么做,Agent 可以在授权后帮你做。

4. LLM Agent 和 Workflow 有什么区别?

Workflow 是固定流程,稳定可控;Agent 是动态决策,可以根据任务和反馈改变路径。 生产中常用 workflow 固定关键环节,只在有限节点让 agent 决策。

5. LLM Agent 和 Tool Calling 有什么区别?

Tool calling 是调用工具的能力。Agent 是围绕目标组织工具调用、记忆、计划和反馈的系统。 一次工具调用不等于完整 Agent。

6. 为什么“调用一次工具”不一定等于 Agent?

因为 Agent 需要目标驱动和多步反馈循环。如果模型只是根据用户请求调用一次天气 API 并回答,它更像工具调用应用,而非自主 Agent。 Agent 更强调持续决策和行动。

7. Agent 的核心循环是什么?

核心循环是:

Observe -> Think/Plan -> Act -> Observe -> ... -> Final
模型根据观察做计划,执行动作,再根据反馈继续。

8. Agent 系统中的 Observe、Plan、Act、Observation、Final 分别代表什么?

Observe 是读取输入和环境状态;Plan 是制定步骤;Act 是执行工具调用或动作;Observation 是工具或环境返回;Final 是最终结果。 这些组成 Agent 的闭环。

9. Agent 为什么需要目标或任务状态?

目标让 Agent 知道要优化什么,任务状态让 Agent 知道已经完成了什么、还缺什么。没有目标和状态,Agent 容易随机行动或重复操作。 复杂任务必须显式管理状态。

10. Agent 为什么比普通 LLM 应用更难评估?

因为不仅要评估最终答案,还要评估计划、工具选择、参数、执行过程、安全和成本。中间一步错误可能导致最终失败。 因此需要过程级 trace 和评估。

B. Agent 组件

11. 一个典型 Agent 系统包含哪些组件?

包括 LLM、目标、planner、tools、executor、memory、environment、observation、critic/verifier、controller 和日志系统。 不一定每个都显式存在,但复杂 Agent 通常需要。

12. LLM 在 Agent 中承担什么角色?

LLM 负责理解任务、生成计划、选择工具、解释观察结果、生成最终答案。它是 Agent 的推理和控制核心。 但工具权限和执行不应完全由 LLM 无约束控制。

13. Planner 的作用是什么?

Planner 把目标拆成可执行步骤,决定先做什么、后做什么、需要哪些工具。 计划质量直接影响任务成功率。

14. Tool/Action Space 的作用是什么?

Tool/Action Space 定义 Agent 可以采取哪些动作,例如搜索、数据库查询、代码执行、发邮件。 动作空间越大,能力越强,风险也越高。

15. Executor 的作用是什么?

Executor 负责实际执行工具调用,处理参数、权限、超时、错误和返回格式。 它是 LLM 决策和外部系统之间的安全接口。

16. Memory 的作用是什么?

Memory 保存对话、任务状态、用户偏好、中间结论和历史经验,帮助 Agent 进行连续任务和跨轮决策。 记忆要有写入、读取、过期和删除策略。

17. Critic/Verifier 的作用是什么?

Critic/Verifier 检查计划和结果是否正确,例如答案是否有证据支持、工具结果是否满足目标、是否需要重试。 它能降低幻觉和错误执行。

18. Controller 的作用是什么?

Controller 管理 Agent 循环,包括最大步数、停止条件、超时、降级、人工确认和权限控制。 它保证系统可控。

19. Environment 在 Agent 中指什么?

Environment 是 Agent 行动的外部世界,包括工具、数据库、网页、文件系统、用户界面、机器人环境等。 Observation 来自环境反馈。

20. 为什么复杂 Agent 需要可观测 trace?

因为 Agent 错误可能来自计划、工具、记忆、参数、观察或生成。没有 trace 无法定位问题,也无法审计安全风险。 生产 Agent 必须可回放。

C. Agent 分类

21. 按自主性,Agent 可以分为哪些类型?

可以分为低自主、中等自主和高自主 Agent。低自主流程固定,中等自主能选择工具和重试,高自主能长期规划和主动探索。 生产通常偏低到中等自主。

22. 低自主 Agent 适合什么场景?

适合高可靠、强流程、风险高的场景,例如固定客服流程、审批辅助、RAG 问答。 它牺牲部分灵活性换稳定性。

23. 高自主 Agent 有哪些风险?

风险包括不可预测行为、越权操作、成本失控、循环执行、错误计划和安全问题。 高自主需要强权限和监控。

24. 按工具使用能力,Agent 可以分为哪些类型?

包括 no-tool、retrieval agent、tool-using agent、code agent、browser agent、embodied agent。 工具越接近真实世界操作,风险越高。

25. Retrieval Agent 和 Tool-using Agent 有什么区别?

Retrieval Agent 主要调用检索工具获取知识。Tool-using Agent 可以调用更广泛工具,如 API、数据库、计算器、代码执行。 Retrieval 是工具使用的一种子集。

26. Code Agent 有哪些典型能力和风险?

能力包括读代码、改代码、运行测试、调试、生成脚本。风险包括破坏文件、执行危险命令、泄露凭据和引入 bug。 需要 sandbox、权限和版本控制。

27. Browser Agent 为什么安全风险较高?

它会读取外部网页并可能点击、填写表单。网页中可能包含 prompt injection,操作也可能产生真实后果。 需要域名限制、确认机制和敏感信息保护。

28. 按记忆能力,Agent 可以如何分类?

可以分为 stateless、short-term memory、long-term memory、episodic memory、semantic memory Agent。 记忆能力越强,隐私和污染风险越高。

29. short-term memory 和 long-term memory 有什么区别?

short-term memory 只在当前任务或对话中使用;long-term memory 跨会话保存用户偏好、经验或知识。 长期记忆需要过期、删除和权限控制。

30. episodic memory 和 semantic memory 有什么区别?

episodic memory 保存事件和任务轨迹,例如上次如何解决问题。semantic memory 保存稳定知识和概念,例如用户偏好或业务规则。 二者服务不同检索方式。

31. 按任务类型,Agent 可以分为哪些类型?

包括 research agent、coding agent、data agent、RAG agent、workflow agent、customer support agent、personal assistant。 不同任务要求不同工具和安全策略。

32. 单 Agent 和多 Agent 各有什么优缺点?

单 Agent 简单、通信少、成本低。多 Agent 可角色分工、并行协作,但通信成本高、协调复杂、冲突更多。 多数任务先从单 Agent 做起。

33. 多 Agent 是否一定优于单 Agent?为什么?

不是。多 Agent 增加复杂度和成本,可能互相误导。只有任务确实需要分工、审查或并行时才有价值。 不要为了概念而堆 Agent。

34. 如何根据任务复杂度选择 Agent 架构?

简单固定任务用 workflow;需要少量动态选择用低自主 Agent;多步开放任务用中等自主 Agent;复杂协作任务才考虑多 Agent。 选择依据是任务不确定性和风险。

D. 工具、记忆与安全

35. 设计 Agent 工具时应包含哪些信息?

包括工具名、用途、参数 schema、返回格式、权限、错误码、成本、超时、是否需要确认和示例。 清晰工具定义能减少误用。

36. 为什么工具参数需要 schema?

schema 可以校验参数类型、范围和必填字段,防止模型生成非法或危险调用。 它也是审计和自动修复的基础。

37. 工具描述写得模糊会带来什么问题?

模型可能选错工具、传错参数或在不该调用时调用。工具描述是模型路由的重要依据。 描述应明确适用和不适用场景。

38. Agent 工具调用失败时应该如何处理?

应捕获错误,返回结构化失败信息,允许重试、换工具、降级或向用户说明。不能让模型编造工具结果。 失败是正常流程分支。

39. 记忆系统应该解决哪些问题?

解决保存什么、何时写入、如何检索、如何过期、如何删除、如何防污染、如何权限隔离。 记忆设计不当会造成长期错误。

40. Agent 记忆可能带来哪些风险?

包括隐私泄露、过期信息、错误记忆、prompt injection 持久化、用户偏好误用和跨用户污染。 长期记忆必须谨慎。

41. 什么是记忆污染?

记忆污染是错误、恶意或过期信息被写入记忆,并在未来任务中反复影响 Agent。 需要写入审核和记忆清理机制。

42. 如何设计记忆的写入和过期策略?

只写入稳定、有价值、经过确认的信息;敏感信息默认不写;设置过期时间;允许用户查看和删除;重要记忆记录来源和时间。 必要时由 verifier 审核写入。

43. Agent 中 prompt injection 为什么更危险?

因为 Agent 不仅能回答,还能调用工具和执行操作。注入攻击可能诱导越权调用、泄露数据或执行危险动作。 工具权限和系统边界必须强制。

44. 工具白名单和最小权限原则有什么作用?

白名单限制 Agent 可调用工具,最小权限限制工具能访问的数据和操作。即使模型被攻击,也能降低损害范围。 这是安全底线。

45. 为什么高风险工具调用需要人工确认?

高风险工具可能产生不可逆后果,如付款、删除、发送邮件。人工确认能防止模型误操作和注入攻击。 确认前 Agent 只能提出计划。

46. 如何防止 Agent 泄露系统提示或敏感数据?

不要把敏感信息放入不必要上下文;系统提示禁止泄露但不能只靠提示;工具端做权限过滤;输出做安全审查;日志脱敏。 安全应在架构层实现。

E. 生产化与排错

47. Agent 生产化为什么通常采用 workflow + agent 混合模式?

Workflow 稳定可测,Agent 灵活但不稳定。混合模式把关键安全流程固定,只让 Agent 在有限范围内做决策。 这更适合生产。

48. Agent 系统应该记录哪些 trace 信息?

记录用户输入、计划、工具选择、参数、工具返回、错误、重试、记忆读写、最终答案、token、成本和延迟。 trace 支持调试和审计。

49. Agent 常见失败模式有哪些?

包括目标理解错、计划错、工具选错、参数错、忽略结果、编造结果、循环、过早停止、记忆污染、越权。 需要分层排查。

50. 如何排查 Agent 目标理解错误?

检查用户输入解析、系统提示、任务分类和计划第一步。必要时让 Agent 先复述目标或生成结构化任务描述。 目标错会导致全链路错。

51. 如何排查 Agent 工具选择错误?

查看工具描述、路由提示、query 类型和候选工具列表。可加入工具选择示例、规则路由或专门 classifier。 也要检查工具名是否容易混淆。

52. 如何排查 Agent 工具参数错误?

检查 schema 是否清晰、参数单位是否说明、必填字段是否明确、错误信息是否反馈给模型。可用参数校验和自动重试。 复杂工具应拆成小工具。

53. 如何排查 Agent 忽略工具结果?

检查 prompt 是否要求基于 observation,工具返回是否太长或格式混乱,模型是否已有强先验。可以摘要工具结果或强制引用 observation。 不要让模型用先验覆盖工具事实。

54. 如何排查 Agent 循环调用?

查看 trace 中重复状态,检查停止条件、目标完成判断和工具失败处理。增加最大步数、重复检测和 fallback。 循环通常来自“不知道何时够了”。

55. 如何防止 Agent 过早停止?

要求检查任务清单和成功条件;使用 verifier 判断是否完成;对多步任务显式列出未完成项。 但也要避免无限继续。

56. 如何为 Agent 设计失败降级策略?

工具失败可重试或换工具;多次失败可降级为普通问答、返回部分结果、请求用户补充或转人工。 失败路径必须显式设计。

57. Agent 的线上监控应该包含哪些指标?

包括成功率、工具错误率、循环率、人工接管率、平均步骤数、延迟、成本、安全拦截率、用户满意度。 复杂系统还要监控每个工具的调用分布。

58. Agent 的离线评估集应该包含哪些样本?

包含简单任务、复杂多步任务、工具失败、权限限制、prompt injection、歧义请求、无答案请求和高风险操作。 评估最终答案和过程行为。

59. 为什么 Agent 的成本和延迟更难预测?

因为工具调用次数、重试次数、检索轮数和模型调用次数是动态的。不同任务路径差异很大。 需要预算控制和步骤限制。

60. 如何控制 Agent 的成本和延迟?

限制最大步数、缓存工具结果、并行可并行工具、使用小模型路由、简单任务走 workflow、控制上下文长度。 成本控制要和质量评估一起做。

F. 综合设计

61. 请设计一个客服 Agent 的核心组件。

包括意图分类、知识库检索、订单/账户查询工具、工单创建工具、权限校验、回复生成、人工转接和日志。 高风险操作如退款需要确认。

62. 请设计一个代码修改 Agent 的核心组件。

包括代码搜索、文件读取、编辑器、测试运行、静态检查、错误解析、版本控制和回滚策略。 执行命令要有 sandbox 和权限限制。

63. 请设计一个数据分析 Agent 的核心组件。

包括数据源连接、SQL 生成与校验、代码执行、图表生成、结果解释和权限控制。 重要的是防止错误 SQL 和数据泄露。

64. 请设计一个企业知识库 Agent 的核心组件。

包括 query classifier、RAG/GraphRAG/BM25 工具、权限过滤、rerank、citation verifier、答案生成和反馈收集。 复杂问题可引入 planner。

65. Agent 和 RAG 如何结合?

RAG 可以作为 Agent 的检索工具。Agent 根据问题决定是否检索、检索哪里、是否多轮检索和如何验证证据。 这就是 Agentic RAG 的基础。

66. Agent 和 Planning 有什么关系?

Planning 是 Agent 把目标转成行动步骤的能力。没有规划,Agent 只能被动响应或随机调用工具。 复杂 Agent 离不开规划。

67. Agent 和 Reflection 有什么关系?

Reflection 让 Agent 根据结果和错误反馈调整行为,例如重试、换工具或修正答案。 它提升长任务鲁棒性,但会增加成本。

68. 请比较 Chatbot、RAG App、Workflow、Tool Agent、Autonomous Agent。

Chatbot 主要对话生成;RAG App 加检索知识;Workflow 是固定流程;Tool Agent 能动态调用工具;Autonomous Agent 具备更高自主规划和长期执行能力。 能力和风险逐级上升。

69. 请给出 Agent 系统的安全设计清单。

包括工具白名单、最小权限、参数 schema、权限过滤、敏感信息隔离、高风险确认、最大步数、超时、prompt injection 防护、日志审计、输出审查和降级策略。 安全不能只靠提示词。

70. 请系统总结 Agent 的定义、组件、分类、风险和面试表达要点。

Agent 是目标驱动的感知、决策、行动系统。LLM Agent 用 LLM 作为推理控制核心,结合工具、记忆、规划、执行器、反馈和控制器完成任务。分类可按自主性、工具能力、记忆能力、任务类型和单/多 Agent 划分。 主要风险是工具误用、越权、循环、记忆污染和不可观测。面试表达重点是:Agent 不等于普通聊天,也不等于一次工具调用;真正的 Agent 需要多步行动和反馈循环,同时生产系统必须可控、可观测、可降级。

            预览时标签不可点




































<div class="