> ## Documentation Index
> Fetch the complete documentation index at: https://docs.openagno.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Arquitectura

> Como se organiza OpenAgno hoy y que ocurre cuando levantas un workspace.

## Componentes principales

| Componente                   | Rol                                                |
| ---------------------------- | -------------------------------------------------- |
| `openagno/`                  | CLI y templates empaquetados                       |
| `workspace/`                 | Configuración declarativa del agente               |
| `loader.py`                  | Construcción de modelo, DB, knowledge, tools y MCP |
| `gateway.py`                 | Runtime FastAPI + AgentOS                          |
| `routes/knowledge_routes.py` | API custom de knowledge                            |
| `tools/`                     | Tools locales del runtime                          |

## Flujo de arranque

1. `openagno` valida y lee `workspace/`.
2. `loader.py` construye modelo principal, fallback, DB, knowledge, tools, MCP, sub-agentes y teams.
3. `gateway.py` monta el app FastAPI, agrega middlewares y registra interfaces de Agno.
4. AgentOS expone el runtime y sus rutas nativas.

## Capacidades operativas relevantes

### Historial cross-model

OpenAgno sanea historial de sesión antes de ejecutar providers sensibles a `tool_call_id` incompatibles, especialmente Anthropic y Bedrock.

### WhatsApp

* valida firma si existe `WHATSAPP_APP_SECRET`
* deduplica por `message_id`
* filtra replays sin bloquear mensajes nuevos

### Knowledge

* PostgreSQL/Supabase + PgVector habilitan retrieval vectorial
* SQLite desactiva la knowledge vectorial
* documentos y URLs pueden ingerirse al arranque o vía API

### Canales y protocolos

El runtime actual soporta:

* WhatsApp
* Slack
* Telegram
* AG-UI
* A2A

## Diagrama rápido

```mermaid theme={null}
flowchart LR
	subgraph cfg[Workspace]
		W[config.yaml y archivos relacionados]
	end
	subgraph run[Runtime]
		C[openagno CLI]
		L[loader.py]
		G[gateway.py]
	end
	subgraph out[Interfaces]
		WA[WhatsApp]
		SL[Slack]
		TG[Telegram]
		AG[AG-UI / A2A]
	end
	C --> W
	W --> L --> G
	G --> WA
	G --> SL
	G --> TG
	G --> AG
```
