Build production-grade enterprise agents in minutes, not days, weeks, or months.
openloops handles persistence, tool execution, MCP integration, and user management, so you can focus on the one thing that makes your agent yours: how it thinks.
One line decides what your agent does
import { Agent } from 'openloops/core'import { Logger } from 'openloops/common'import { PlanExecuteLoop } from 'openloops/loops' const logger = new Logger()const agent = new Agent({ loop: new PlanExecuteLoop() }) const result = await agent.run({ input: { message: 'what is the current price of Bitcoin?' }, currentUser,}) logger.info(result.data.lastAnswer, '[Demo] Result')What you get out of the box
Everything an agent needs to survive in production, already built
Multi-user by design
Chat history, task state, and MCP configuration are scoped per user from the start.
Zero-boilerplate persistence
Messages, tasks, and every tool call are saved automatically to MongoDB.
Production-grade execution
Retries, confirmation prompts, and crash recovery are built into the runtime.
Native MCP support
Connect any MCP server and its tools become regular tools instantly.
Sub-agent orchestration
An agent can launch and coordinate other agents to split up a problem.
Any LLM provider
OpenAI, Anthropic, and self-hosted local models all work the same way.
Works with
OpenAISee how little code this actually takes
Running an agent, adding hooks, setting an identity, and writing a custom tool
import { Agent } from 'openloops/core'import { Logger } from 'openloops/common'import { CurrentUser } from 'openloops/base'import { PlanExecuteLoop } from 'openloops/loops' const logger = new Logger()const currentUser = await CurrentUser.asyncFromDB(userId)const agent = new Agent({ loop: new PlanExecuteLoop() }) const result = await agent.run({ input: { message: 'hi, how are you?' }, currentUser,}) logger.info(result, '[Demo] Result')One package, organized by what you need
openloops ships as a single package with subpath exports, so you only pull in what you use.
Agent, AgentLoop, RunContext: the runtime
Built-in loops, starting with PlanExecuteLoop
Tool, BaseParams, and built-in tools
Skill, for LLM-backed reasoning steps inside a loop
MCP server CRUD and connection handling
User management
LLM usage and cost tracking
CurrentUser, CurrentSession
Logger and shared utilities
HTTP clients used by built-in tools
Authentication utilities
Chat and conversation persistence internals
How it compares to other frameworks
An honest comparison against the self-hosted, open-source versions of LangGraph and CrewAI
| Β | openloops | LangGraph (OSS) | CrewAI (OSS) |
|---|---|---|---|
| Persistence | Built in, zero config (MongoDB) | Requires configuring a checkpointer (e.g. Postgres) yourself | Local memory (ChromaDB + SQLite) by default, machine-bound and scoped to a single run |
| Multi-user scoping | Built in: chats, context, and MCP servers are per-user from the start | Not a concept of the framework, you build it | Not natively supported by default |
| Tool execution and retries | Built into the runtime | You write the retry and error-handling logic | Configured per task, not automatic |
| MCP support | Native: MCP tools become Tool instances automatically | Requires a separate adapter package and manual wiring | Available through a separate tools integration, not automatic per-user loading |
| User management | Included (openloops/users) | Not included, you build your own | Not included |
| LLM usage and cost tracking | Included (openloops/llmcalls) | Not included in OSS, available via paid LangSmith | Not included as a first-class module |
| Observability | Sentry and Langfuse, enabled via env vars | Requires your own tracing setup, or paid LangSmith | Requires a third-party tracing integration |
| Pre-built agents | Growing marketplace of ready-to-use loops | You build every agent from primitives | No built-in agent marketplace |
| What you write | Node functions (plain async functions) | Nodes and the graph's edges, explicitly | Agents, tasks, and crew orchestration, declared per role |
| Mental model | A state machine your loop drives itself | A graph you declare and compile ahead of time | A crew of role-based agents coordinated for you |
Ready to build your first agent?
Install openloops and have a working, persisted, multi-user agent running in minutes.