什么是智能体
智能体(AI Agents或Agents)是指能够自主感知环境、做出决策并执行行动的系统或程序。根据IBM的定义,智能体是“能够通过设计其工作流和利用可用工具,代表用户或其他系统自主执行任务的系统或程序”[IBM]。英伟达则将智能体描述为“AI 智能体是先进的 AI 系统,旨在根据高级目标自主进行推理,制定计划并执行复杂任务。”,代表了“从简单自动化向能够管理复杂工作流的自主系统过渡”的演进方向[NVIDIA]。
在更专业的学术定义中,百度百科指出:“智能体是指能够感知环境并自主采取行动以实现特定目标的实体。这一概念最早由“人工智能之父”马文·明斯基提出,他认为某些问题可经由社会中的一些个体经过协商后解决,这些个体就是智能体。”[百度百科]
智能体具有以下基本特征:
- 自主性(Autonomy):智能体能够在没有人类或其他实体的直接干预下运行,并对其行动和内部状态具有某种程度的控制。
- 反应性(Reactivity):智能体能够感知其环境,并对环境变化做出实时响应。
- 交互性/社交性(Socialability):智能体能够与其他智能体或人类进行交互和协作。
- 适应性/主动性(Proactivity):智能体能够根据环境变化主动调整其行为策略,适应新的情况。
- 学习能力:许多智能体具有通过经验或数据学习和改进的能力。
单智能体与多智能体

LangChain内置
注意:LangChain内置的Agent模块已经不在支持维护了,智能体开发重点使用LangGraph
单Agent的特点
- 结构简单,只有一个智能体负责所有任务
- 决策过程中,不需要协调多个Agent之间的通信
- 适合处理相对简单或专一的任务
- 通常计算资源需求较少
- 响应速度可能更快,因为不需要多Agent间的协调
LangGraph内置
多Agents的特点
- 系统由多个相互协作的智能体组成
- 各Agent可能有不同的专业领域或功能
- 需要Agent之间得的通信和协调机制
- 可以并行处理多个任务
- 系统整体更加复杂但也更加强大
- 具有更好的可扩展性和容错能力
多智能体
- 更小颗粒度和更低层面的封装
- 更灵活
- 难度也更高

常见的多智能体架构
多智能体架构中的网状结构、监管者模式、分级架构和自定义模式,并通过类比人类工作方式说明多智能体如何协作完成复杂任务。

- 网状结构:任何一个智能体都可以进行决策
- 监督者结构:由主管来决策下一步操作
- 监管者架构(工具):智能体作为工具,接受一个LLM主管的调用
- 分级架构:多级架构每级都有一个监管者
- 自定义:只有部分智能体具备决策权
LangGraph介绍

官方地址:https://langchain-ai.github.io/langgraph
LangGraph 是一个专注于构建、管理和部署 有状态(Stateful)、长期运行(Long-running) 的 LLM Agent 编排框架。
- 核心设计思想:结合状态机模型与现代链式逻辑编排能力。
- 应用场景:智能代理系统、复杂工作流管理、人机协同任务。
- 行业应用:被 Klarna、Replit、Elastic 等一线公司广泛采用,逐步成为下一代 Agent 系统的核心底座。
核心优势
LangGraph 为长期运行/有状态的工作流提供底层基础设施支持,具备以下特性:
| 优势 | 说明 |
|---|---|
| 持久执行 | 支持故障恢复,自动从中断点继续执行。 |
| 人机交互 | 允许实时检查/修改代理状态,无缝集成人工监督。 |
| 综合记忆 | 短期工作记忆(推理) + 长期持久记忆(跨会话)。 |
| LangSmith 调试 | 通过可视化工具跟踪执行路径、状态转换和运行时指标。 |
| 生产就绪部署 | 提供可扩展架构,专为有状态工作流的独特挑战设计。 |
LangGraph 生态系统
LangGraph 可独立使用,也可与 LangChain 生态深度集成:
| 组件 | 功能 |
|---|---|
| LangSmith | 代理评估与可观测性工具,支持生产环境监控和性能优化。 |
| LangGraph 平台 | 专为长期工作流设计的部署平台,支持可视化原型设计(LangGraph Studio)。 |
| LangChain | 提供可组合的 LLM 开发组件,简化应用构建流程。 |
环境安装
1 | pip install langgraph |
核心概念
State(状态)
- 状态是一个在整个图中共享和传递的对象,包含了流程执行过程中所有信息。
- 有状态(stateful):程序具有“记忆”,能记住过去的步骤和结果,并根据这些信息来决定下一步
- 可变(mutable):每个节点都可以修改状态。例如,一个节点可能会将LLM的回复写入状态中,而下一个节点则会读取这个回复并根据它来做决策
Node(节点)
- 节点是图中的基本单元,代表一个具体的功能或操作,视作流程中的一个步骤
- 每个节点负责完成一项特定任务(如查询数据、生成文本、做决策等)
- 节点接受输入,处理后产生输出
- 可以是简单的函数、API调用、LLM调用或其他复杂操作
Edges(边)
- 边决定了流程如何从一个节点移动到另一个节点。
- LangGraph支持两种主要类型的边:
- Normal Edges(普通边):简单的将流程从节点A -> B
- Conditional Edges(条件边):根据当前状态的内容来决定下一步执行哪个节点,是根据LLM的回复或工具的结果动态的做出决策
Graph(图)
- 图是节点及其连接关系的集合,代表整个工作流程
- 定义了信息如何从一个节点流向另一个节点
- 可以是线性的(A -> B -> C)或包含分支、循环复杂结构
- 控制整个应用的执行流程和逻辑