AI Agent核心概念与架构#
一句话答案#
AI Agent 是”以 LLM 为大脑、能自主决定下一步做什么并通过工具与环境交互”的系统:LLM 负责规划与决策,工具负责行动,记忆负责跨步骤/跨会话保持状态。它与普通 LLM 调用的本质区别是控制流由模型在运行时动态决定,而不是由代码预先写死(那是 Workflow);代价是不确定性、延迟与成本上升,所以”能用 Workflow 就别上 Agent”。
核心要点
1. 什么是 Agent:LLM + 工具 + 记忆 + 规划#
单次 LLM 调用是”文本进、文本出”的纯函数;Agent 则把 LLM 放进一个循环里,让它根据当前观察决定下一步:调用哪个工具、要不要再查一次、还是可以给出最终答案。四要素各司其职:
| 要素 | 作用 | 对应深挖 |
|---|---|---|
| 感知 Perception | 接收用户输入、工具返回、环境状态,组装进上下文 | Agent记忆与上下文工程 |
| 规划 Planning | 任务分解、选择下一步、对结果反思并修正 | Agent设计模式、Reflection与自我修正模式 |
| 行动 Action | 通过 Function Calling / MCP 调用外部工具或 API | [Function Calling与工具编排](/topics/ai-agent/Function Calling与工具编排)、MCP协议原理 |
| 记忆 Memory | 短期(本次对话/工作记忆)+ 长期(跨会话偏好与知识) | Agent记忆与上下文工程 |
2. 从 Chatbot 到 Agent 的光谱:关键分水岭是”谁决定控制流”#
Chatbot LLM + RAG Workflow Agent
单轮/多轮对话 → 先检索再生成 → 代码预定义流程,LLM 只在节点内填空 → LLM 在运行时决定调什么工具、走哪条路、何时停
确定性 ───────────────────────────────────────────────────────► 自主性/不确定性plaintextAnthropic 在 Building effective agents(2024-12)中把后两者明确区分:Workflow 是 LLM 和工具沿预先写好的代码路径编排,Agent 是 LLM 自己动态指挥流程与工具使用。常见 Workflow 模式只需点名即可:Prompt Chaining(串行分步)、Routing(分类后分发)、Parallelization(并行分片/投票)、Orchestrator-Workers(中心拆任务、动态派发)、Evaluator-Optimizer(生成-评估循环)。它们的共同点是”分支和循环次数由代码掌控”,一旦把”下一步做什么”交给模型,就跨过了 Agent 的门槛。
3. Agent loop 的最小实现#
def run_agent(user_input, tools, max_steps=10):
messages = [system_prompt, user(user_input)]
for step in range(max_steps):
resp = llm.chat(messages, tools=tools) # 1. LLM 决策
if resp.tool_calls: # 2. 要调工具
messages.append(resp) # 记录决策本身
for call in resp.tool_calls:
result = execute(call) # 执行(注意超时/权限)
messages.append(tool_result(call.id, result)) # 3. 观察追加进上下文
continue # 4. 带着新观察再决策
return resp.content # 5. 没有工具调用 = 完成,输出
return fallback("超出步数上限,请人工介入") # 6. max_steps 终止python循环体就是 决策 → 行动 → 观察 三拍(即 ReAct 的 Thought/Action/Observation,机制细节见 Agent设计模式)。生产中在此基础上加:max_steps / token 预算 / 重复调用检测三重终止、每步超时、状态快照([Agent Runtime与Checkpoint机制](/topics/ai-agent/Agent Runtime与Checkpoint机制))。
4. 自主性分级与风险#
| 级别 | 模式 | 举例 | 主要风险 |
|---|---|---|---|
| L1 人主导 | LLM 只建议,人执行 | 代码补全、写作助手 | 低 |
| L2 人在环 HITL | Agent 执行,关键动作前需人确认 | 退款需确认、部署前审批 | 审批疲劳导致”盲批” |
| L3 人在环外监督 | Agent 自主跑完,人事后审计/抽检 | 批量数据清洗、自动工单 | 错误在事后才发现 |
| L4–L5 全自主 | 长时间无人值守,自行规划与纠错 | 自动化运维、长程研究 Agent | 误操作放大、成本失控、难解释 |
自主性越高,对工具权限最小化、沙箱隔离、可观测与回滚的要求越高(见 [Agent安全与Prompt Injection防御](/topics/ai-governance/Agent安全与Prompt Injection防御))。级别不是越高越好,而是按任务的可逆性与错误代价选。
5. 什么时候不该用 Agent#
Agent 的成本是不确定性:同一输入可能走不同路径、延迟与 token 随步数线性增长、出错难复现。以下场景优先 Workflow:
- 流程确定、可枚举:步骤固定,用 Prompt Chaining / Routing 更快更稳
- 成本/延迟敏感:高并发客服、实时接口,多一轮 LLM 决策就是多几百毫秒和一份账单
- 可解释性/合规要求高:金融、医疗要能说清”为什么走这步”,代码路径比模型临场判断可审计
- 任务只是”查资料再回答”:RAG 就够,不需要动态规划
反过来,下一步依赖中间结果、步骤无法预知(如”先看 schema 再写 SQL 再按报错改”)才是 Agent 的主场。单 Agent 扛不住(工具过多、角色冲突)再考虑多 Agent,见 多Agent协作架构;完整决策树与七层设计法见 [AI Agent系统设计方法论](/topics/ai-agent/AI Agent系统设计方法论);框架对比见 [AI Agent技术趋势与框架选型](/topics/ai-agent/AI Agent技术趋势与框架选型)。
面试回答(2分钟版)
AI Agent 简单说就是以 LLM 为大脑、能自己决定下一步做什么并通过工具和环境交互的系统。我一般从四个要素讲:感知负责接收输入和工具返回,规划负责任务分解和反思,行动通过 Function Calling 或 MCP 调用工具,记忆分短期工作记忆和长期跨会话记忆。它和普通 LLM 调用的本质区别是控制流在谁手里——普通调用或 RAG 是文本进文本出,流程由代码写死;Workflow 虽然也用 LLM 和工具,但分支、循环由代码预定义,LLM 只在节点里填空,比如 Prompt Chaining、Routing、并行、Orchestrator-Workers、Evaluator-Optimizer 这些模式;而 Agent 是 LLM 在运行时自己决定调哪个工具、走哪条路、什么时候停。最小实现就是一个循环:LLM 决策,如果返回工具调用就执行并把结果追加到消息里继续下一轮,没有工具调用就输出答案,再加 max_steps 上限防死循环。第二,Agent 有自主性分级,从人主导、人在环审批、人在环外监督到全自主,级别越高越要做权限最小化、沙箱、可观测和回滚。第三,选型上我的原则是能用 Workflow 就别上 Agent:流程确定可枚举、成本延迟敏感、可解释性要求高的场景用 Workflow 更快更可控;只有下一步要依赖中间结果、步骤无法预知的任务才值得用 Agent,单 Agent 撑不住再拆多 Agent。
追问与易错
追问方向:
- Agent 和普通 LLM 调用有什么区别? → 普通调用是单次”文本进文本出”的纯函数;Agent 把 LLM 放进循环,模型可以调用工具、观察结果、再决策,直到完成或触发 max_steps。区别不在有没有用工具,而在”下一步做什么”由模型在运行时决定
- Agent 和 Workflow 怎么选? → 看控制流是否需要动态决定:步骤固定可枚举(分类→检索→生成)用 Workflow,更快、可测、可解释;下一步依赖中间结果(看报错改 SQL、按搜索结果决定再搜什么)才用 Agent。Anthropic 的建议是从最简单方案开始,只在确有收益时增加复杂度
- RAG 算不算 Agent? → 经典 RAG 是固定的”检索→生成”流水线,属于 Workflow;只有当 LLM 自主决定是否检索、检索几次、改写查询、判断证据够不够时才成为 Agentic RAG,见 [Agentic RAG与高级检索](/topics/rag/Agentic RAG与高级检索)
- Agent loop 怎么防止不停止? → 三重终止:max_steps(通常 5–15)、token/费用预算、连续相同工具调用检测;加上每步超时与超出后的降级话术或转人工
易错点:
- ❌ “用了工具调用就是 Agent” → 代码写死的”调一次搜索再生成”仍是 Workflow;Agent 的标志是模型动态决定控制流
- ❌ “Agent 比 Workflow 更先进,能用就用” → Agent 的代价是不确定性、延迟与成本;确定性流程用 Workflow 反而更专业
- ❌ “Agent = ReAct 循环” → ReAct 只是最常见的规划范式之一,还有 Plan-and-Execute、Reflection 等;且 Agent 还包含记忆、工具、权限、可观测等工程面