-
Notifications
You must be signed in to change notification settings - Fork 41
Open
Description
这是 LangGraph 库中 createReactAgent
函数的 TypeScript 类型定义。让我为您详细解释一下:
主要功能
createReactAgent
用于创建一个基于 ReAct(Reasoning and Acting)模式的智能代理,该代理可以使用工具调用功能。
参数说明 (CreateReactAgentParams
)
必需参数
llm
: 支持 OpenAI 风格工具调用的语言模型tools
: 工具列表或 ToolNode,代理可以使用的工具集合
可选参数
提示相关
prompt
: LLM 的提示配置,可以是:- 字符串:转换为 SystemMessage
- SystemMessage:直接添加到消息列表开头
- 函数:接收完整图状态并准备 LLM 输入
- Runnable:处理图状态并传递给 LLM
状态管理
stateSchema
: 状态模式定义checkpointSaver
/checkpointer
: 检查点保存器,用于持久化代理状态store
: 基础存储
执行控制
interruptBefore
: 在运行前中断的节点名称列表interruptAfter
: 在运行后中断的节点名称列表
响应格式
responseFormat
: 最终输出的结构化格式,支持:- Zod 模式
- JSON 模式
{ prompt, schema }
对象
代理配置
name
: 代理名称includeAgentName
: 如何向 LLM 暴露代理名称undefined
: 依赖 LLM 提供商的 AIMessage.name"inline"
: 直接添加到消息内容中
钩子函数
preModelHook
: 在调用 LLM 前执行的节点(如消息修剪、摘要等)postModelHook
: 在调用 LLM 后执行的节点(如人工审核、验证等)
使用示例
import { ChatOpenAI } from "@langchain/openai";
import { tool } from "@langchain/core/tools";
import { z } from "zod";
import { createReactAgent } from "@langchain/langgraph/prebuilt";
const model = new ChatOpenAI({ model: "gpt-4o" });
const getWeather = tool((input) => {
// 工具实现
}, {
name: "get_weather",
description: "获取当前天气",
schema: z.object({
location: z.string().describe("要查询天气的位置"),
})
});
const agent = createReactAgent({
llm: model,
tools: [getWeather]
});
返回值
返回一个编译后的状态图 (CompiledStateGraph
),可以用于流式处理和状态管理。
这个函数提供了创建功能强大的 AI 代理的完整框架,支持工具调用、状态持久化、中断控制和结构化输出等高级功能。
Metadata
Metadata
Assignees
Labels
No labels