一、先给 Agent 下一个定义Agent LLM大语言模型 工具Tools 记忆Memory 规划Planning简单说Agent 就是一个能自主感知环境、做出决策、执行行动的智能体。传统 LLM 只能回答问题而 Agent 能完成任务。两者的核心区别传统 LLMAgent输入单次 prompt目标 环境反馈输出一段文本一系列行动 最终结果能力边界模型知识截止日期可调用工具获取实时信息交互方式一问一答多轮自主循环二、Agent 的核心架构2.1 四大组件┌─────────────────────────────────────┐ │ Agent │ │ ┌──────┐ ┌──────┐ ┌───────────┐ │ │ │ 记忆 │ │ 规划 │ │ 工具调用 │ │ │ │Memory │ │Plan │ │ Tool Use │ │ │ └──┬───┘ └──┬───┘ └─────┬─────┘ │ │ │ │ │ │ │ └─────────┼─────────────┘ │ │ ▼ │ │ ┌─────────┐ │ │ │ LLM │ │ │ └─────────┘ │ └─────────────────────────────────────┘1LLM —— 大脑负责理解任务、分解目标、推理决策。Agent 的智能上限取决于底层模型的能力。2Tools —— 手脚让 Agent 能执行 LLM 本身做不了的事搜索工具Google Search、Wikipedia—— 获取实时信息代码执行器Python Interpreter—— 计算、数据分析API 调用数据库查询、发送邮件、操作文件多模态工具图片生成、语音合成3Memory —— 记忆类型说明举例短期记忆当前对话上下文用户刚才说了什么长期记忆持久化存储的信息用户偏好、历史任务工作记忆当前任务中间结果上一步工具调用的返回值4Planning —— 规划让 Agent 不仅反应还能谋划任务分解把复杂目标拆成可执行的子任务反思与修正根据中间结果调整后续计划多路径探索生成多个方案并行评估三、Agent 的工作流模式这是面试高频考点务必掌握。3.1 ReActReasoning Acting最经典的 Agent 模式交替进行思考Thought→ 行动Action→ 观察Observation用户: 帮我查一下今天北京的天气然后决定穿什么 ​ Thought: 我需要先获取北京今天的天气 Action: search_weather(北京, 2026-06-15) Observation: 北京今天晴15°C ~ 28°C ​ Thought: 晴天气温适中建议穿薄外套或长袖T恤 Action: Finish[建议穿薄外套早晚偏凉可带一件风衣]核心思想让 LLM 在每一步都输出思考过程显式推理下一步该做什么。3.2 Plan-and-Execute先做全局规划再逐步执行用户: 帮我做一个竞品分析报告 ​ Plan: 1. 搜索竞品列表 2. 逐一收集竞品信息 3. 对比分析各维度 4. 生成 PDF 报告 ​ Execute: Step 1 → Step 2 → Step 3 → Step 4 每步执行后可调整后续计划。3.3 Multi-Agent多智能体协作多个 Agent 各自扮演不同角色协作完成复杂任务Manager Agent: 写一份新产品发布方案 ├── Research Agent: 搜索市场数据 ├── Writer Agent: 撰写文案 └── Reviewer Agent: 审核修改3.4 Function Calling vs Agent 的关系很多面试官会问Function Calling 是不是就是 Agent不是。Function Calling 是 Agent 的工具调用机制是 Agent 的手。真正的 Agent 还需要记忆管理和自主规划能力。可以说 FC 是实现 Agent 的关键技术但不是 Agent 的全部。四、动手实现一个简易 AgentPython理论讲完上代码。以下是一个基于 ReAct 模式的极简 Agent 实现import json import re ​ class SimpleAgent: def __init__(self, llm, tools): self.llm llm # 大模型接口 self.tools tools # 工具字典 {name: func} self.memory [] # 对话记忆 ​ def run(self, task): 执行任务的主循环 prompt self._build_prompt(task) ​ for _ in range(10): # 防止无限循环最多10轮 response self.llm(prompt) ​ # 解析 LLM 输出提取 Action action, action_input self._parse_action(response) ​ if action Finish: return action_input ​ # 执行工具调用 tool self.tools.get(action) if tool: observation tool(action_input) prompt f\nObservation: {observation}\n self.memory.append((action, action_input, observation)) else: prompt f\n错误: 工具 {action} 不存在\n ​ return 任务超出轮次限制 ​ def _build_prompt(self, task): 构造 ReAct 格式的 prompt tools_desc \n.join( f- {name}: {func.__doc__} for name, func in self.tools.items() ) return f你是一个智能助手可以使用工具完成任务。 ​ 可用工具: {tools_desc} ​ 请按以下格式响应: Thought: 你的思考过程 Action: 工具名称 Action Input: 工具输入 ...可重复多轮 Thought: 我现在知道最终答案了 Action: Finish Action Input: 最终答案 ​ 任务: {task} ​ def _parse_action(self, text): 从 LLM 输出中提取 Action 和 Action Input action_match re.search(rAction:\s*(.?)\n, text) input_match re.search(rAction Input:\s*(.), text) ​ action action_match.group(1).strip() if action_match else Finish action_input input_match.group(1).strip() if input_match else text return action, action_input ​ ​ # 使用示例 ​ def search_weather(city): 搜索指定城市的天气信息 return f{city}今天晴15°C ~ 28°C微风 ​ def calculate(expression): 执行数学计算参数为数学表达式 return str(eval(expression)) ​ # 模拟 LLM实际使用时应替换为真实 API 调用 def mock_llm(prompt): 简易模拟 LLM —— 实际项目中替换为 API 调用 if 天气 in prompt and Observation not in prompt: return Thought: 我需要查询天气 Action: search_weather Action Input: 北京 elif Observation in prompt: return Thought: 查询到天气了可以给出穿衣建议 Action: Finish Action Input: 今天北京晴天15~28°C建议穿薄外套早晚可加一件风衣。 return Thought: 我理解了\nAction: Finish\nAction Input: 任务完成 ​ agent SimpleAgent( llmmock_llm, tools{ search_weather: search_weather, calculate: calculate, } ) ​ result agent.run(查一下北京的天气告诉我穿什么) print(result)实际项目中把mock_llm替换为openai.ChatCompletion.create()或其他 LLM API 即可。五、主流 Agent 框架对比框架特点适用场景LangChain生态最丰富组件化设计快速原型、复杂链路LangGraph有状态图编排支持循环/分支复杂多步 Agent 流程AutoGen(微软)多 Agent 对话角色分工明确协作型任务CrewAI角色驱动的多 Agent 协作团队模拟OpenAI Agents SDK原生支持简洁 API基于 OpenAI 的 AgentAnthropic Claude APITool Use 原生支持简洁单 Agent 任务选型建议简单任务直接用 LLM 原生 Function Calling复杂工作流用 LangGraph多角色协作考虑 AutoGen 或 CrewAI。六、Agent 当前面临的挑战面试中如果被问到Agent 有什么局限性可以从以下几个角度回答6.1 可靠性问题幻觉LLM 可能生成错误的工具调用或结论循环死锁Agent 可能陷入无限思考-行动的循环上下文窗口长任务会导致上下文溢出6.2 工程化挑战评估困难Agent 的输出是非确定性的难以用传统指标衡量成本控制多步推理意味着多次 LLM 调用Token 消耗大延迟问题多轮交互导致响应变慢6.3 安全与对齐权限管控Agent 拥有工具执行权需要沙箱和权限控制对抗攻击Prompt Injection 可能让 Agent 执行恶意指令七、总结理解 Agent抓住一条主线LLM 提供智能Tools 提供能力Memory 提供连贯性Planning 提供策略。本文写于 2026 年 6 月技术迭代快建议结合最新的框架文档和论文持续学习。推荐阅读ReAct 论文: Synergizing Reasoning and Acting in Language ModelsAnthropic: Building effective agentsLangGraph 官方文档