• 高阶函数,它将函数作为输入并返回一个“TraceableFunction”——输入函数的包装版本,可自动处理追踪。如果返回的可追踪函数调用任何可追踪函数,这些函数也会被自动追踪。

    返回的 TraceableFunction 可以接受运行树或运行树配置作为其第一个参数。如果省略,它将默认为调用者的运行树,或者被视为根运行。

    类型参数

    • Func extends (...args: any[]) => any

    参数

    • wrappedFunc: Func

      目标追踪函数

    • 可选config: Partial<Omit<RunTreeConfig, "inputs" | "outputs">> & {
          aggregator?: (args: any[]) => any;
          argsConfigPath?: [number] | [number, string];
          extractAttachments?: (
              ...args: Parameters<Func>,
          ) => [undefined | Attachments, KVMap];
          getInvocationParams?: (
              ...args: Parameters<Func>,
          ) => undefined | InvocationParamsSchema;
          processInputs?: (inputs: Readonly<KVMap>) => KVMap;
          processOutputs?: (outputs: Readonly<KVMap>) => KVMap;
      }

      其他元数据,例如名称、标签或提供自定义的 LangSmith 客户端实例

      • 可选aggregator?: (args: any[]) => any
      • 可选argsConfigPath?: [number] | [number, string]
      • 可选extractAttachments?: (...args: Parameters<Func>) => [undefined | Attachments, KVMap]

        从参数中提取附件并返回剩余参数。

      • 可选getInvocationParams?: (...args: Parameters<Func>) => undefined | InvocationParamsSchema

        从追踪函数的参数中提取调用参数。这对于 LangSmith 正确追踪提供者、模型名称和温度等常见元数据非常有用。

      • 可选processInputs?: (inputs: 只读<KVMap>) => KVMap

        在记录之前对输入应用转换。此函数不应修改输入。processInputs 不会被嵌套的可追踪函数继承。

      • 可选processOutputs?: (outputs: 只读<KVMap>) => KVMap

        在记录之前对输出应用转换。此函数不应修改输出。processOutputs 不会被嵌套的可追踪函数继承。

    返回 TraceableFunction<Func>