智能体(Agent) 是将 大语言模型(LLM) 与工具相结合,创建能够 对任务进行推理、决定使用哪些工具并迭代地寻求解决方案 的系统。

LLM智能体循环运行各种工具以实现目标。智能体持续运行,直到满足停止条件为止------即模型发出最终输出或达到迭代次数限制。
1. 模型(Model)
模型是智能体的 推理引擎。它可以通过多种方式进行指定,支持静态和动态选择模型。
-
静态模型
静态模型在创建智能体时配置一次,并在整个执行过程中保持不变。这是最常见、最直接的方法。
-
动态模型
动态模型的选择是在运行时环境基于当前状态以及上下文信息。这使得复杂的路由逻辑和成本优化成为可能。
2. 工具(Tools)
工具赋予智能体执行操作的能力。
- 基于单个提示词的连续调用工具
- 在适当时并行调用工具
- 根据先前结果动态选择工具
- 工具的重试逻辑和错误处理
- 跨工具调用保持状态持久性
3. 系统提示词
系统提示词是智能体的核心操控杆,通过给智能体提供系统提示词来控制智能体处理任务的方式。可以动态设置系统提示词。
4. 结构化输出
在某些情况下,您可能希望智能体以特定格式返回输出。LangChain 通过response_format参数提供了结构化输出的策略。
5. 记忆
智能体通过 消息状态 自动维护对话历史。存储在状态中的信息可以视为智能体的短期记忆。
6. 中间件
中间件给智能体提供了强大的扩展性,可用于在执行的不同阶段自定义智能体的行为。
- 在调用模型之前处理状态(例如,消息修剪、上下文注入)
- 修改或验证模型的响应(例如,防护措施、内容过滤)
- 使用自定义逻辑处理工具执行错误
- 基于状态或上下文实现动态模型选择
- 添加自定义日志记录、监控或分析功能
中间件可以无缝集成到智能体的执行图中,使开发者能够在关键点拦截和修改数据流,而无需更改智能体核心逻辑。
7. 调用
可以通过向智能体的状态传递一个更新来调用它。所有智能体的状态中都包含一个消息序列;要调用智能体,只需传递一条新消息。可以进行流式调用。