OS_SECURITY_KEY to enable it for this AgentOS.
demo.py
"""
AgentOS Demo
Set the OS_SECURITY_KEY environment variable to your OS security key to enable authentication.
Prerequisites:
uv pip install -U fastapi uvicorn sqlalchemy pgvector psycopg openai ddgs yfinance
"""
from agno.agent import Agent
from agno.db.postgres import PostgresDb
from agno.knowledge.knowledge import Knowledge
from agno.models.openai import OpenAIChat
from agno.os import AgentOS
from agno.team import Team
from agno.tools.mcp import MCPTools
from agno.tools.websearch import WebSearchTools
from agno.vectordb.pgvector import PgVector
# ---------------------------------------------------------------------------
# Create Example
# ---------------------------------------------------------------------------
# Database connection
db_url = "postgresql+psycopg://ai:ai@localhost:5532/ai"
# Create Postgres-backed memory store
db = PostgresDb(db_url=db_url)
# Create Postgres-backed vector store
vector_db = PgVector(
db_url=db_url,
table_name="agno_docs",
)
knowledge = Knowledge(
name="Agno Docs",
contents_db=db,
vector_db=vector_db,
)
# Create your agents
agno_agent = Agent(
name="Agno Agent",
model=OpenAIChat(id="gpt-4.1"),
tools=[MCPTools(transport="streamable-http", url="https://docs.agno.com/mcp")],
db=db,
update_memory_on_run=True,
knowledge=knowledge,
markdown=True,
)
simple_agent = Agent(
name="Simple Agent",
role="Simple agent",
id="simple_agent",
model=OpenAIChat(id="gpt-5.2"),
instructions=["You are a simple agent"],
db=db,
update_memory_on_run=True,
)
research_agent = Agent(
name="Research Agent",
role="Research agent",
id="research_agent",
model=OpenAIChat(id="gpt-5.2"),
instructions=["You are a research agent"],
tools=[WebSearchTools()],
db=db,
update_memory_on_run=True,
)
# Create a team
research_team = Team(
name="Research Team",
description="A team of agents that research the web",
members=[research_agent, simple_agent],
model=OpenAIChat(id="gpt-4.1"),
id="research_team",
instructions=[
"You are the lead researcher of a research team.",
],
db=db,
update_memory_on_run=True,
add_datetime_to_context=True,
markdown=True,
)
# Create the AgentOS
agent_os = AgentOS(
id="agentos-demo",
agents=[agno_agent],
teams=[research_team],
)
app = agent_os.get_app()
# ---------------------------------------------------------------------------
# Run Example
# ---------------------------------------------------------------------------
if __name__ == "__main__":
agent_os.serve(app="demo:app", port=7777, reload=True)
Run the Example
1
Set up your virtual environment
uv venv --python 3.12
source .venv/bin/activate
uv venv --python 3.12
.venv\Scripts\activate
2
Install dependencies
uv pip install -U "agno[mcp,os]" "psycopg[binary]" ddgs openai pgvector
3
Export your OpenAI API key
export OPENAI_API_KEY="your_openai_api_key_here"
$Env:OPENAI_API_KEY="your_openai_api_key_here"
4
Run PgVector
docker run -d \
-e POSTGRES_DB=ai \
-e POSTGRES_USER=ai \
-e POSTGRES_PASSWORD=ai \
-e PGDATA=/var/lib/postgresql \
-v pgvolume:/var/lib/postgresql \
-p 5532:5432 \
--name pgvector \
agnohq/pgvector:18
docker run -d `
-e POSTGRES_DB=ai `
-e POSTGRES_USER=ai `
-e POSTGRES_PASSWORD=ai `
-e PGDATA=/var/lib/postgresql `
-v pgvolume:/var/lib/postgresql `
-p 5532:5432 `
--name pgvector `
agnohq/pgvector:18
5
Optional: enable authentication
Set
OS_SECURITY_KEY before running to require AgentOS authentication. Leave it unset to run without authentication.6
Run the example
Save the code above as
demo.py, then run:python demo.py