Agent 是什么?把它想象成一个人
很多人第一次接触 Agent 觉得抽象。
其实它的结构和人体一模一样。如下图所示

大脑 = LLM 推理核心
人靠大脑思考和决策。Agent 靠 LLM。
用户发来一个问题,LLM 先想:这个问题要怎么解决?需要查数据库还是调接口?分几步走?
想清楚之后,它告诉"身体"去执行。
在代码里,这就是 AgentExecutor,LLM 在里面循环推理:
想一下 → 决定做什么 → 执行 → 看结果 → 再想一下
眼睛 = 感知层
人靠眼睛耳朵接收外部信息。Agent 靠感知层。
用户打的字、上传的文件、工具执行后的返回结果------这些都是 Agent 的"输入",通过感知层进来,交给大脑处理。
现在的 LLM 不只能读文字,还能看图、读表格,所以 Agent 的"眼睛"越来越强。
脊椎 = 规划层
人靠脊椎把大脑指令传递给四肢。Agent 靠规划层把想法变成步骤。
收到一个复杂任务,规划层负责拆解:"先做第一步,拿到结果,再做第二步。"
这就是你常听到的 ReAct------Reasoning + Acting,先推理再行动,一步一步来。
心脏 = 记忆层
心脏持续供血,让人保持活着。记忆层持续供给上下文,让 Agent 知道聊到哪了。
Agent 有两种主要记忆:
短期记忆 是当前对话的上下文,就像你和朋友聊天,知道刚才说了什么。用 ConversationBufferWindowMemory 实现,保留最近 k 轮。
长期记忆 是存在向量数据库里的知识,RAG 就是在用这个------把文档提前存进去,需要的时候检索出来给 LLM 看。
没有记忆,每次对话 Agent 都是"失忆"的。
双手 = 工具层
人靠手做事。Agent 靠工具层执行操作。
查订单、退款、发优惠券、写数据库------这些都是 Agent 的"手",每个 @tool 函数就是一个具体动作。
有一点很关键:LLM 靠读工具的描述(docstring)来决定什么时候用哪只手。描述写得清楚,Agent 就知道该拿哪个工具。描述含糊,它要么不用,要么用错。
python
@tool
def query_order(order_id: str) -> str:
"""
查询订单状态。
当用户询问订单进度、是否发货时调用。
输入格式:ORD-XXXXX
"""
...
五个部分合起来
一次完整的 Agent 工作过程是这样的:
用户发消息进来(眼睛接收)→ 大脑分析要做什么 → 规划层拆成步骤 → 调工具执行(双手行动)→ 结果存进记忆 → 大脑生成最终答案 → 返回给用户。
对应你现在做的客服 Agent:
| 人体 | Agent 组件 | 你的项目 |
|---|---|---|
| 大脑 | LLM 推理 | DeepSeek · AgentExecutor |
| 眼睛 | 感知层 | /chat 接口收到的 input |
| 脊椎 | 规划层 | ReAct Prompt 模板 |
| 心脏 | 记忆层 | ConversationBufferWindowMemory |
| 双手 | 工具层 | 8 个 @tool 函数 |
总结:
Agent 不是魔法,就是一个会思考的程序,有感知、有记忆、按计划用工具完成任务。