Skip to content

LangChain 中使用工具 ​

1. Zod生成JSON Schema

之前我们定义工具,需要自己书写如下的 Schema。

现在我们就可以直接将 Zod Schema 转换为 JSON Schema。通过 Zod,可以非常轻松的将 Zod Schema 转为 JSON Schema,这样我们在注册工具的时候,可以轻松很多。

2. withConfig方法

withConfig 是 Runnable 接口上的一个方法,用来预先绑定运行时配置(如 tags、metadata、timeout、abort signal、并发数等),并返回一个带有这些配置的新 Runnable。这样,调用方在 invoke 时就无需再重复传这些配置。

官方 API 文档将它描述为“Bind config to a Runnable, returning a new Runnable.”(把配置绑定到一个 Runnable,返回新的 Runnable)。

备注:早期的 .bind() 已被标注为 deprecated,官方建议改用 .withConfig()。

可绑定的配置

withConfig 的参数类型是该 Runnable 的调用选项(CallOptions)的部分字段;对所有 Runnable 通用的基类是 RunnableConfig。核心可选键包括:

  • tags: string[]:给本次调用及子调用打标签(便于筛选、追踪)。
  • metadata: Record<string, unknown>:附加元信息(传给回调、追踪)。
  • callbacks:回调(Tracing/Logs 等)。
  • timeout: number:超时(毫秒)。
  • signal: AbortSignal:取消信号(控制中断)。
  • maxConcurrency: number:批量/并发时的最大并发。
  • recursionLimit: number:递归深度上限(默认 25)。
  • runId、runName:追踪相关。

对具体模型(如 ChatOpenAI)而言,它的 CallOptions 还会扩展出模型厂商特定的调用参数(例如 stop、tools 等)。

课堂练习

在 LangChain 中使用工具。


-EOF-