Q930Agent 架构真题解析Agent 架构AgentAlpha 社区真题库约 6 分钟更新 2026-09-29

[ ] 什么是 AI Agent

[ ] 什么是 AI Agent

1️⃣ 考察意图

面试官想看的不是你能背出“Agent = LLM + 工具”这个定义,而是考察你是否理解Agent与单纯LLM调用的本质区别,以及能否拆解其核心组件(规划、记忆、工具使用)的工程取舍。刁钻点在于:很多人把Agent等同于“调API的聊天机器人”,但面试官要的是你区分“反应式”与“主动式”智能,并展示你对ReAct、Plan-and-Solve等规划范式的理解。答好了能证明你具备系统设计思维,能落地复杂任务自动化,而非只会调Prompt。

2️⃣ 标准答

定义与核心差异AI Agent是一个能感知环境、自主决策并执行多步动作以实现目标的智能体。它与普通LLM调用的关键区别在于:LLM是“一次问答”,Agent是“循环执行”——它需要规划、记忆、工具调用,并在失败时自我修正。比如,用户说“帮我订机票”,LLM直接生成回复;Agent则会拆解为“查航班→比价格→填表单→确认支付”的多步流程。

核心组件

  1. 感知模块:接收用户指令或环境反馈(如API返回的JSON)。
  2. 记忆系统:
  • 短期记忆:用上下文窗口(如4K/8K tokens)存储当前对话或任务状态。
  • 长期记忆:用向量数据库(如Chroma、Pinecone)存储历史经验,通过embedding检索。
  • 工程取舍:短期记忆受限于token预算,需用滑动窗口或摘要压缩;长期记忆需权衡检索精度与延迟,常用BM25+embedding混合检索。
  1. 规划模块:
  • ReAct(Reasoning + Acting):交替输出“思考→行动→观察”,如“我需要查天气→调用get_weather(‘北京’)→返回结果”。
  • Plan-and-Solve:先生成完整计划,再逐步执行,适合复杂任务(如代码生成)。
  • 实际坑:ReAct易陷入循环(如反复调用同一工具),需设置最大步数(如10步)或引入“终止条件”Prompt。
  1. 执行模块:调用工具/API(如搜索引擎、计算器、数据库)。工具定义需用OpenAPI规范,并处理错误(如API超时重试3次)。

典型架构

  • 单Agent:如AutoGPT,一个LLM实例负责所有步骤,适合简单任务。
  • 多Agent协作:如ChatDev,分设“产品经理Agent”和“程序员Agent”,通过消息队列通信。取舍点:多Agent提升并行度,但增加协调开销(需定义角色协议和冲突仲裁)。

应用场景

  • 自动化任务:用Agent自动写周报(调用日历API获取事件→生成摘要→发送邮件)。
  • 代码生成:Agent调用编译器执行代码,根据报错信息迭代修复。
  • 客服系统:Agent先检索FAQ,若未解决则转人工,并记录上下文。

3️⃣ 答题模板(30 秒电梯版)

“这个问题我从定义、核心组件、工程取舍三个层面回答。定义上,AI Agent是能自主规划、记忆、调用工具的智能体,区别于LLM的单次问答。核心组件包括:ReAct规划模块、短期+长期记忆、工具执行模块。工程取舍上,短期记忆需用滑动窗口控制token,长期记忆用BM25+embedding混合检索平衡精度与延迟。总结一句:Agent的本质是‘循环执行+自我修正’,而非简单调API。”

4️⃣ 高频追问 & 应对

追问 1:ReAct和Plan-and-Solve有什么区别?什么时候用哪个?

ReAct适合动态环境(如实时数据查询),因为每步都根据观察调整;Plan-and-Solve适合确定性任务(如代码生成),因为计划可复用。取舍点:ReAct易陷入循环,需设最大步数;Plan-and-Solve若计划出错,需重新规划,成本更高。实际中,我常用ReAct+Plan-and-Solve混合:先生成粗略计划,再按ReAct执行,遇到异常时回退到计划层。

追问 2:Agent的长期记忆如何实现?怎么避免检索到无关信息?

用向量数据库(如FAISS)存储历史对话的embedding,检索时用余弦相似度。但纯向量检索可能忽略关键词匹配,所以我会混合BM25(k1=1.5, b=0.75)做稀疏检索,再用RRF(Reciprocal Rank Fusion)融合排序。坑:若记忆库太大(>10万条),检索延迟会飙升,需用HNSW索引(efConstruction=200, M=16)平衡精度与速度。

追问 3:Agent调用工具时,如何处理API返回的错误?

定义工具时,需在OpenAPI规范中声明错误码(如400/500)。Agent收到错误后,先重试(最多3次,指数退避),若仍失败则记录到记忆并切换策略(如换备用API)。实际坑:LLM可能误解错误信息(如把“rate limit”当成“参数错误”),需在Prompt中显式要求“先解析错误类型,再决定重试或放弃”。

5️⃣ 避坑 · 常见错误答法

  • ❌ “Agent就是LLM加个工具调用,比如调个搜索引擎。”→ ✅ “Agent的核心是规划循环(ReAct),LLM只是推理引擎。工具调用只是执行层,关键在如何根据观察修正下一步动作,比如设置最大步数防止死循环。”
  • ❌ “记忆就是存对话历史,用上下文窗口就行。”→ ✅ “短期记忆用上下文窗口(需滑动窗口压缩),长期记忆需向量数据库+BM25混合检索,并处理检索噪声(如用RRF排序)。否则Agent会遗忘关键信息或检索到无关内容。”

6️⃣ 简历呼应

  • 如果你有RAG项目:从“记忆系统”切入,对比RAG的检索增强与Agent的长期记忆,强调Agent需要多步推理(如ReAct)而非单次检索。
  • 如果你只做过传统NLP:用“规划模块”类比,比如把ReAct的“思考→行动”比作传统NLP的“意图识别→槽位填充”,但Agent多了循环和工具调用。
  • 如果你是校招无项目:聚焦AutoGPT论文复现,用LangChain实现一个简单Agent(调用计算器和搜索引擎),并记录其规划日志,展示对ReAct的理解。
  • Yao et al., “ReAct: Synergizing Reasoning and Acting in Language Models” (2022)
  • Wang et al., “Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models” (2023)
  • LangChain官方文档:Agent模块与Tool定义
  • AutoGPT开源项目:单Agent任务自动化实现
  • ChatDev论文:多Agent协作架构与角色协议设计

—— 本场面试完 ——

我们不做玩具级 Demo 教学。训练营的作业是开源项目和论文——我们想陪伴你,做出能改变生活、最后改变世界的项目。