Logo
Classes

FunctionTool

Defined in: packages/core/src/tools/function-tool.ts:14

Simple Tool interface. Likely to change.

Type Parameters

T

T

R

R extends JSONValue | Promise<JSONValue>

AdditionalToolArgument

AdditionalToolArgument extends object = object

Implements

Constructors

Constructor

new FunctionTool<T, R, AdditionalToolArgument>(fn, metadata, zodType?, additionalArg?, logger?): FunctionTool<T, R, AdditionalToolArgument>

Defined in: packages/core/src/tools/function-tool.ts:26

Parameters

fn

(input, additionalArg?) => R

metadata

ToolMetadata<JSONSchemaType<T>>

zodType?

ZodSchema<T>

additionalArg?

AdditionalToolArgument

logger?

Logger

Returns

FunctionTool<T, R, AdditionalToolArgument>

Accessors

metadata

Get Signature

get metadata(): T extends Known ? ToolMetadata<JSONSchemaType<T<T>>> : ToolMetadata<Record<string, unknown>>

Defined in: packages/core/src/tools/function-tool.ts:155

Returns

T extends Known ? ToolMetadata<JSONSchemaType<T<T>>> : ToolMetadata<Record<string, unknown>>

Implementation of

BaseTool.metadata

Methods

from()

Call Signature

static from<T, AdditionalToolArgument>(fn, schema): FunctionTool<T, JSONValue | Promise<JSONValue>, AdditionalToolArgument>

Defined in: packages/core/src/tools/function-tool.ts:45

Type Parameters
T

T

AdditionalToolArgument

AdditionalToolArgument extends object = object

Parameters
fn

(input, additionalArg?) => JSONValue | Promise<JSONValue>

schema

ToolMetadata<JSONSchemaType<T>>

Returns

FunctionTool<T, JSONValue | Promise<JSONValue>, AdditionalToolArgument>

Call Signature

static from<R, AdditionalToolArgument>(fn, schema): FunctionTool<TypeOf<R>, JSONValue | Promise<JSONValue>, AdditionalToolArgument>

Defined in: packages/core/src/tools/function-tool.ts:54

Type Parameters
R

R

AdditionalToolArgument

AdditionalToolArgument extends object = object

Parameters
fn

(input, additionalArg?) => JSONValue | Promise<JSONValue>

schema

Omit<ToolMetadata, "parameters"> & object

Returns

FunctionTool<TypeOf<R>, JSONValue | Promise<JSONValue>, AdditionalToolArgument>

Call Signature

static from<R, AdditionalToolArgument>(fn, schema): FunctionTool<output<R>, JSONValue | Promise<JSONValue>, AdditionalToolArgument>

Defined in: packages/core/src/tools/function-tool.ts:71

Type Parameters
R

R

AdditionalToolArgument

AdditionalToolArgument extends object = object

Parameters
fn

(input, additionalArg?) => JSONValue | Promise<JSONValue>

schema

Omit<ToolMetadata, "parameters"> & object

Returns

FunctionTool<output<R>, JSONValue | Promise<JSONValue>, AdditionalToolArgument>

Call Signature

static from<R, AdditionalToolArgument>(config): FunctionTool<TypeOf<R>, JSONValue | Promise<JSONValue>, AdditionalToolArgument>

Defined in: packages/core/src/tools/function-tool.ts:84

Type Parameters
R

R

AdditionalToolArgument

AdditionalToolArgument extends object = object

Parameters
config

Omit<ToolMetadata, "parameters"> & object

Returns

FunctionTool<TypeOf<R>, JSONValue | Promise<JSONValue>, AdditionalToolArgument>

Call Signature

static from<R, AdditionalToolArgument>(config): FunctionTool<output<R>, JSONValue | Promise<JSONValue>, AdditionalToolArgument>

Defined in: packages/core/src/tools/function-tool.ts:103

Type Parameters
R

R

AdditionalToolArgument

AdditionalToolArgument extends object = object

Parameters
config

Omit<ToolMetadata, "parameters"> & object

Returns

FunctionTool<output<R>, JSONValue | Promise<JSONValue>, AdditionalToolArgument>


bind()

bind(additionalArg): FunctionTool<T, R, AdditionalToolArgument>

Defined in: packages/core/src/tools/function-tool.ts:159

Parameters

additionalArg

AdditionalToolArgument

Returns

FunctionTool<T, R, AdditionalToolArgument>


call()

call(input): R

Defined in: packages/core/src/tools/function-tool.ts:168

This could be undefined if the implementation is not provided, which might be the case when communicating with a llm.

Parameters

input

T

Returns

R

The output of the tool.

Implementation of

BaseTool.call