Interaktive Dokumentation
Jede Agent-Lab-Anwendung stellt automatisch OpenAPI 3 bereit – die Referenzimplementierung
unter http://localhost:18000/docs (bzw. Ihre
eigene Anwendung, wo immer sie läuft). Der folgende Katalog dokumentiert die integrierten
Router des Frameworks; Ihre extra_routers erscheinen im selben Schema.
Authentifizierung
Wenn auth.enabled auf true steht (siehe die Konfigurationsreferenz),
erfordern die Routen ein Keycloak-Bearer-Token. Der /auth-Router wird nur eingebunden, wenn die Authentifizierung
aktiviert ist:
TOKEN=$(curl -s -X POST https://<host>/auth/login \
-H "Content-Type: application/json" \
-d '{"username": "…", "password": "…"}' | jq -r '.access_token')
curl -s https://<host>/agents/list -H "Authorization: Bearer $TOKEN" | jq| Methode | Endpoint | Beschreibung |
|---|---|---|
| POST | /auth/login |
Ein neues Bearer-Token erstellen |
| POST | /auth/renew |
Ein bestehendes Bearer-Token erneuern |
| POST | /auth/exchange |
Einen Microsoft-Entra-ID-Autorisierungscode (PKCE) gegen ein App-Token eintauschen |
| GET | /auth/profile |
Das Profil des authentifizierten Benutzers abrufen |
| PUT | /auth/profile |
Das Profil des authentifizierten Benutzers aktualisieren |
Die Einrichtung von Realm und Client wird unter Authentifizierung mit Keycloak beschrieben.
Pfade ohne Authentifizierung: /status/*, /docs, /openapi.json, /mcp, /static,
die OAuth-Well-Known-Endpoints und der SPA-Mount – alles andere erfordert ein gültiges
Token.
Endpoints
Agenten
Erstellen Sie Instanzen jedes registrierten Agententyps; agent_type wird dynamisch
gegen die Registry validiert.
| Methode | Endpoint | Beschreibung |
|---|---|---|
| GET | /agents/list |
Alle Agent-Instanzen auflisten |
| GET | /agents/types |
Registrierte Agententypen auflisten (die Registry) |
| GET | /agents/{agent_id} |
Eine Agent-Instanz anhand der ID abrufen |
| POST | /agents/create |
Eine neue Agent-Instanz erstellen |
| POST | /agents/update |
Die Basisinformationen eines Agenten aktualisieren |
| POST | /agents/update_setting |
Eine einzelne Agent-Einstellung aktualisieren |
| POST | /agents/{agent_id}/reset_settings |
Die Einstellungen eines Agenten auf die Standardwerte zurücksetzen |
| DELETE | /agents/delete/{agent_id} |
Eine Agent-Instanz löschen |
| WS | /agents/ws/task_updates/{agent_id} |
WebSocket-Stream mit Fortschrittsupdates für lang laufende Operationen |
Nachrichten
| Methode | Endpoint | Beschreibung |
|---|---|---|
| POST | /messages/post |
Eine Nachricht an einen Agenten senden und die Antwort erhalten |
| POST | /messages/list |
Nachrichten eines Agenten auflisten |
| GET | /messages/{message_id} |
Erweiterte Nachrichtendetails abrufen (Antworten, Anhang) |
| DELETE | /messages/delete/{message_id} |
Eine Nachricht löschen |
Sprachmodelle
| Methode | Endpoint | Beschreibung |
|---|---|---|
| GET | /llms/list |
Konfigurierte Sprachmodelle auflisten |
| GET | /llms/{language_model_id} |
Ein Sprachmodell und seine Einstellungen abrufen |
| POST | /llms/create |
Ein neues Sprachmodell erstellen |
| POST | /llms/update |
Die Konfiguration eines Sprachmodells aktualisieren |
| POST | /llms/update_setting |
Eine einzelne Einstellung eines Sprachmodells aktualisieren |
| DELETE | /llms/delete/{language_model_id} |
Ein Sprachmodell löschen |
Integrationen
| Methode | Endpoint | Beschreibung |
|---|---|---|
| GET | /integrations/list |
Externe Integrationen (KI-Anbieter) auflisten |
| GET | /integrations/{integration_id} |
Details einer Integration abrufen |
| POST | /integrations/create |
Eine Integration erstellen (Zugangsdaten werden in Vault gespeichert) |
| DELETE | /integrations/delete/{integration_id} |
Eine Integration löschen |
Anhänge
| Methode | Endpoint | Beschreibung |
|---|---|---|
| GET | /attachments/list |
Anhänge auflisten |
| GET | /attachments/download/{attachment_id} |
Einen Anhang herunterladen |
| POST | /attachments/upload |
Eine Datei als Anhang hochladen |
| POST | /attachments/embeddings |
Embeddings für einen Anhang erzeugen |
Status und MCP
| Methode | Endpoint | Beschreibung |
|---|---|---|
| GET | /status/liveness |
Liveness-Probe |
| GET | /status/readiness |
Readiness-Probe |
| GET | /status/metrics |
Prometheus-Metriken |
| * | /mcp |
Der MCP-Server (Streamable HTTP) |
| GET | /.well-known/oauth-protected-resource/mcp |
OAuth-Metadaten für MCP-Clients |
Request-Beispiele
Eine Agent-Instanz erstellen – agent_name akzeptiert [a-zA-Z0-9_-];
agent_type muss ein registrierter Typ sein; language_model_id ist optional:
curl -s -X POST http://localhost:18000/agents/create \
-H "Content-Type: application/json" \
-d '{
"agent_name": "support-agent-1",
"agent_type": "coordinator_planner_supervisor",
"language_model_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}' | jqEine Nachricht senden – message_role ist einer der Werte human, assistant, tool;
attachment_id ist optional:
curl -s -X POST http://localhost:18000/messages/post \
-H "Content-Type: application/json" \
-d '{
"agent_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"message_role": "human",
"message_content": "Summarize the attached report.",
"attachment_id": null
}' | jqEine Agent-Einstellung aktualisieren – setting_key akzeptiert [a-zA-Z_-];
setting_value fasst bis zu 16.000 Zeichen (hier liegen Prompt-Templates und JSON-Payloads –
siehe das Entity-Domänenmodell):
curl -s -X POST http://localhost:18000/agents/update_setting \
-H "Content-Type: application/json" \
-d '{
"agent_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"setting_key": "system_prompt",
"setting_value": "You are a concise research assistant…"
}' | jqKonventionen
- IDs sind UUIDs; alle List-Endpoints akzeptieren JSON-Bodys, keine Query-Strings.
- Einstellungen sind Key-Value-Paare, die mit dem Agenten oder Modell persistiert werden – so betreibt dieselbe Implementierung viele unterschiedlich konfigurierte Instanzen.
- Die Registry ist die maßgebliche Quelle für gültige
agent_type-Werte – rufen SieGET /agents/typesauf, um zu sehen, was die laufende Anwendung entdeckt hat (einschließlich Ihrer eigenen Pakete überscan_packages).