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

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

    类型参数

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

    参数

    • wrappedFunc: Func

      要追踪的目标函数

    • Optionalconfig: Partial<RunTreeConfig> & {
          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 客户端实例

      • Optionalaggregator?: (args: any[]) => any
      • OptionalargsConfigPath?: [number] | [number, string]
      • OptionalextractAttachments?: (...args: Parameters<Func>) => [undefined | Attachments, KVMap]

        从 args 中提取附件并返回剩余的 args。

      • OptionalgetInvocationParams?: (...args: Parameters<Func>) => undefined | InvocationParamsSchema

        从被追踪函数的参数中提取调用参数。这对于 LangSmith 正确跟踪通用元数据(如提供程序、模型名称和温度)非常有用。

      • OptionalprocessInputs?: (inputs: Readonly<KVMap>) => KVMap

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

      • OptionalprocessOutputs?: (outputs: Readonly<KVMap>) => KVMap

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

    返回 TraceableFunction<Func>