Skip to content

playground.md

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 CodeSandbox

Local 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

Released under the MIT License.