@athlera/core v0.2.2
@athlera/core
This is our base package, it contains the core functionality of the Athlera framework.
Installation
pnpm add @athlera/coreTooling
This package contains methods for creating tools. A tool is a piece of code that can be run by the AI to perform a specific task. Tools can be used to perform a wide range of tasks, from simple calculations to complex machine learning models.
Create a new tool using createTool
To create your own tool, you can use the @athlera/core. This package provides helper functions and classes for defining tools.
tools/weather.ts
import { createTool } from '@athlera/core';
const getWeatherInformation = createTool({
name: 'getWeatherInformation',
description: 'Show the weather in a given city to the user',
inputSchema: z.object({
city: z.string(),
}),
execute: async ({ city }: { city: string }) => {
return `The weather in ${city} is sunny`;
},
});
export {
getWeatherInformation
}Create a new tool using Tool class
You can also create a tool using the Tool class directly.
tools/weather.ts
import { Tool } from '@athlera/core';
class GetLocation extends Tool {
name = 'getLocation';
description = 'Get the user location.';
inputSchema = z.object({});
}
export {
GetLocation
}Scaffold a new tool with CLI
To create a new tool with CLI, you can use the @athlera/cli package. This package provides helper functions and classes for defining tools and CLI commands.
pnpx athlera create:tool --name="getWeatherInformation"This will add a new tool to your project, in the tools directory. You can choose where to place the tool by providing a destination.
pnpx athlera create:tool --name="getWeatherInformation" --destination="src/tools"Use tool in your code. Example for AI SDK (Vercel)
import { streamText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { getWeatherInformation, GetLocation } from '~/tools/weather'
import { createAssistantRuntime } from '@athlera-ai/ai-sdk'
export async function POST(request: Request) {
const {
messages,
assistant
} = await request.json();
const runtime = createAssistantRuntime(assistant, {
tools: [
getWeatherInformation,
new GetLocation
],
messages
});
return runtime.stream();
//return runtime.generate();
}