3、AI Agent基础概念:Agent、LLM、Prompt、Tool、Memory、Planning、Execution等核心术语解析
AI Agent(智能体)是当前大语言模型应用从“被动问答”走向“主动任务执行”的关键形态。要构建一个可靠的Agent Harness系统,首先必须精确理解Agent生态中的核心术语及其相互关系。本章将逐一拆解Agent、LLM、Prompt、Tool、Memory、Planning、Execution这七个核心概念,明确它们在系统中的职责边界、数据流向与协作机制,为后续章节的工程实现奠定坚实的认知基础。
3.1 Agent:任务编排的核心智能体
核心原理:Agent是AI系统的“大脑中枢”,它不仅仅是一个模型调用器,而是一个具备目标理解、状态感知、决策编排能力的自治实体。在Agent Harness系统中,Agent负责接收用户目标,将其转化为可执行的任务序列,并在执行过程中持续监控状态、调整策略。Agent的核心价值在于自主性——它能够在没有人工干预的情况下,根据环境反馈动态决定下一步动作。
判断方法:识别一个系统是否为真正的Agent,可以从三个维度判断:
- 目标导向性:是否能够将模糊的用户需求转化为明确的任务目标?
- 环境交互性:是否能够感知外部环境状态(如工具返回结果、API响应)并据此调整行为?
- 自主决策性:在遇到分支或异常时,是否能够自主选择路径而非依赖预设规则?
实战场景:以“帮我预订周五去上海的机票和酒店”为例。一个简单的LLM问答系统只会生成一段文字建议;而一个Agent系统会:①解析需求(时间、目的地、预算隐含条件);②调用航班查询Tool获取实时数据;③对比价格后调用预订API;④同时搜索酒店并完成预订;⑤最后汇总确认信息。整个过程Agent自主完成多步决策与工具调用。
常见误区:很多开发者将“调用LLM API”等同于“构建Agent”。实际上,仅有一个LLM调用而没有任务分解、状态管理和工具调用能力的系统,只能算作“增强型问答”,远未达到Agent的标准。Agent的核心在于编排能力,而非模型本身。
3.2 LLM与Prompt:推理引擎与指令接口
核心原理:LLM(Large Language Model)是Agent的推理引擎,负责理解上下文、生成文本、进行逻辑推理。而Prompt是连接用户意图与LLM能力的指令接口——它决定了LLM以何种角色、何种格式、何种约束来生成输出。在Agent系统中,Prompt不再是简单的用户输入,而是由Agent动态构造的系统提示词(System Prompt)+ 用户提示词(User Prompt)+ 工具描述(Tool Descriptions)的组合体。
操作流程:在Agent Harness中,Prompt的构造遵循以下步骤:
- 角色设定:定义LLM扮演的角色(如“你是专业的行程规划助手”);
- 上下文注入:将Memory中检索到的历史信息、用户偏好注入Prompt;
- 工具描述:列出当前可用的Tool及其参数Schema,让LLM知道可以调用什么;
- 输出约束:指定输出格式(如JSON、Markdown),便于后续解析。
| Prompt类型 | 作用 | 示例 |
|---|---|---|
| 系统提示词 | 定义角色与全局规则 | “你是客服Agent,必须使用礼貌语气” |
| 工具描述 | 告知LLM可用工具及参数 | “可用工具:search_flight(departure, arrival, date)” |
| 上下文注入 | 提供历史对话或检索结果 | “用户上次查询过上海酒店,偏好五星级” |
| 输出格式约束 | 强制结构化输出 | “请以JSON格式返回:{action: string, params: object}” |
风险提示:Prompt设计不当会导致LLM产生“幻觉”——即生成看似合理但实际错误的工具调用参数。例如,LLM可能虚构一个不存在的航班号或日期格式。因此,Agent系统必须在Prompt中明确工具参数的枚举范围、格式校验规则,并在Execution阶段进行参数验证。
3.3 Tool与Execution:能力扩展与动作执行
核心原理:Tool是Agent与外部世界交互的能力接口,它封装了API调用、数据库查询、代码执行、文件操作等具体功能。Execution则是Agent实际执行Tool调用的动作过程,包括参数传递、调用发起、结果接收与错误处理。在Agent Harness中,Tool被注册为结构化的函数描述(包含名称、参数Schema、返回类型),LLM通过生成特定的“工具调用指令”来触发Execution。
判断方法:一个优秀的Tool设计应满足以下标准:
- 原子性:每个Tool只做一件事,避免大而全的“万能工具”;
- 可描述性:Tool的名称和参数说明必须让LLM能够准确理解其用途;
- 错误可恢复:Tool应返回结构化错误码,而非直接抛出异常导致Agent崩溃;
- 可观测性:每次Tool调用都应记录日志,便于调试和审计。
案例拆解:假设Agent需要查询天气并据此推荐穿搭。系统注册了两个Tool:get_weather(city, date) 和 get_clothing_advice(temperature, condition)。Execution流程为:①LLM生成第一个工具调用指令,参数为{"city": "北京", "date": "2025-06-15"};②Harness执行该调用,获取返回{"temp": 28, "condition": "晴"};③将结果注入上下文,LLM生成第二个工具调用;④执行后获取穿搭建议。整个过程Agent通过Tool链完成了多步推理。
常见误区:许多初学者将Tool与Execution混为一谈。Tool是静态定义(描述“能做什么”),Execution是动态过程(实际“做了什么”)。在Harness系统中,Tool注册表是静态配置,而Execution是运行时行为,二者必须分离设计,以便于权限控制和审计追踪。
3.4 Memory与Planning:状态保持与策略生成
核心原理:Memory为Agent提供状态保持能力,分为短期记忆(当前对话上下文)和长期记忆(跨会话的用户偏好、历史事实)。Planning则是Agent的策略生成模块,负责将复杂任务分解为可执行的子步骤序列。在Harness中,Planning通常采用“ReAct”(Reasoning + Acting)模式:Agent先进行推理(Reasoning),再决定行动(Acting),然后观察结果,循环往复。
操作流程:Planning的典型实现路径:
- 目标解析:从用户输入中提取核心目标与约束条件;
- 任务分解:将目标拆解为3-7个可独立执行的子任务;
- 依赖排序:确定子任务之间的先后依赖关系;
- 动态调整:根据Execution反馈实时修改剩余计划。
| 记忆类型 | 存储方式 | 生命周期 | 典型应用 |
|---|---|---|---|
| 短期记忆 | 对话窗口 / 缓存 | 单次会话 | 保持多轮对话连贯性 |
| 长期记忆 | 向量数据库 / KV存储 | 跨会话持久 | 记住用户偏好、历史事实 |
| 工作记忆 | Agent状态对象 | 单次任务执行 | 记录中间结果、临时变量 |
经验提醒:Planning并非越复杂越好。对于简单任务(如“翻译这句话”),过度规划反而增加延迟和消耗。建议在Harness中设置任务复杂度评估器:当任务步骤少于3步时,直接执行;超过3步才启动完整Planning流程。
常见误区:Memory设计中最常见的错误是无限增长——将所有历史对话都塞入上下文,导致超限和注意力分散。正确的做法是采用滑动窗口 + 关键信息抽取策略:保留最近N轮对话,同时将重要事实(如用户姓名、偏好)抽取到长期记忆存储中。
3.5 核心术语协同关系总结
上述七个术语并非孤立存在,而是构成一个完整的Agent运行闭环:Agent接收目标 → 从Memory读取上下文 → 构造Prompt → 调用LLM推理 → 生成Planning策略 → 通过Execution调用Tool → 获取结果 → 更新Memory → 进入下一轮循环。理解这个闭环是设计Agent Harness系统的前提。
工程风险:在实际系统中,最常见的失败模式是循环失控——Agent在Planning和Execution之间无限循环,无法收敛到最终答案。建议在Harness中设置最大迭代次数(如10次)和超时熔断机制,当循环超过阈值时强制终止并返回当前最优结果。