Logo
Classes

FunctionTool

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

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?): FunctionTool<T, R, AdditionalToolArgument>

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

Parameters

fn

(input, additionalArg?) => R

metadata

ToolMetadata<JSONSchemaType<T>>

zodType?

ZodType<T, ZodTypeDef, T>

additionalArg?

AdditionalToolArgument

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:123

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:31

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:38

Type Parameters
R

R extends ZodType<any, ZodTypeDef, any>

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<T, R, AdditionalToolArgument>(fn, schema): FunctionTool<T, JSONValue, AdditionalToolArgument>

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

Type Parameters
T

T

R

R extends ZodType<T, ZodTypeDef, T>

AdditionalToolArgument

AdditionalToolArgument extends object = object

Parameters
fn

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

schema

Omit<ToolMetadata, "parameters"> & object

Returns

FunctionTool<T, 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:67

Type Parameters
R

R extends ZodType<any, ZodTypeDef, any>

AdditionalToolArgument

AdditionalToolArgument extends object = object

Parameters
config

Omit<ToolMetadata, "parameters"> & object

Returns

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


bind()

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

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

Parameters

additionalArg

AdditionalToolArgument

Returns

FunctionTool<T, R, AdditionalToolArgument>


call()

call(input): R

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

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