node-agency
Version:
A node package for building AI agents
33 lines (29 loc) • 627 B
text/typescript
import { registerTool } from "./utils";
import OpenAI from "openai";
type PARAMS =
OpenAI.Chat.Completions.ChatCompletionTool["function"]["parameters"];
type ToolProps = {
run: (input: string) => Promise<string>;
name: string;
description: string;
parameters: PARAMS;
};
export const Tool = ({
run,
name,
description,
parameters,
}: ToolProps): OpenAI.Chat.Completions.ChatCompletionTool => {
const toolName = name;
registerTool(toolName, run);
return {
type: "function",
function: {
name: toolName,
description,
parameters: {
...parameters,
},
},
};
};