Multi-Provider, No Lock-in
Claude, OpenAI, Gemini, Mistral—same interface. Mix providers in a single workflow. Switch models with one line.
No hidden state machines, no forced abstractions—just typed agents, composable graphs, persistent history, and real observability.
Most AI agent frameworks fall into two camps:
Raw SDKs give you control but you rebuild the same patterns every project—tool loops, history management, provider switching.
Heavy frameworks abstract everything away, but you lose visibility and fight the framework when you need control.
Agention is different: enough structure to be productive, enough transparency to stay in control.
From simple tool-calling agents to hierarchical RAG-powered research teams—build it your way.
Unified interface across Claude, OpenAI, Gemini, and Mistral. Tools, history, and token tracking built-in.
const agent = new ClaudeAgent({
model: 'claude-sonnet-4-5',
tools: [searchTool, calculatorTool],
});JSON Schema + handler pattern. Unique capability: wrap any agent as a tool for delegation hierarchies.
// Use a specialized agent as a tool
const mainAgent = new ClaudeAgent({
agents: [researchAssistant], // Sub-agent becomes a callable tool
tools: [webSearchTool],
});Provider-agnostic, persistent (Redis, file, custom), shareable across agents of different providers.
const history = new RedisHistory(redis);
await history.load('conversation:user123');
// Both agents share the same conversation
const claude = new ClaudeAgent({ model: 'claude-sonnet-4-5' }, history);
const gpt = new OpenAiAgent({ model: 'gpt-4o' }, history);Compose sequential, parallel, voting, routing, and nested graphs. Mix models and providers freely.
const pipeline = new Pipeline([
AgentGraph.parallel(researcher1, researcher2), // Parallel research
synthesizer, // Sequential synthesis
AgentGraph.votingSystem(judge), // Judge picks best
]);LanceDB vector store, token-aware chunking, ingestion pipeline, and retrieval tools out of the box.
const store = await LanceDBVectorStore.create({ embeddings, uri: './data' });
const searchTool = store.toRetrievalTool('Search knowledge base');
const agent = new ClaudeAgent({ tools: [searchTool] });Per-call and per-node token counts, duration metrics, full execution visibility.
const metrics = new MetricsCollector();
await pipeline.execute(input, { metrics[vitepress] 1 dead link(s) found.
});
console.log(metrics.getMetrics());
// { totalTokens: 4600, totalDuration: 3200, nodes: [...] }A research pipeline with sub-agent delegation, multi-provider setup, and graph composition:
import { ClaudeAgent, OpenAiAgent, Tool, Pipeline, AgentGraph } from '@agentionai/agents';
// Define a search tool
const searchTool = new Tool({
name: 'web_search',
description: 'Search the web for current information',
input_schema: { type: 'object', properties: { query: { type: 'string' } } },
handler: async ({ query }) => fetchSearchResults(query),
});
// Research assistant (cheaper model for data gathering)
const researchAssistant = new OpenAiAgent({
id: 'research-assistant',
name: 'Research Assistant',
description: 'Search and summarize information on topics.',
model: 'gpt-4o-mini',
tools: [searchTool],
});
// Lead researcher delegates to assistant, synthesizes findings
const researcher = new ClaudeAgent({
id: 'researcher',
name: 'Lead Researcher',
description: 'Research topics thoroughly using your assistant.',
model: 'claude-sonnet-4-5',
agents: [researchAssistant], // Assistant available as a tool
});
// Writer produces final output
const writer = new ClaudeAgent({
id: 'writer',
name: 'Writer',
description: 'Write a clear, engaging summary from the research.',
model: 'claude-sonnet-4-5',
});
// Compose into a pipeline
const pipeline = new Pipeline([researcher, writer]);
const result = await pipeline.execute('Latest developments in quantum computing');What this demonstrates:
| Raw SDKs | Heavy Frameworks | Agention | |
|---|---|---|---|
| Control | Full | Limited | Full |
| Boilerplate | High | Low | Low |
| Transparency | Full | Limited | Full |
| Multi-provider | Manual | Varies | Built-in |
| TypeScript | Varies | Often partial | Native |
npm install @agentionai/agentsInstall provider SDKs as needed:
npm install @anthropic-ai/sdk # For Claude
npm install openai # For OpenAI/GPT