Always-on agent platform · built on LangGraph
Run 24/7 autonomous agents that never lose the thread.
A platform for long-lived agents: chat & agent-to-agent protocols, memory that stays in budget, scheduled runs, and tools you connect by name.
The platform
Everything a 24/7 agent needs, in one runtime.
Each agent is a compiled LangGraph graph — a reason → act → observe loop — wrapped with the plumbing that keeps it running unattended.
LangGraph core
Every agent is a durable state graph with per-turn checkpointing, so a run can resume where it left off.
Chat & A2A
Talk to agents over REST, WebSocket, and SSE. Let agents discover and delegate to each other over agent-to-agent JSON-RPC.
Stays in budget
A token-budgeted working window, rolling summaries of evicted turns, and a persistent store recalled on demand — context never blows up.
Scheduled runs
Cron, interval, or one-shot triggers wake agents on their own — nightly digests, heartbeats, recurring jobs, no human in the loop.
Tool connecting
Grant agents built-in connectors, your own Python functions, or any external MCP tool server — all picked by name.
Sign in & own agents
Google sign-in and multi-tenancy: users create, own, and run their own agents with memory isolated per account.
Observability & streaming
Every run is recorded — steps, tool calls, tokens, timing — and queryable at /runs, with Prometheus metrics at /metrics and the same events streamed live over SSE.
Connectors
First-party tools, ready to grant.
Ship an agent with capabilities out of the box — or connect any MCP server. External apps use one platform-wide application credential with per-account tokens.
Quickstart
An agent in a dozen lines. The API for everything else.
Runs offline with the built-in EchoModel — swap in any LangChain chat model for production.
# pip install agent-fabric from agent_fabric import Agent, AgentConfig, EchoModel, builtin_tools agent = Agent( AgentConfig(name="assistant", system_prompt="You are helpful."), model=EchoModel(), # ↔ ChatOpenAI / ChatAnthropic tools=list(builtin_tools().values()), ) reply = await agent.chat( "What's on my calendar today?", session_id="ada", )