Open-source TypeScript framework for production AI agents. 40+ LLM providers, 100+ tools, multi-agent teams, RAG, guardrails, circuit breakers, budget enforcement, OTLP tracing. CrewAI / LangChain alt
Developer toolsTypeScript · JavaScriptGitHub @confused-aiOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
TypeScript AI agent framework — 40+ LLM providers, 100+ tools, multi-agent orchestration, RAG, guardrails, circuit breakers, HITL, budget enforcement. Open-source CrewAI / LangChain alternative. — For Building Production-Grade Multi Agents in Minutes at Scale
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Ship production AI agents in TypeScript.
One package. Start with a one-line agent, then add tools, sessions, retrieval,
orchestration, serving, and production controls — without ever switching frameworks.
Every agent framework can spin up an agent. personaforge is the only TypeScript framework that ships durability, multi-agent orchestration, guardrails, eval, and a control-plane dashboard in a single npm install.
bash
npm install personaforge
or
bun add personaforgeRead the full README ↗Every agent framework can spin up an agent. personaforge is the only TypeScript framework that ships durability, multi-agent orchestration, guardrails, eval, and a control-plane dashboard in a single npm install.
| Against | personaforge wins on |
|---|---|
| LangChain | Single package (not 200+). Built-in checkpoint/replay. MCP + A2A protocols. SSRF-protected tools. τ-bench cross-framework benchmarks. |
| Vercel AI SDK | Full agent runtime (not just streaming primitives). Sessions, memory, knowledge, teams, durability, guardrails, eval, control plane. |
| CrewAI | TypeScript-native. 6 team modes vs 2. Event-sourced durability. Built-in eval. 120+ tools. Graph DAG engine. |
| LangGraph | Same graph semantics in TypeScript — plus budget enforcement, guardrails, OTLP tracing, eval, and control plane in one install. |
| Mastra | Durable DAG engine, circuit breakers, USD budget caps, multi-tenancy, 100+ tools, and enterprise audit logging. |
| AutoGen / Agno | TypeScript-native. Durable interrupts + resume. Built-in guardrails + budget enforcement. OTLP tracing. Control plane dashboard. |
import { agent } from 'personaforge/lite';
import { tool } from 'personaforge/tool';
import { z } from 'zod';
const getQuote = tool({
name: 'get_quote',
description: 'Return a stock quote for a ticker symbol.',
parameters: z.object({ symbol: z.string() }),
execute: async ({ symbol }) => ({ symbol, price: 927.5, changePct: 1.4 }),
});
const financeAgent = agent({
name: 'finance-agent',
model: 'gpt-4o-mini',
instructions: 'Use the tool to answer market questions in one concise sentence.',
tools: [getQuote],
});
const result = await financeAgent.run("What's NVDA trading at today?");
console.log(result.text); // "NVDA is trading at $927.50, up 1.4% today."
npm install personaforge
# or
bun add personaforge
Zero-config. Treeshakeable. No peer dependencies required for basic use.
@ai-sdk/provider model and morecompose, pipe, parallel, fallback, retry, timeout, map, filterAgentRunResult. Zero instrumentation.maxConcurrency.createKnowledgeBase with text splitters, BM25 indexing, hybrid RRF fusion, rerankers (Cohere, Jina, LLM), multi-query, contextual compression, parent-document, self-query, time-weighted retrievers| Mode | What it does |
|---|---|
| Supervisor | Manager delegates to specialists, reviews output |
| Swarm | Dynamic sub-agent scaling (up to 100 agents) |
| Consensus | Majority-vote, unanimous, or weighted voting across agents |
| Handoff | Agent-to-agent transfer with context |
| Router | Instruction/tool-based agent routing |
| Pipeline | Sequential agent composition |
| GSD | Goal-Strategy-Decomposition pattern |
| Team | Role-based team creation with permission isolation |
addConditionalEdges('classify', { map: { positive: 'handle', negative: 'escalate' }, default: 'review' })verifyChain()interrupt() / resume() / fork() — durable checkpoints with DurableExecutor| Capability | What it does |
|---|---|
| Guardrails | PII detection/redaction, prompt injection detection (pattern + heuristic + LLM), content moderation (OpenAI Moderation API), allowlists for tools/hosts/output |
| HITL | Human-in-the-loop approval hooks with interrupt() / resume() |
| Budget enforcement | Per-user, per-session, and global token/cost caps |
| Rate limiting | Sliding-window (in-memory + Redis) |
| Circuit breaker | Provider failure detection and recovery |
| Idempotency | Deduplication of tool calls and agent runs |
| Graceful shutdown | Drain active executions before shutdown |
| Health checks | Readiness, liveness, and dependency probes |
| Secret management | Pluggable backends with live secret watching |
benchmarks/tau-bench/PROTOCOL.mdreplayDataset, diffResults for eval regressionspanToSample converts production traces to eval datasetscreateHttpService with OpenAPI generation, admin API, WebSocket transporttext/event-stream for real-time agent responsesnpx personaforge for quick agent runsOne declarative config turns on authentication, multi-tenant isolation, RBAC, budget enforcement, rate limiting, and durable audit — plus a board-ready compliance dashboard (SOC 2, HIPAA, GDPR, ISO 27001).
import { createAgent } from 'personaforge';
import { createEnterpriseGateway } from 'personaforge/gateway';
import { apiKeyAuth } from 'personaforge/runtime';
import { createSqliteAuditStore, createSqliteRunStore } from 'personaforge/production';
const support = createAgent({ name: 'support', instructions: 'You are a support agent.' });
const billing = createAgent({ name: 'billing', instructions: 'You handle billing questions.' });
const gateway = createEnterpriseGateway({
agents: { support, billing },
auth: apiKeyAuth([process.env.GATEWAY_API_KEY!]),
runStore: createSqliteRunStore('./runs.db'), // ← every run persisted (cost, status, tenant)
maxConcurrency: 25, // ← at most 25 concurrent agent executions
tenants: [
{
id: 'acme',
monthlyBudgetUsd: 500,
maxRpm: 60,
allowedAgents: ['support', 'billing'],
},
],
policy: { monthlyBudgetUsd: 5000, requestTimeoutMs: 60_000 },
auditStore: createSqliteAuditStore('./audit.db'),
});
await gateway.start(8787);
// → http://localhost:8787/compliance (compliance dashboard)
| Capability | What it does |
|---|---|
| Multi-tenant | Per-tenant budgets, rate limits, agent allowlists, RBAC |
| Policy engine | Global + per-tenant USD caps, RPM limits, timeouts |
| Audit trail | Hashed prompts, IPs, costs, tools called — SOC 2 ready |
| Compliance dashboard | /compliance — live SOC 2 / HIPAA / GDPR / ISO 27001 controls |
Built-in AgentOS dashboard served by createControlPlane():
| Tab | What it shows |
|---|---|
| Overview | Session count, eval runs, traces, pending approvals |
| Sessions | Browse with search, view full conversation history |
| Memory | Inspect vector and graph memory stores |
| Evals | Pass/fail rates, score distribution, run history |
| Traces | Waterfall timeline visualization |
| Approvals | HITL queue with approve/reject buttons |
| Knowledge | Document browser with search |
| Chat | Interactive playground with agent selector |
| Graph | DAG workflow visualizer with SVG rendering |
pipe(), batch(), stream(), withRetry(), withFallbacks(), assign()values | updates | messages | debug | custom modesthink / analyze scratchpad toolsonReasoning, result.reasoning, reasoning-delta stream events for Anthropic, Bedrock, Gemini, Ollama, and OpenAI-compatible thinking modelscreateDeepAgent plan-research-synthesize recipe| Primitive | When to use |
|---|---|
| Agent | One model-backed worker can handle the task |
| Team | Specialists should coordinate, delegate, or vote |
| Workflow | Execution path should be staged, deterministic, or branching |
Each layer is optional. Most projects only need a subset.
| From | Guide |
|---|---|
| LangChain | docs/guide/migration-langchain.md |
| Vercel AI SDK | docs/guide/migration-vercel.md |
| CrewAI | docs/guide/migration-crewai.md |
| LangGraph | docs/guide/migration-langgraph.md |
| Mastra | docs/guide/migration-mastra.md |
| Agno | docs/guide/migration-agno.md |
| All frameworks | docs/guide/comparisons.md |
| Trust & reliability | docs/guide/trust.md |
| Metric | Count |
|---|---|
| Source files | 570+ |
| Lines of TypeScript | 112,000+ |
| Test files | 92 |
| Lines of test code | 15,800+ |
| Built-in tools | 120+ (across 20 categories) |
| LLM provider integrations | 30+ native + 300+ via AI SDK adapter |
| Production primitives | 20+ (run store, error taxonomy, concurrency, circuit breaker, rate limiter, ...) |
| Graph DAG engine | 5,200+ lines |
| Entry points (treeshakeable) | 75+ |
Using personaforge in production? Add yourself to ADOPTERS.md.
MIT