@tooly/core
v0.0.7
Published
Core utilities and abstractions for Tooly AI tool packages
Maintainers
Readme
@tooly/core
Core utilities and abstractions for building AI tool packages compatible with OpenAI function calling, Anthropic tool use, and AI SDK.
Installation
This package is typically used as a dependency by other @tooly/* packages and not installed directly:
npm install @tooly/core
# or
yarn add @tooly/core
# or
pnpm add @tooly/coreOverview
This package provides:
- BaseToolManager: Abstract class for creating tool managers
- Common Types: Shared TypeScript types and interfaces
- AI Framework Helpers: Utilities for OpenAI, Anthropic, and AI SDK integration
- Tool Definition Utilities: Helpers for defining and validating tools
Usage
Creating a Tool Manager
import { BaseToolManager } from '@tooly/core'
import { z } from 'zod'
// Define your tool schemas
const toolSchemas = {
myTool: z.object({
param1: z.string(),
param2: z.number().optional(),
}),
}
// Define your tools
const tools = [
{
name: 'myTool',
description: 'My custom tool',
parameters: {
type: 'object',
properties: {
param1: { type: 'string', description: 'First parameter' },
param2: { type: 'number', description: 'Optional second parameter' },
},
required: ['param1'],
},
},
] as const
class MyToolManager extends BaseToolManager<typeof toolSchemas, typeof tools> {
constructor(apiKey: string) {
super(tools, toolSchemas)
// Initialize your handlers
}
protected async executeToolFunction(name: string, params: any): Promise<any> {
switch (name) {
case 'myTool':
return this.handleMyTool(params)
default:
throw new Error(`Unknown tool: ${name}`)
}
}
private async handleMyTool(params: { param1: string; param2?: number }) {
// Your tool implementation
return { result: `Processed ${params.param1}` }
}
}Using with AI Frameworks
import { createAITools, createOpenAIFunctions, createAnthropicTools } from '@tooly/core'
const toolManager = new MyToolManager('your-api-key')
// AI SDK
const vercelTools = createAITools(toolManager)
// OpenAI Function Calling
const openaiSetup = createOpenAIFunctions(toolManager)
// Anthropic Tool Use
const anthropicSetup = createAnthropicTools(toolManager)API Reference
BaseToolManager
Abstract base class that provides common functionality for tool managers.
Methods
getTools(): Returns the tool definitionsexecuteFunction(name, parameters): Executes a tool function with validationgetToolSchemas(): Returns the Zod schemas for validation
Helper Functions
createAITools(toolManager): Creates AI SDK compatible toolscreateOpenAIFunctions(toolManager): Creates OpenAI function calling setupcreateAnthropicTools(toolManager): Creates Anthropic tool use setup
License
MIT
