智能体(Agent)的四大核心模块分别是感知(Perception)、决策(Decision-Making)、行动(Action)和记忆(Memory)。这四大模块协同工作,形成一个能够感知环境、自主决策、执行任务并持续学习的闭环系统,是实现智能体自主性的关键。
四大核心模块详解
为了更清晰地展示各模块的功能与作用,我们通过下表进行结构化对比:
| 模块 | 核心功能 | 类比 | 关键技术/组件 | 作用 |
|---|---|---|---|---|
| 感知 (Perception) | 从环境(用户、传感器、数据源)中收集和解析信息。 | 智能体的"五官"。 | 多模态输入处理、传感器数据融合、自然语言理解(NLU)、API调用。 | 将原始数据(文本、图像、音频、结构化数据)转化为可供决策系统理解的"状态"或"事实"。 |
| 决策 (Decision-Making) | 基于感知信息和记忆,进行分析、规划并选择最优行动策略。 | 智能体的"大脑"。 | 大语言模型(LLM)、思维链(CoT)、任务分解、规划算法(如ReAct)。 | 将复杂目标拆解为可执行的子任务序列,并生成具体的行动指令。 |
| 行动 (Action) | 将决策转化为与环境交互的具体操作。 | 智能体的"手脚"。 | 工具调用(Tool-use)、API执行、代码生成、物理设备控制。 | 执行决策结果,改变环境状态或自身内部状态,以达成目标。 |
| 记忆 (Memory) | 存储和检索历史信息、学习到的知识和上下文。 | 智能体的"个人经验库"。 | 短期记忆(会话上下文)、长期记忆(向量数据库、知识图谱)、工作记忆(当前任务状态)。 | 为决策提供历史依据,支持多轮对话,实现个性化服务和持续学习。 |
四大模块如何构成自主闭环系统
这四大模块并非独立工作,而是通过一个动态、迭代的流程紧密耦合,形成一个"感知-决策-行动-记忆"的自主闭环系统。其工作流程可以概括为下图所示的循环:
graph TD subgraph 环境 [外部环境] E[事件/用户请求] F[反馈结果] end E --> A A[感知模块<br>信息收集与解析] --> B[决策模块<br>分析与规划] B --> C[行动模块<br>执行与交互] C --> F F --> D[记忆模块<br>存储与检索] D -.->|为下一次决策提供上下文| B D --> A
下面,我们结合一个智能合同评审Agent的案例,来具体说明这个闭环是如何运作的:
- 触发与感知:用户上传一份采购合同并提出评审需求。感知模块启动,读取合同文本(PDF解析),并理解用户的指令"请检查其中的风险条款"。
- 决策与规划:决策模块(LLM驱动)基于合同内容和内置的法律知识库(来自记忆模块的长期记忆),制定一个评审计划:`
- 识别关键条款(如付款、违约责任);2. 对照标准模板找出差异;3. 评估差异风险等级;4. 生成修改建议`。
- 行动与执行 :行动模块根据规划,调用一系列工具:
- 调用文本分析工具提取条款。
- 调用数据库查询工具检索标准模板。
- 调用风险评估模型计算风险值。
- 最后,调用报告生成工具输出结构化评审报告。
- 反馈与记忆:行动的结果(生成的报告)作为反馈返回给用户和环境。同时,记忆模块将此次任务的完整上下文(原始合同、评审过程、最终报告)存储到长期记忆中。如果用户后续对某条建议提出疑问,智能体可以从记忆中快速检索相关细节进行解释。
- 学习与迭代(闭环形成):如果用户对报告中的某项风险评估提出了更正,这个"反馈"会再次被感知模块接收。决策模块会据此调整其内部的判断逻辑,记忆模块会更新相关知识。当下次遇到类似条款时,智能体的决策将更加准确,从而实现了从经验中学习和系统性能的持续优化。
技术实现与架构支撑
在工程实践中,上述闭环系统需要强大的框架来支撑模块间的协同与状态管理。以LangGraph 为例,它通过有向图来显式地定义智能体的工作流和状态流转,是构建复杂闭环系统的理想工具。
python
# 基于LangGraph的简易智能体闭环系统示例
from langgraph.graph import StateGraph, END
from typing import TypedDict, Annotated
import operator
# 1. 定义系统状态(包含所有模块需要共享的信息)
class AgentState(TypedDict):
user_input: str # 感知输入
context: str # 记忆上下文
plan: list # 决策计划
action_result: str # 行动结果
final_output: str # 最终输出
# 2. 定义各个模块对应的节点函数
def perception_node(state: AgentState):
"""感知模块:解析用户输入,丰富上下文。"""
# 此处可接入NLU模型或工具调用
enriched_context = f"用户问题:{state['user_input']}。 当前会话历史:{state['context']}"
return {"context": enriched_context}
def decision_node(state: AgentState):
"""决策模块:基于上下文制定计划。"""
# 此处由LLM驱动,进行任务分解
# 假设LLM返回了一个计划列表
plan = ["分析合同类型", "提取关键条款", "评估风险", "生成建议"]
return {"plan": plan}
def action_node(state: AgentState):
"""行动模块:执行计划中的步骤。"""
# 根据计划调用相应工具
current_step = state['plan'].pop(0) if state['plan'] else "完成"
result = f"已执行步骤:{current_step}"
return {"action_result": result, "plan": state['plan']}
def memory_node(state: AgentState):
"""记忆模块:存储本次交互的关键信息。"""
# 将本次交互的输入、结果存入向量数据库等长期记忆
new_memory_entry = f"Q: {state['user_input']} A: {state['action_result']}"
updated_context = state['context'] + "
" + new_memory_entry if state['context'] else new_memory_entry
return {"context": updated_context, "final_output": state['action_result']}
# 3. 构建闭环图
workflow = StateGraph(AgentState)
workflow.add_node("感知", perception_node)
workflow.add_node("决策", decision_node)
workflow.add_node("行动", action_node)
workflow.add_node("记忆", memory_node)
# 4. 定义闭环流转逻辑
workflow.set_entry_point("感知")
workflow.add_edge("感知", "决策")
workflow.add_edge("决策", "行动")
workflow.add_conditional_edges(
"行动",
# 判断:计划是否执行完毕?是则进入"记忆",否则继续"行动"
lambda state: END if not state['plan'] else "行动"
)
workflow.add_edge("行动", "记忆")
workflow.add_edge("记忆", END)
# 编译并运行智能体
app = workflow.compile()
initial_state = {"user_input": "请评审这份采购合同", "context": "", "plan": [], "action_result": "", "final_output": ""}
final_state = app.invoke(initial_state)
print(final_state["final_output"])
注释:以上代码示例展示了如何使用LangGraph将四大模块组织成一个有状态、可循环的工作流,这是实现智能体自主闭环的关键技术架构。
综上所述,智能体的四大核心模块通过感知获取信息、决策生成计划、行动改变环境、记忆积累经验,并在一个可循环、可学习的工作流中持续交互,共同构成了一个能够适应复杂动态环境的自主闭环智能系统。这一架构是当前AI Agent技术的基石,正被广泛应用于客服、数据分析、物联网、内容创作等众多领域。