Package Exports
- ai-sdk-agents
- ai-sdk-agents/dist/index
Readme
AI SDK Agents
A powerful and flexible library for building AI agents using the Vercel AI SDK. This project provides a simple yet powerful way to create and manage AI agents with customizable flows, tools, and contexts.
Features
- 🤖 Simple agent creation and management
- 🔄 Customizable agent flows
- 🛠️ Extensible tool system
- 📝 Context management
- 🔄 Streaming support
Installation
npm install ai-sdk-agents
# or
yarn add ai-sdk-agents
# or
pnpm add ai-sdk-agentsPrerequisites
This package requires the Vercel AI SDK and zod as a peer dependency:
npm install ai zod
# or
yarn add ai zod
# or
pnpm add ai zodUsage
Here's a basic example of how to use the library:
import { agent, ChatFlow, Context } from 'ai-sdk-agents';
import { openai } from '@ai-sdk/openai';
export type PlannerContext = Context & {
today: string;
};
const sqlAgent = agent({
model: openai('gpt-4o'),
system: (ctx: PlannerContext) => plannerPrompt(ctx.today),
description: 'This agent can help you write SQL queries',
tools: { sqlExecutor: sqlExecutorTool },
asTool: {
input: z.object({
question: z.string().describe('The user query to analyze'),
}),
getPrompt: ({ question }) => ({
prompt: `question: ${question}.
- Make sure you return no more than 200 rows of data.`,
}),
},
});
export const routerAgent = agent({
system: (ctx: InsightContext) => routerPrompt(ctx),
model: openai('gpt-4o'),
maxSteps: 5,
tools: { sqlAgent },
toolChoice: 'auto',
});
const flow = new ChatFlow({ agent: routerAgent });
const ctx = { history: [], today: new Date().toISOString().split('T')[0] };
const { result } = await flow.run(ctx);Project Structure
src/
├── agent.ts # Core agent implementation
├── context.ts # Context management
├── flow.ts # Flow control and management
├── flows/ # Predefined flow implementations
│ └── chat-flow.ts # Chat flow implementation
├── index.ts # Main entry point
├── tools.ts # Tool definitions
├── types.ts # Type definitions
├── utils.ts # Utility functions
└── prompts.ts # Prompt handlingDevelopment
Setup
- Clone the repository
- Install dependencies:
yarn install
Available Scripts
yarn test- Run tests using Vitestyarn lint- Run ESLint with auto-fixyarn format- Format code using Prettier
Tests
Comprehensive tests are located in the tests/ directory.
Examples
Example projects are located in the examples/ directory. (Note: If the directory is currently named exmaples/, please rename it to examples/.)
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE.md file for details.
Acknowledgments
- Built on top of the Vercel AI SDK
- Heavily inspired by (openai agent framework)[https://github.com/openai/openai-agents-python]
- Uses Vitest for testing
TODO
- Add more tests
- Add more examples
- Add more documentation
- Inter-Agent memory