Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Déploiement de AG-UI serveurs dans AgentCore Runtime
Amazon Bedrock AgentCore Runtime vous permet de déployer et d'exécuter des serveurs d'interface utilisateur d'agent (AG-UI) dans le AgentCore Runtime. Ce guide explique comment créer, tester et déployer votre premier AG-UI serveur.
Dans cette section, vous allez apprendre :
-
Comment Amazon Bedrock soutient AgentCore AG-UI
-
Comment créer un AG-UI serveur
-
Comment tester votre serveur localement
-
Comment déployer votre serveur sur AWS
-
Comment invoquer votre serveur déployé
Pour plus d'informations à ce sujet AG-UI, consultez le contrat de AG-UI protocole.
Rubriques
Comment Amazon Bedrock soutient AgentCore AG-UI
La prise en charge AgentCore du AG-UI protocole d'Amazon Bedrock permet l'intégration avec les serveurs d'interface utilisateur des agents en agissant comme une couche proxy. Une fois configuré pour AG-UI, Amazon Bedrock AgentCore s'attend à ce que les conteneurs exécutent des serveurs sur le port 8080 situé sur le /invocations chemin pour HTTP/SSE ou /ws pour les WebSocket connexions. Bien qu'il AG-UI utilise le même port et les mêmes chemins que le protocole HTTP, le moteur d'exécution les distingue en fonction de l'--protocolindicateur spécifié lors de la configuration du déploiement.
Amazon Bedrock AgentCore fait office de proxy entre les clients et votre AG-UI conteneur. Les demandes de l'InvokeAgentRuntimeAPI sont transmises à votre conteneur sans modification. Amazon Bedrock AgentCore gère l'authentification (SigV4/OAuth 2.0), l'isolation des sessions et la mise à l'échelle.
Principales différences par rapport aux autres protocoles :
- Port
-
AG-UI les serveurs fonctionnent sur le port 8080 (comme HTTP, contre 8000 pour MCP, 9000 pour A2A)
- Chemin
-
AG-UI serveurs utilisés
/invocationspour HTTP/SSE et/wspour WebSocket (identique au protocole HTTP) - Format du message
-
Utilise les flux d' Server-Sent événements via Events (SSE) pour le streaming ou WebSocket pour une communication bidirectionnelle
- Focus sur le protocole
-
Agent-to-User interaction (par rapport à MCP pour les outils, A2A pour les agents)
- Authentification
-
Supporte les schémas d'authentification SIGv4 et OAuth 2.0
Pour de plus amples informations, veuillez consulter https://docs.ag-ui.com/introduction
Utilisation AG-UI avec AgentCore Runtime
Dans ce didacticiel, vous allez créer, tester et déployer un AG-UI serveur.
Pour des exemples complets et des implémentations spécifiques au framework, consultez la documentation AG-UI Quickstart et Dojo.
Rubriques
Conditions préalables
-
Python 3.12 ou supérieur installé
-
Node.js Version 20 ou supérieure installée pour la AgentCore CLI
-
Un AWS compte avec les autorisations appropriées et les informations d'identification locales configurées
-
Compréhension du AG-UI protocole et des concepts de communication agent-utilisateur basés sur les événements
Étape 1 : Créez votre AG-UI serveur
AG-UI est pris en charge par plusieurs frameworks d'agents. Ce didacticiel utilise AWS Strands pour Python.
Installation des packages obligatoires
Installez les packages pour AWS Strands avec le AG-UI support suivant :
pip install fastapi pip install uvicorn pip install ag-ui-strands
Pour les autres frameworks, consultez les intégrations des AG-UI
Créez votre premier AG-UI serveur
Créez un fichier nommé my_agui_server.py. Cet exemple utilise AWS Strands with AG-UI. Le serveur écoute sur le port8080, expose le AG-UI trafic et /invocations l'expose pour des contrôles de santé/ping. AgentCore Runtime nécessite ce contrat pour les AG-UI conteneurs.
# my_agui_server.py import uvicorn from fastapi import FastAPI, Request from fastapi.responses import StreamingResponse, JSONResponse from ag_ui_strands import StrandsAgent from ag_ui.core import RunAgentInput from ag_ui.encoder import EventEncoder from strands import Agent # Create a simple Strands agent strands_agent = Agent( system_prompt="You are a helpful assistant.", ) # Wrap with AG-UI protocol support agui_agent = StrandsAgent( agent=strands_agent, name="my_agent", description="A helpful assistant", ) # FastAPI server app = FastAPI() @app.post("/invocations") async def invocations(input_data: dict, request: Request): """Main AG-UI endpoint that returns event streams.""" accept_header = request.headers.get("accept") encoder = EventEncoder(accept=accept_header) async def event_generator(): run_input = RunAgentInput(**input_data) async for event in agui_agent.run(run_input): yield encoder.encode(event) return StreamingResponse( event_generator(), media_type=encoder.get_content_type() ) @app.get("/ping") async def ping(): return JSONResponse({"status": "Healthy"}) if __name__ == "__main__": uvicorn.run(app, host="0.0.0.0", port=8080)
Pour des exemples complets et spécifiques au framework, voir :
Comprendre le code
- Streams d'événements
-
AG-UI utilise Server-Sent Events (SSE) pour diffuser des événements typés vers le client
- Point de terminaison /invocations
-
Point de terminaison principal pour HTTP/SSE la communication (identique au protocole HTTP)
- Portée 8080
-
AG-UI les serveurs s'exécutent sur le port 8080 par défaut dans Runtime AgentCore
Étape 2 : Testez votre AG-UI serveur localement
Exécutez et testez votre AG-UI serveur dans un environnement de développement local.
Démarrez votre AG-UI serveur
Exécutez votre AG-UI serveur localement :
python my_agui_server.py
Vous devriez voir une sortie indiquant que le serveur fonctionne sur le port8080.
Tester le point de terminaison
Testez le point de terminaison SSE avec une AG-UI requête correctement formatée :
curl -N -X POST http://localhost:8080/invocations \ -H "Content-Type: application/json" \ -d '{ "threadId": "test-123", "runId": "run-456", "state": {}, "messages": [{"role": "user", "content": "Hello, agent!", "id": "msg-1"}], "tools": [], "context": [], "forwardedProps": {} }'
Vous devriez voir les flux d' AG-UI événements renvoyés au format SSE, y compris RUN_STARTEDTEXT_MESSAGE_CONTENT, et les RUN_FINISHED événements.
Étape 3 : Déployez votre AG-UI serveur sur Bedrock Runtime AgentCore
Déployez votre AG-UI serveur à AWS l'aide de la AgentCore CLI.
Installation des outils de déploiement
Installez la AgentCore CLI :
npm install -g @aws/agentcore
Commencez par créer un dossier de projet avec la structure suivante :
## Project Folder Structure your_project_directory/ ├── my_agui_server.py # Your main agent code ├── requirements.txt # Dependencies for your agent
Créez un nouveau fichier appelé requirements.txt avec vos dépendances :
fastapi uvicorn ag-ui-strands
Configurer le groupe d'utilisateurs Cognito pour l'authentification
Configurez l'authentification pour sécuriser l'accès à votre serveur déployé. Pour obtenir des instructions détaillées sur la configuration de Cognito, voir Configurer le groupe d'utilisateurs Cognito pour l'authentification. Cela fournit les jetons OAuth nécessaires pour un accès sécurisé à votre serveur déployé.
Une fois la configuration de Cognito terminée, exportez les valeurs utilisées par la commande de déploiement :
export REGION="<your-region>" export POOL_ID="<your-user-pool-id>" export CLIENT_ID="<your-app-client-id>"
Configurez votre AG-UI serveur pour le déploiement
Créez un AgentCore projet vide. Enregistrez ensuite le serveur que vous avez créé dans Créer votre premier AG-UI serveur en tant qu'agent BYO avec la configuration Cognito de l'étape précédente :
agentcore create --project-name AguiProject --no-agent cd AguiProject agentcore add agent \ --name AguiAgent \ --type byo \ --language Python \ --framework Strands \ --model-provider Bedrock \ --memory none \ --code-location .. \ --entrypoint my_agui_server.py \ --protocol AGUI \ --authorizer-type CUSTOM_JWT \ --discovery-url "https://cognito-idp.$REGION.amazonaws.com/$POOL_ID/.well-known/openid-configuration" \ --allowed-clients "$CLIENT_ID" \ --request-header-allowlist Authorization
Les commandes enregistrent l'implémentation existante avec le AG-UI protocole et la configuration Cognito OAuth de l'étape précédente.
Déployez vers AWS
Déployez votre agent :
agentcore deploy
Après le déploiement, vous recevrez un ARN d'exécution de l'agent qui ressemble à :
arn:aws:bedrock-agentcore:us-west-2:accountId:runtime/my_agui_server-xyz123
Étape 4 : Invoquez votre serveur déployé AG-UI
Invoquez votre AgentCore AG-UI serveur Amazon Bedrock déployé et interagissez avec les flux d'événements.
Configurer les variables d’environnement
Configurer les variables d’environnement
-
Exportez le jeton du porteur en tant que variable d'environnement. Pour la configuration du jeton du porteur, voir Configurer le groupe d'utilisateurs Cognito pour l'authentification.
export BEARER_TOKEN="<BEARER_TOKEN>" -
Exportez l'ARN de l'agent.
export AGENT_ARN="arn:aws:bedrock-agentcore:us-west-2:accountId:runtime/my_agui_server-xyz123"
Invoquer le serveur AG-UI
Pour appeler le AG-UI serveur par programmation, choisissez la langue qui correspond à votre client :
Exemple
Pour créer des applications d'interface utilisateur complètes, consultez CopilotKit
Annexe
Rubriques
Configurer le groupe d'utilisateurs Cognito pour l'authentification
Pour obtenir des instructions détaillées sur la configuration de Cognito, consultez la section Configuration du groupe d'utilisateurs Cognito pour l'authentification dans la documentation MCP. Le processus de configuration est identique pour les AG-UI serveurs.
Résolution des problèmes
AG-UI-specific Problèmes courants
Les problèmes courants que vous pouvez rencontrer sont les suivants :
- Conflits portuaires
-
AG-UI les serveurs doivent fonctionner sur le port 8080 dans l' AgentCore environnement d'exécution
- Incompatibilité entre les méthodes d'autorisation
-
Assurez-vous que votre demande utilise la même méthode d'authentification (OAuth ou Sigv4) que celle avec laquelle l'agent a été configuré
- Erreurs de format d'événement
-
Assurez-vous que vos événements respectent les spécifications AG-UI du protocole. Voir la documentation sur AG-UI les événements