MongoDB for Agent

Store agent sessions and history in MongoDB with MongoDb.

MongoDb stores an Agent's sessions and run history in MongoDB.

Usage

Start in a virtual environment and set the model key before running the example.

Set OpenAI Key

Set your OPENAI_API_KEY as an environment variable. You can get one from OpenAI.

export OPENAI_API_KEY=sk-***

Provide either db_url or db_client. The default database name is agno; set db_name to use another database. The following example uses db_url.

Install the agno, pymongo, openai, and ddgs packages:

uv pip install agno pymongo openai ddgs

Run MongoDB

Install Docker Desktop, then start MongoDB on port 27017:

docker run -d \
  --name local-mongo \
  -p 27017:27017 \
  -e MONGO_INITDB_ROOT_USERNAME=mongoadmin \
  -e MONGO_INITDB_ROOT_PASSWORD=secret \
  mongo
mongodb_for_agent.py
from agno.agent import Agent
from agno.db.mongo import MongoDb
from agno.tools.websearch import WebSearchTools

db_url = "mongodb://mongoadmin:secret@localhost:27017"

db = MongoDb(db_url=db_url)

agent = Agent(
    db=db,
    tools=[WebSearchTools()],
    add_history_to_context=True,
)
agent.print_response("How many people live in Canada?")
agent.print_response("What is their national anthem called?")

Parameters

ParameterTypeDefaultDescription
idOptional[str]-Database ID. Derived deterministically from connection/client and database name when omitted.
db_clientOptional[MongoClient]-The MongoDB client to use.
db_nameOptional[str]-The name of the database to use.
db_urlOptional[str]-The database URL to connect to.
session_collectionOptional[str]-Name of the collection to store sessions.
runs_collectionOptional[str]-Name of the collection to store individual runs.
memory_collectionOptional[str]-Name of the collection to store memories.
metrics_collectionOptional[str]-Name of the collection to store metrics.
eval_collectionOptional[str]-Name of the collection to store evaluation runs.
knowledge_collectionOptional[str]-Name of the collection to store knowledge documents.
traces_collectionOptional[str]-Name of the collection to store traces.
spans_collectionOptional[str]-Name of the collection to store spans.
schedules_collectionOptional[str]-Name of the collection to store cron schedules.
schedule_runs_collectionOptional[str]-Name of the collection to store schedule run history.
learnings_collectionOptional[str]-Name of the collection to store learnings.

Run the Example

Save the code as mongodb_for_agent.py, complete the prerequisites above, then run:

python mongodb_for_agent.py