From 79b6ac0514bf53acc060fadee228848001f29ad9 Mon Sep 17 00:00:00 2001 From: Filipi Fuchter Date: Fri, 28 Nov 2025 07:23:16 -0300 Subject: [PATCH] Invoking the agent. --- examples/aws-agentcore/server/env.example | 5 +++++ examples/aws-agentcore/server/server.py | 27 ++++++++++++++--------- 2 files changed, 22 insertions(+), 10 deletions(-) create mode 100644 examples/aws-agentcore/server/env.example diff --git a/examples/aws-agentcore/server/env.example b/examples/aws-agentcore/server/env.example new file mode 100644 index 000000000..47ddebd79 --- /dev/null +++ b/examples/aws-agentcore/server/env.example @@ -0,0 +1,5 @@ +AWS_SECRET_ACCESS_KEY= +AWS_ACCESS_KEY_ID= +AWS_REGION=us-east-1= +# You can find this inside .bedrock_agentcore.yaml +AGENT_RUNTIME_ARN= \ No newline at end of file diff --git a/examples/aws-agentcore/server/server.py b/examples/aws-agentcore/server/server.py index f1dd6d951..7944bd4a0 100644 --- a/examples/aws-agentcore/server/server.py +++ b/examples/aws-agentcore/server/server.py @@ -6,6 +6,7 @@ import argparse import json +import os import sys import uuid from contextlib import asynccontextmanager @@ -14,6 +15,7 @@ from typing import Any, Dict, List, Optional, TypedDict, Union import boto3 import uvicorn +from dotenv import load_dotenv from fastapi import BackgroundTasks, FastAPI, Request, Response from fastapi.responses import RedirectResponse from loguru import logger @@ -24,6 +26,8 @@ from pipecat.transports.smallwebrtc.request_handler import ( ) from pipecat_ai_small_webrtc_prebuilt.frontend import SmallWebRTCPrebuiltUI +load_dotenv(override=True) + app = FastAPI() # Mount the frontend at / @@ -33,7 +37,10 @@ app.mount("/client", SmallWebRTCPrebuiltUI) active_sessions: Dict[str, Dict[str, Any]] = {} # Initialize Bedrock client -bedrock = boto3.client("bedrock-agent-runtime") +bedrock = boto3.client("bedrock-agentcore") + +# You can find this inside .bedrock_agentcore.yaml +AGENT_RUNTIME_ARN = os.getenv("AGENT_RUNTIME_ARN") @app.get("/", include_in_schema=False) @@ -48,17 +55,17 @@ async def offer(request: Request): data = await request.json() print(f"Received offer: {data}") - response = bedrock.invoke_agent( - # TODO: create a custom randon id, maybe based on the pc_id - agentId="network_test-11111111", - agentAliasId="Network Test Agent", - sessionId="user-123456-conversation-11111", - inputText=json.dumps({"input": data}), + response = bedrock.invoke_agent_runtime( + agentRuntimeArn=AGENT_RUNTIME_ARN, + contentType="application/json", + accept="application/json", + payload=json.dumps({"input": data}), + # TODO: create a custom randon id + runtimeSessionId="user-123456-conversation-111115555", ) - result = response["body"].read().decode("utf-8") - - return {"result": result} + print(f"Received response: {response}") + return response @app.patch("/api/offer")