在 LangGraph 中,正确调用外部工具并将结果更新到系统状态(State)的核心机制是:大模型生成带有 的 -> 路由到工具节点 -> 工具节点执行 Python 函数并生成 -> 将 追加到状态中 -> 返回大模型继续推理。 LangGraph 提供了非常优雅的内置模块来简化这个过程,同时你也可以通过自定义节点完全控制它。 下面我将分步骤详细讲解,并提供完整的可运行代码示例。 --- 核心原理解析 在包含工具调用的 State 中,最关键的是消息列表(Messages List)的流转: 1. Agent 节点:调用绑定了工具的 LLM。如果 LLM 决定使用工具,它会返回一个 ,里面包含 属性(包含工具名、参数和唯一的 )。 2. 状态更新:这个 被追加到 State 的 列表中。 3. 工具节点(Tool Node):提取上一步的 ,实际执行你的 Python 函数。 4. 生成 ToolMessage:将函数的执行结果包装成 。注意: 必须包含对应的 ,这样大模型才知道这个结果对应的是哪个工具调用请求。 5. 状态更新与循环: 被追加到 State 中,流程切回 A...