跳到主要内容

如何从工具中访问 RunnableConfig

先决条件

工具是 Runnable,您可以像对待其他任何 Runnable 一样对待它们 - 您可以像往常一样在它们上调用 invoke()batch()stream()。但是,在编写自定义工具时,您可能希望调用其他 Runnable,例如聊天模型或检索器。为了正确跟踪和配置这些子调用,您需要手动访问和传入工具的当前 RunnableConfig 对象。

本指南介绍了如何在不同方式创建的自定义工具中执行此操作。

tool 方法

访问使用 tool 辅助方法创建的自定义工具的 RunnableConfig 对象很简单 - 它始终是传递到自定义函数中的第二个参数。以下是一个示例

import { z } from "zod";
import { tool } from "@langchain/core/tools";
import type { RunnableConfig } from "@langchain/core/runnables";

const reverseTool = tool(
async (input: { text: string }, config?: RunnableConfig) => {
const originalString =
input.text + (config?.configurable?.additional_field ?? "");
return originalString.split("").reverse().join("");
},
{
name: "reverse",
description:
"A test tool that combines input text with a configurable parameter.",
schema: z.object({
text: z.string(),
}),
}
);

然后,如果我们使用包含 configurable 字段的 config 调用工具,我们可以看到 additional_field 正确地传递了

await reverseTool.invoke(
{ text: "abc" },
{ configurable: { additional_field: "123" } }
);
321cba

后续步骤

您现在已经了解了如何在工具中进行配置和流式传输事件。接下来,请查看以下指南,了解有关使用工具的更多信息


此页面是否有帮助?


您也可以留下详细的反馈 在 GitHub 上.