AI 智能体入门:五大核心组件拆解,从”厨师 Agent”看懂 Persona / Tools / Memory / Reasoning / Planning
核心看点:Agent(智能体)是 2024-2025 年 AI 领域最火的概念之一。但到底什么是 Agent?它跟普通聊天机器人有什么区别?本文将用一套清晰的五组件框架(Profile、Tools、Knowledge & Memory、Reasoning、Planning)帮你建立系统认知,并用 Spring AI 手写一个”厨师 Agent”作为入门示例,最后逐层拆解每个组件的设计要点。
Agent 到底是什么?
Agent 在 AI 领域是一个超级宽泛的概念。根据 Merriam-Webster 词典,与 AI 相关的定义包括:
- 一个行动或施加影响力的实体
- 能够产生效果的事物
- 引导智能实现目标的手段或工具
- 旨在自动化某些任务(如在线收集信息)的计算机应用
简单来说,Agent 就是一个能感知环境、做出决策并执行动作的 AI 系统。它可以是一个提供烹饪提议的聊天机器人,也可以是一个能完成复杂研究报告的研究助手。组件越多,Agent 越强劲,但也越难实现。
Agent 的五大核心组件
一个完整的 Agent 包含五大组件:
1. Profile(画像):Agent 的描述,包括背景和人口统计信息
2. Tools(工具):用于完成任务或获取信息的工具
3. Knowledge & Memory(知识与记忆):用相关信息注释上下文
4. Reasoning & Evaluation(推理与评估):自我反思和内部推理能力
5. Planning & Feedback(规划与反馈):组织任务以实现高层目标
并非所有 Agent 都需要全部五个组件。做烹饪提议的 Agent 可能只需要 Profile;做深度研究的 Agent 则需要全副武装。下面我们用 Spring AI 实现一个最简版的烹饪 Agent,只使用 Profile 组件。
实战: Cooking Suggestion Agent
这个 Agent 的核心在于 System Text——它定义了 Agent 的人设(Persona)。在系统提示词中,我们明确告知 LLM:你是一个精通各种菜系的大厨,只回答烹饪相关问题,其他话题一律拒绝。
@RestController
@RequestMapping("/cooking")
public class CookingAgentController {
private static final String SYSTEM_TEXT = """
You are a chef who is proficient in various cuisines.
Please answer users' questions about cooking.
For other unrelated inputs, simply tell the user that you don't know.
""";
private final ChatClient chatClient;
public CookingAgentController(ChatClient.Builder builder) {
chatClient = builder.build();
}
@PostMapping
public AgentResponse chat(@RequestBody AgentRequest request) {
return new AgentResponse(
chatClient.prompt().system(SYSTEM_TEXT)
.user(request.input())
.call().content());
}
}
启动后用 Swagger UI 测试,输入”cook fish”,Agent 会给出专业的烹饪提议:

用 Swagger UI 测试烹饪 Agent
如果输入与烹饪无关的内容,列如”write quick sort algorithm in java”,Agent 会明确拒绝回答:

Agent 对无关输入的拒绝响应
安全设计:在 System Text 中明确限制 Agent 的回答范围,是防止 Agent 被滥用的常见做法。这对于面向用户的生产级 Agent 尤为重大。
深入拆解:Agent 的每个组件
Profile:Agent 的”身份证”
Profile 是 Agent 的描述信息,一般放在 System Prompt 中。一个完整的 Profile 可以包含以下元素:
- Persona(人设):Agent 的背景、角色、身份、专业技能、约束条件和性格特征
- Tools(工具描述):Agent 可以使用哪些工具来协助完成任务
- Knowledge & Memory(知识上下文):与当前任务相关的背景信息
- Reasoning & Evaluation(推理方式):Agent 如何思考和评估任务
- Planning & Feedback(规划过程):Agent 如何分解任务、执行步骤并吸收反馈
Profile 的元素与 Agent 的组件一一对应——Profile 用文字描述了 Agent 拥有的组件,LLM 根据这些描述生成相应的输出。写好 Persona 并不容易,提议从简单版本开始,根据输出效果迭代优化。好消息是,你可以让 LLM 帮你生成 Persona!
Tools:让 Agent 从”嘴炮”走向”实干”
没有工具的 Agent 只能生成内容,很难解决实际问题。工具是 Agent 从”玩具”走向”生产力工具”的关键一步。
“工具”这个词在不同上下文中有不同含义:
- 模型内置工具:OpenAI GPT-5 支持 Web Search、File Search、Image Generation、Code Interpreter、MCP 等内置工具
- Function Calling(函数调用):LLM 根据函数名、描述和参数 Schema 推断是否调用函数及参数值,实际调用由 AI 应用执行
- MCP Tools:MCP 服务器提供的标准化工具,可作为 LLM 的函数使用
- 自定义函数:在 Agent 中通过编程方式创建的函数
Agent 可以同时使用内置工具、MCP 工具和自定义函数,灵活组合以应对各种场景。
Knowledge & Memory:Agent 的”外脑”
在 Agent 和聊天应用中,检索是访问外部长期存储知识的过程。这些知识可能是非结构化的(如对话历史、任务日志、实际、用户偏好),也可能是结构化的(存储在数据库或文件中)。
Memory 和 Knowledge 都用于为提示词补充上下文信息,使回复更准确、更贴合场景。RAG 就是为 Agent 添加知识的典型手段——我们在前面章节已经深入讲解过。Memory 则指与 Agent 的对话历史,历史消息也可以被检索以提供上下文。
Reasoning & Evaluation:让 Agent 学会”思考”
推理是 Agent 理解问题、分析可选方案并选择最佳行动的能力。实现推理有两种方式:
- Prompt Engineering + Chain of Thought(CoT):通过少样本示例向 LLM 展示推理过程和步骤,让模型学会举一反三。虽然 LLM 没有被显式训练用于推理,但精心设计的提示词可以激发类似推理的行为
- 推理模型:如 OpenAI GPT-5,推理能力内置于模型本身
即使推理得再好,结果也可能出错。因此评估(Evaluation)同样重大——我们需要某种形式来评估解决方案的质量。评估可以是布尔值(通过/不通过),也可以是 0-100 的分数。
Planning & Feedback:从”聊天”到”办事”
缺乏规划能力、只能处理基础交互的 Agent 本质上就是聊天机器人。Planner 看似复杂,但可以通过提示词工程直接实现:
- 创建规划提示词,发送给 LLM 生成计划
- 本地解析并执行计划
- 将执行结果反馈给 LLM 进行评估和总结
- 输出最终结果给用户
规划让 Agent 能够执行多个顺序任务来完成复杂目标。但外部规划可能跳过反馈迭代循环——幸运的是,只要提供正确答案,我们可以直接从 LLM 获取反馈,让它自我修正。
总结(第一篇):Agent 不是神秘的黑科技,而是 Profile + Tools + Knowledge + Reasoning + Planning 五个组件的有机组合。从最简单的”厨师 Agent”开始,只用一个 System Prompt 定义 Persona,就能让 LLM 表现出特定的角色行为。后续两篇将深入讲解 8 种 Agentic 设计模式,以及一个结合 RAG、MCP 和推理模型的健康膳食规划 Agent 完整实战。掌握这套框架,你就能根据业务需求灵活裁剪组件,构建属于自己的 AI 智能体!


