| name | voltagent-best-practices |
| description | VoltAgent architectural patterns and conventions. Covers agents vs workflows, project layout, memory, servers, and observability. |
| license | MIT |
| metadata | {"author":"VoltAgent","version":"1.0.0","repository":"https://github.com/VoltAgent/skills"} |
VoltAgent Best Practices
Quick reference for VoltAgent conventions and patterns.
Choosing Agent or Workflow
| Use | When |
|---|
| Agent | Open-ended tasks that require tool selection and adaptive reasoning |
| Workflow | Multi-step pipelines with explicit control flow and suspend/resume |
Layout
src/
|-- index.ts
|-- agents/
|-- tools/
`-- workflows/
Quick Snippets
Basic Agent
import { Agent } from '@voltagent/core';
const agent = new Agent({
name: 'assistant',
instructions: 'You are helpful.',
model: 'openai/gpt-4o-mini',
});
Model format is provider/model (for example openai/gpt-4o-mini or anthropic/claude-3-5-sonnet).
Basic Workflow
import { createWorkflowChain } from '@voltagent/core';
import { z } from 'zod';
const workflow = createWorkflowChain({
id: 'example',
input: z.object({ text: z.string() }),
result: z.object({ summary: z.string() }),
}).andThen({
id: 'summarize',
execute: async ({ data }) => ({ summary: data.text }),
});
VoltAgent Bootstrap
import { VoltAgent } from '@voltagent/core';
import { honoServer } from '@voltagent/server-hono';
new VoltAgent({
agents: { agent },
workflows: { workflow },
server: honoServer(),
});
Memory Defaults
- Use
memory for a shared default across agents and workflows.
- Use
agentMemory or workflowMemory when defaults need to differ.
Server Options
- Use
@voltagent/server-hono for Node HTTP servers.
- Use
@voltagent/server-elysia as an alternative Node server provider.
- Use
serverless provider for fetch runtimes (Cloudflare, Netlify).
Observability Notes
- Use
VoltOpsClient or createVoltAgentObservability for tracing.
- VoltAgent will auto-configure VoltOps if
VOLTAGENT_PUBLIC_KEY and VOLTAGENT_SECRET_KEY are set.
Recipes
Short best-practice recipes live in the embedded docs:
packages/core/docs/recipes/
- Search:
rg -n "keyword" packages/core/docs/recipes -g"*.md"
- Read:
cat packages/core/docs/recipes/<file>.md
Footguns
- Do not use
JSON.stringify inside VoltAgent packages. Use safeStringify from @voltagent/internal.
Resources