智能体四大核心模块揭秘

智能体(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的案例,来具体说明这个闭环是如何运作的:

  1. 触发与感知:用户上传一份采购合同并提出评审需求。感知模块启动,读取合同文本(PDF解析),并理解用户的指令"请检查其中的风险条款"。
  2. 决策与规划:决策模块(LLM驱动)基于合同内容和内置的法律知识库(来自记忆模块的长期记忆),制定一个评审计划:`
  3. 识别关键条款(如付款、违约责任);2. 对照标准模板找出差异;3. 评估差异风险等级;4. 生成修改建议`。
  4. 行动与执行 :行动模块根据规划,调用一系列工具:
    • 调用文本分析工具提取条款。
    • 调用数据库查询工具检索标准模板。
    • 调用风险评估模型计算风险值。
    • 最后,调用报告生成工具输出结构化评审报告。
  5. 反馈与记忆:行动的结果(生成的报告)作为反馈返回给用户和环境。同时,记忆模块将此次任务的完整上下文(原始合同、评审过程、最终报告)存储到长期记忆中。如果用户后续对某条建议提出疑问,智能体可以从记忆中快速检索相关细节进行解释。
  6. 学习与迭代(闭环形成):如果用户对报告中的某项风险评估提出了更正,这个"反馈"会再次被感知模块接收。决策模块会据此调整其内部的判断逻辑,记忆模块会更新相关知识。当下次遇到类似条款时,智能体的决策将更加准确,从而实现了从经验中学习和系统性能的持续优化。

技术实现与架构支撑

在工程实践中,上述闭环系统需要强大的框架来支撑模块间的协同与状态管理。以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技术的基石,正被广泛应用于客服、数据分析、物联网、内容创作等众多领域。

相关推荐
2301_815901971 小时前
SQL如何将多行记录聚合成逗号分隔字符串_GROUP_CONCAT技巧
jvm·数据库·python
西索斯2 小时前
Claude API 报 529 Overloaded 怎么办?3 种方案实测,最后一种最省心
python·claude
Flittly2 小时前
【LangGraph新手村系列】(3)PostgreSQL 持久化检查点:让状态跨越进程与重启
人工智能·python·langchain
.柒宇.2 小时前
FastAPI 基础指南:从入门到实战
开发语言·python·fastapi
魔都吴所谓2 小时前
【Python】从扁平参数到层级架构:基于Python argparse构建校园管理CLI工具实战
python·编程语言
zjy277772 小时前
Layui tab选项卡如何动态根据ID值进行程序化切换
jvm·数据库·python
m0_602857762 小时前
Redis如何修复槽位分配重叠的脏状态_使用redis-cli --cluster fix工具扫描并修复不一致的Slot
jvm·数据库·python
2301_766283442 小时前
怎样开启phpMyAdmin的操作审计日志_记录每条执行的SQL
jvm·数据库·python
tang777892 小时前
代理IP质量检测实战:Python实现IP可用性、延迟、匿名度自动测试脚本
大数据·爬虫·python·网络协议·tcp/ip