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 中使用工具。