The platform to run, govern, and scale your agents — built natively on Atlas.
Five stages. One continuous loop. Perceive. Retrieve. Reason. Act. Store — every cycle sharpens the agent, and MongoDB powers each step. Click any phase to explore.
The Model Context Protocol gives every agent native access to MongoDB — 25+ tools for querying, writing, and managing data. No driver code required.
Your agent runs the loop perfectly on your laptop. But production means concurrent sessions, compliance audits, isolated compute, and data that never leaves your cloud. That's a different problem.
Your agent keeps its cognitive loop. The platform adds orchestration, isolated execution, and governance — so every request is routed by policy, sandboxed at runtime, and validated before it reaches the user.
Click any component to explore.
The Customer Data Store is a dedicated cluster in your Atlas organization. Memory, checkpoints, traces, guardrails — all stored where you control encryption, access, and compliance. Not in MongoDB's cloud. Not in a shared tenant. Yours.
A familiar hierarchy built for agent isolation. Click to explore.
Watch MongoDB Managed Agents orchestrate enterprise agents in real-time. Select an industry and scenario to begin.
Build, deploy, and observe agents with the Atlas Agents CLI.
Start with LangGraph today. Bring CrewAI, Google ADK, or your own framework tomorrow.
from mongodb_agents import tool, memory
from langgraph.graph import StateGraph
@tool(name="lookup_policy")
def lookup_policy(policy_id: str) -> dict:
"""Retrieve policy from Customer Data Store."""
return memory.customer_ds.find_one(
{"policyId": policy_id}
)
@tool(name="assess_damage")
def assess_damage(description: str) -> dict:
"""Assess damage severity using ML model."""
...
# Define the agent graph
graph = StateGraph(ClaimsState)
graph.add_node("intake", intake_node)
graph.add_node("assess", assessment_node)
graph.add_node("decide", decision_node)
graph.add_edge("intake", "assess")
graph.add_edge("assess", "decide")
agent = graph.compile(
checkpointer=memory.checkpointer()
)
from mongodb_agents import tool, memory
from crewai import Agent, Task, Crew
claims_agent = Agent(
role="Claims Processor",
goal="Process insurance claims efficiently",
tools=[lookup_policy, assess_damage],
memory=memory.exo(stm=True, ltm=True),
llm="claude-sonnet"
)
assess_task = Task(
description="Assess claim for policy {policy_id}",
agent=claims_agent,
expected_output="Claim assessment with recommendation"
)
crew = Crew(
agents=[claims_agent],
tasks=[assess_task]
)
from mongodb_agents import tool, memory
from google.adk import Agent
claims_agent = Agent(
name="claims-processor",
model="claude-sonnet",
tools=[lookup_policy, assess_damage],
instruction="Process insurance claims...",
)
claims_agent.memory = memory.exo(
stm=True, ltm=True
)
from mongodb_agents import ManagedAgent, tool, memory
class ClaimsAgent(ManagedAgent):
model = "claude-sonnet"
tools = [lookup_policy, assess_damage]
def process(self, message: str) -> str:
# Your custom orchestration logic
policy = self.call_tool(
"lookup_policy",
policy_id=self.extract_id(message)
)
assessment = self.call_tool(
"assess_damage",
description=message
)
# ExoMemory auto-manages STM/LTM
self.memory.store_episode(
input=message,
output=assessment
)
return self.generate_response(
policy=policy,
assessment=assessment
)
Five layers of isolation. Built for regulated industries.
We believe in building in the open. Here's our honest roadmap.