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 ddgsRun 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 \
mongofrom 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
| Parameter | Type | Default | Description |
|---|---|---|---|
id | Optional[str] | - | Database ID. Derived deterministically from connection/client and database name when omitted. |
db_client | Optional[MongoClient] | - | The MongoDB client to use. |
db_name | Optional[str] | - | The name of the database to use. |
db_url | Optional[str] | - | The database URL to connect to. |
session_collection | Optional[str] | - | Name of the collection to store sessions. |
runs_collection | Optional[str] | - | Name of the collection to store individual runs. |
memory_collection | Optional[str] | - | Name of the collection to store memories. |
metrics_collection | Optional[str] | - | Name of the collection to store metrics. |
eval_collection | Optional[str] | - | Name of the collection to store evaluation runs. |
knowledge_collection | Optional[str] | - | Name of the collection to store knowledge documents. |
traces_collection | Optional[str] | - | Name of the collection to store traces. |
spans_collection | Optional[str] | - | Name of the collection to store spans. |
schedules_collection | Optional[str] | - | Name of the collection to store cron schedules. |
schedule_runs_collection | Optional[str] | - | Name of the collection to store schedule run history. |
learnings_collection | Optional[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