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
BaseTool
<T
>
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
extendsKnown
?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
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.