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.
- π€ Simple agent creation and management
- π Customizable agent flows
- π οΈ Extensible tool system
- π Context management
- π Streaming support
npm install ai-sdk-agents
# or
yarn add ai-sdk-agents
# or
pnpm add ai-sdk-agents
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 zod
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);
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 handling
- Clone the repository
- Install dependencies:
yarn install
yarn test
- Run tests using Vitestyarn lint
- Run ESLint with auto-fixyarn format
- Format code using Prettier
Comprehensive tests are located in the tests/
directory.
Example projects are located in the examples/
directory. (Note: If the directory is currently named exmaples/
, please rename it to examples/
.)
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE.md file for details.
- 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
- Add more tests
- Add more examples
- Add more documentation
- Inter-Agent memory