Build autonomous AI agents with declarative YAML configuration
Project description
OpenAgno
OpenAgno is a declarative agent platform built on top of Agno. It packages a CLI, a FastAPI and AgentOS runtime, reusable workspace templates, tenant-aware provisioning, MCP connectivity, channel integrations, scheduler tooling, and PgVector-backed knowledge retrieval in a single repository.
OpenAgnoCloud sits in front of this runtime as the hosted control plane. Cloud owns signup, billing, customer and operator portals, and then drives this OSS runtime strictly through the supported HTTP tenant contract.
What ships in this repo
openagnoCLI for workspace lifecycle, runtime control, validation, templates, and deployment helpers- FastAPI runtime with AgentOS integration
- declarative
workspace/configuration based on YAML and Markdown files - built-in workspace templates for common agent setups
- tenant-aware routes and tenant-scoped workspace execution
- knowledge ingestion, listing, deletion, and semantic search over PgVector
- MCP client and MCP server support
- channel and protocol surfaces including WhatsApp, Slack, Telegram, AG-UI, and A2A
- scheduler support for recurring agent jobs
- public docs, IDE config files, and local service and container helpers
Repository layout
openagno/commandsCLI commands exposed byopenagnoopenagno/coretenant, workspace, and runtime primitivesopenagno/templatespackaged starter templatesroutesFastAPI route builders for admin, tenants, knowledge, channels, and integrationstoolsoptional runtime tools such as workspace and scheduler managementworkspacethe default declarative workspace loaded by the runtimeworkspacesprovisioned tenant workspaces when the local workspace store backend is useddeploydeployment scripts, including systemd installationbridgesauxiliary channel bridges such as the WhatsApp QR bridgedocsMintlify documentation, including English and Spanish treeside-configsready-made MCP client config files for supported editorstestsautomated test suite
Installation
Install from PyPI:
pip install openagno
Install from source:
git clone https://github.com/OpenAgno/OpenAgno.git
cd OpenAgno
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
Install with validation and protocol extras:
pip install -e '.[dev,protocols]'
Python >=3.10 is required.
Agno compatibility
OpenAgno tracks the Agno 2.5.x line and the direct dependency pins in this repo are aligned to Agno 2.5.14, which was the latest stable release verified against PyPI on April 4, 2026.
The runtime code paths in this repository continue to rely on documented Agno AgentOS, interface routers, and linked_to knowledge isolation behavior, which remain present in the current Agno documentation for:
agno.os.AgentOSagno.os.interfaces.whatsapp,slack,telegram, anda2a- knowledge isolation through
linked_tometadata and filter injection
Quickstart
List available templates:
openagno templates list
Initialize a workspace from a template:
openagno init --template personal_assistant
Validate the workspace:
openagno validate
Start the runtime:
openagno start --foreground
For production or long-running WhatsApp traffic, prefer a single managed process such as the installed systemd unit. Do not run systemctl, python gateway.py, and service_manager.py start against the same workspace at the same time or you will create port and shutdown drift.
Health check:
curl http://127.0.0.1:8000/admin/health
CLI surface
Main commands:
openagno initopenagno startopenagno stopopenagno restartopenagno statusopenagno logsopenagno validate
Grouped commands:
openagno createopenagno addopenagno templatesopenagno deploy
The CLI entrypoint is defined in openagno/cli.py and maps directly to the command modules under openagno/commands/.
Templates
The packaged template registry currently includes:
personal_assistantcustomer_supportdeveloper_assistantresearch_agentsales_agent
Templates live in openagno/templates/ and are copied into a new workspace through openagno init.
Workspace model
The runtime is driven by the declarative files under workspace/.
Core files:
workspace/config.yamlworkspace/instructions.mdworkspace/self_knowledge.mdworkspace/tools.yamlworkspace/mcp.yamlworkspace/schedules.yamlworkspace/agents/*.yamlworkspace/knowledge/urls.yaml
Optional extension surface:
workspace/integrations/*
The default workspace config in this repository currently enables:
- main agent id
agnobot-main - model provider
googlewithgemini-2.5-flash - local database mode by default
- hybrid knowledge search
- agentic memory
- scheduler polling
- AgentOS embedded MCP server
The loader merges the base workspace with enabled integrations, builds runtime tools from tools.yaml, builds MCP clients from mcp.yaml, constructs the knowledge layer, and then instantiates the main agent, sub-agents, teams, and schedules.
Runtime routes
The runtime exposes an admin surface plus tenant and knowledge operations.
Tenant routes:
GET /tenantsPOST /tenantsGET /tenants/{tenant_id}PATCH /tenants/{tenant_id}DELETE /tenants/{tenant_id}GET /tenants/{tenant_id}/workspacePUT /tenants/{tenant_id}/workspacePOST /tenants/{tenant_id}/agents/{agent_id}/runs
Knowledge routes:
POST /knowledge/uploadPOST /knowledge/ingest-urlsGET /knowledge/listDELETE /knowledge/{doc_name}POST /knowledge/search
The runtime also exposes the AgentOS and admin surfaces configured by gateway.py, including /admin/health.
WhatsApp modes currently supported by the runtime:
cloud_apiqr_linkdual
The runtime supports QR-based WhatsApp linking through the optional Baileys bridge and the /whatsapp-qr/* routes. OpenAgno Cloud now exposes this as a first-class customer flow: after onboarding activation with qr_link mode, the customer sees a QR scanner page that polls the bridge and redirects to the dashboard once WhatsApp is connected.
OpenAgnoCloud maps the hosted workspace contract into this existing runtime surface through whatsapp.mode (set to dual for simultaneous Cloud API and QR Link support), without adding new APIs on the OSS side.
Operational notes for the tenant contract:
- collection routes support both
/tenantsand/tenants/ - tenant storage now fails fast with
503 Tenant storage unavailableinstead of hanging the runtime when the backing database is unavailable - tenant storage uses defensive Postgres connections for hosted databases such as Supabase session pooling
Multi-tenant execution
OpenAgno includes tenant-aware isolation through the tenant store and workspace store layers. Tenant execution scopes identity, metadata, and knowledge filters so each run stays bound to its tenant context.
Key runtime behaviors:
- tenant creation provisions a workspace copy from a selected template
- tenant updates can persist workspace config changes
- tenant runs scope
user_id,session_id, metadata, and knowledge filters - tenant knowledge retrieval uses isolated filters for vector search
This is the contract consumed by OpenAgnoCloud.
The runtime should stay focused on execution. Plan policy, customer onboarding, billing entitlements, and operator rollout logic should remain in Cloud and be translated into runtime configuration through this contract.
Knowledge and vector search
OpenAgno uses PostgreSQL with PgVector for knowledge storage and retrieval. The default workspace config is prepared for hybrid search and can run against local Postgres or a hosted database such as Supabase.
Supported document flow:
- upload files through the knowledge API
- ingest remote URLs
- list indexed content
- delete indexed content by document name
- search semantically through the knowledge index
The default workspace is configured to auto-ingest both local docs and declared URLs when enabled.
Tools and MCP
workspace/tools.yaml defines built-in and optional tools.
Built-in defaults in this repo:
duckduckgocrawl4aireasoning
Optional tools present in the default config:
workspacescheduler_mgmtemailtavilygithubaudioshellspotifyyfinancewikipediaarxivcalculatorfile_toolspython_tools
workspace/mcp.yaml defines external MCP connections. The default file includes examples for:
- Agno Docs over
streamable-http - Tavily over
streamable-http - Supabase over
stdio - GitHub over
stdio
The runtime can also expose its own MCP server when agentos.enable_mcp_server: true is enabled in workspace/config.yaml.
IDE integration
Ready-made MCP client configs are available in:
ide-configs/cursor-mcp.jsonide-configs/vscode-mcp.jsonide-configs/windsurf-mcp.json
Public references:
- MCP docs:
https://docs.openagno.com/mcp - AI index:
https://docs.openagno.com/llms.txt - main docs:
https://docs.openagno.com
Running locally
Python process
source .venv/bin/activate
openagno start --foreground
Docker Compose
docker compose up --build
This repository includes:
- a
pgvector/pgvector:pg17database service - a
gatewayservice runningpython gateway.py - an optional
whatsapp-bridgeprofile
systemd service
Install the systemd unit:
sudo bash deploy/install-service.sh
That script installs:
openagno.serviceopenagno-whatsapp-bridge.servicewhen the QR bridge is present and Node.js is available
Documentation
Run the docs site locally:
cd docs
npm install
npm run dev
Validate docs:
cd docs
npm run validate
npm run broken-links
Spanish pages are published under docs/es/.
Release and validation
Local verification used for the current v1.3.0 closeout:
source .venv/bin/activate
pytest -q
python -m build
ruff check
python -m pip install --force-reinstall --no-deps dist/openagno-1.3.0-py3-none-any.whl
python -c "import openagno; print(openagno.__version__)"
Expected results:
- test suite passes
ruff checkis clean- wheel build succeeds
- installed package reports
1.3.0
Current release posture
The repository content reflects the 1.3.0 closeout work. Publishing to PyPI remains a separate operational step triggered manually by the maintainer when the v1.3.0 wheel is ready to go live.
License
Apache 2.0.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file openagno-1.3.0.tar.gz.
File metadata
- Download URL: openagno-1.3.0.tar.gz
- Upload date:
- Size: 95.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
87a179d657468ba5ecd78d737f54390598d5577f8d2249e28c0daa0e8a4c0e8b
|
|
| MD5 |
69e804188482d51e3acebac0a1886dd6
|
|
| BLAKE2b-256 |
3c12d00c394ef2bd73591f5e9b9b79faa4ced886758349b071baae3d9135d7a4
|
File details
Details for the file openagno-1.3.0-py3-none-any.whl.
File metadata
- Download URL: openagno-1.3.0-py3-none-any.whl
- Upload date:
- Size: 99.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4bb43b1888887283a2b35ca737c14e4f54079152342c0aa213e30612c0d0c1ea
|
|
| MD5 |
13502066c8d43c3c9e41198554815956
|
|
| BLAKE2b-256 |
09705355e9489488b23548a8883470db50682183c9f5e29d191c18be428b7789
|