Playground
Try AgentForge directly in your browser.
Interactive Demo
Click the button below to open a live coding environment with AgentForge pre-installed:
Open in StackBlitz →Quick Start Code
Copy this code to get started:
typescript
import { Agent, OpenAIProvider, defineTool } from 'agentforge';
import { z } from 'zod';
// Create a simple tool
const greetTool = defineTool({
name: 'greet',
description: 'Greet someone by name',
parameters: z.object({
name: z.string().describe('The name to greet'),
}),
execute: async ({ name }) => {
return { message: `Hello, ${name}! Welcome to AgentForge.` };
},
});
// Create the agent
const agent = new Agent({
provider: new OpenAIProvider({
apiKey: 'your-api-key-here', // Replace with your key
}),
tools: [greetTool],
systemPrompt: 'You are a friendly assistant that greets people.',
});
// Run it
async function main() {
const response = await agent.run('Please greet Michael');
console.log(response.content);
}
main();What to Try
1. Add More Tools
typescript
const calculatorTool = defineTool({
name: 'calculate',
description: 'Perform math calculations',
parameters: z.object({
expression: z.string().describe('Math expression like "2 + 2"'),
}),
execute: async ({ expression }) => {
// Simple eval (use a proper parser in production!)
const result = Function(`return ${expression}`)();
return { result };
},
});
// Add to agent
const agent = new Agent({
provider,
tools: [greetTool, calculatorTool],
});2. Try Streaming
typescript
for await (const event of agent.stream('Tell me a short story')) {
if (event.type === 'content') {
process.stdout.write(event.data as string);
}
}3. Add Middleware
typescript
import { createMiddleware } from 'agentforge';
const loggingMiddleware = createMiddleware({
name: 'logger',
beforeRequest: async (ctx) => {
console.log('Request starting...');
return ctx;
},
afterResponse: async (res, ctx) => {
console.log('Response received!');
return res;
},
});
const agent = new Agent({
provider,
middleware: [loggingMiddleware],
});4. Handle Errors
typescript
import { tryCatchAsync, isOk, isErr } from 'agentforge';
const result = await tryCatchAsync(() => agent.run('Hello'));
if (isOk(result)) {
console.log('Success:', result.value.content);
} else {
console.error('Error:', result.error.message);
}CodeSandbox Alternative
If you prefer CodeSandbox:
Open in CodeSandboxLocal Development
For the full experience, clone and run locally:
bash
# Clone the repo
git clone https://github.com/mpalmer79/agentforge.git
cd agentforge
# Install dependencies
npm install
# Run examples
npm run example:customer-support
npm run example:data-analyst