createAgent
LangChain 中构建智能体的新标准方式,用更简洁、更强大的 API 取代了 LangGraph 中的
createReactAgent。标准内容块
新增
contentBlocks 属性,为所有提供商提供对现代 LLM 功能的统一访问。简化包
langchain 包已精简,专注于智能体的基本构建块,遗留功能已移至 @langchain/classic。createAgent
createAgent 是 LangChain 1.0 中构建智能体的标准方式。它提供了比 LangGraph 导出的预构建 createReactAgent 更简单的接口,同时通过使用中间件提供了更大的自定义潜力。
createAgent 建立在基本智能体循环之上——调用模型,让其选择要执行的工具,然后在不再调用工具时结束:

中间件
中间件是createAgent 的定义性功能。它使 createAgent 高度可定制,提高了可构建内容的上限。
优秀的智能体需要上下文工程:在正确的时间将正确的信息提供给模型。中间件通过可组合的抽象帮助您控制动态提示、对话摘要、选择性工具访问、状态管理和防护栏。
预构建中间件
LangChain 提供了一些用于常见模式的预构建中间件,包括:summarizationMiddleware:当对话历史过长时进行压缩humanInTheLoopMiddleware:要求对敏感工具调用进行批准piiRedactionMiddleware:在发送到模型之前编辑敏感信息
自定义中间件
您还可以构建自定义中间件以满足特定需求。 通过使用createMiddleware 函数实现以下任何钩子来构建自定义中间件:
| 钩子 | 运行时机 | 用例 |
|---|---|---|
beforeAgent | 在调用智能体之前 | 加载内存、验证输入 |
beforeModel | 在每次 LLM 调用之前 | 更新提示、修剪消息 |
wrapModelCall | 在每次 LLM 调用周围 | 拦截和修改请求/响应 |
wrapToolCall | 在每次工具调用周围 | 拦截和修改工具执行 |
afterModel | 在每次 LLM 响应后 | 验证输出、应用防护栏 |
afterAgent | 在智能体完成后 | 保存结果、清理 |

基于 LangGraph 构建
因为createAgent 是基于 LangGraph 构建的,您会自动获得对长期运行和可靠智能体的内置支持:
持久化
对话会自动在会话间持久化,并具有内置检查点
流式传输
实时流式传输令牌、工具调用和推理跟踪
人机回环
在敏感操作之前暂停智能体执行以进行人工批准
时间旅行
将对话回退到任意点并探索替代路径和提示
结构化输出
createAgent 改进了结构化输出生成:
- 主循环集成:结构化输出现在在主循环中生成,而无需额外的 LLM 调用
- 结构化输出策略:模型可以选择调用工具或使用提供商端的结构化输出生成
- 成本降低:消除了额外 LLM 调用带来的额外费用
ToolStrategy 的 handleErrors 参数控制错误处理:
- 解析错误:模型生成的数据与所需结构不匹配
- 多个工具调用:模型为结构化输出模式生成 2 个或更多工具调用
标准内容块
1.0 版本适用于大多数包。目前只有以下包支持新内容块:
langchain@langchain/core@langchain/anthropic@langchain/openai
优势
- 提供商无关:使用相同的 API 访问推理跟踪、引用、内置工具(网络搜索、代码解释器等)以及其他功能,无论提供商如何
- 类型安全:所有内容块类型都有完整的类型提示
- 向后兼容:标准内容可以延迟加载,因此没有相关的破坏性更改
简化包
LangChain v1 精简了langchain 包命名空间,专注于智能体的基本构建块。该包仅暴露最有用和相关的功能:
其中大部分是从 @langchain/core 重新导出的,以便于使用,这为您提供了用于构建智能体的集中式 API 表面。
@langchain/classic
遗留功能已移至 @langchain/classic,以保持核心包精简和专注。
@langchain/classic 中的内容
- 遗留链和链实现
- 检索器
- 索引 API
@langchain/community导出- 其他已弃用的功能
@langchain/classic:
报告问题
请在 GitHub 上使用'v1' 标签 报告在 1.0 中发现的任何问题。
其他资源
LangChain 1.0
阅读公告
中间件指南
深入了解中间件
智能体文档
完整的智能体文档
消息内容
新的内容块 API
迁移指南
如何迁移到 LangChain v1
GitHub
报告问题或贡献
另请参阅
通过 MCP 将这些文档 连接到 Claude、VSCode 等,以获取实时答案。

