Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Amazon Bedrock offre inferenza gestita per i modelli di base tramite AWS. Agent Framework può incapsulare Bedrock IChatClient o utilizzare Python BedrockChatClient, mantenendo le API standard per agente, sessione, middleware e strumenti.
Importante
Amazon Bedrock è un sistema di terze parti. Esaminare i termini del servizio AWS, la gestione dei dati, la disponibilità a livello di area, l'accesso al modello e i costi di utilizzo prima di inviare i dati dell'applicazione.
Installare i pacchetti
dotnet add package AWSSDK.Extensions.Bedrock.MEAI
dotnet add package Microsoft.Agents.AI --prerelease
Configuration
AWS_REGION="us-east-1"
BEDROCK_MODEL_ID="anthropic.claude-3-5-sonnet-20241022-v2:0"
L'autenticazione usa la catena di credenziali AWS standard, tra cui variabili di ambiente, profili condivisi, identità del carico di lavoro e ruoli IAM.
Creare il client di runtime di AWS Bedrock, convertirlo in IChatCliente quindi creare un agente di Agent Framework.
var awsRegion = Environment.GetEnvironmentVariable("AWS_REGION") ?? "us-east-1";
var modelId = Environment.GetEnvironmentVariable("BEDROCK_MODEL_ID") ?? "anthropic.claude-3-5-sonnet-20241022-v2:0";
// Create the Bedrock runtime client.
var bedrockRuntime = new AmazonBedrockRuntimeClient(RegionEndpoint.GetBySystemName(awsRegion));
IChatClient chatClient = bedrockRuntime.AsIChatClient(modelId);
AIAgent agent = chatClient.AsAIAgent(
instructions: "You are a helpful assistant.",
name: "BedrockAgent");
Le credenziali AWS seguono la catena di credenziali AWS standard. Concedere solo le azioni del modello Bedrock necessarie all'applicazione.
Installare il pacchetto
pip install agent-framework-bedrock --pre
Configuration
BEDROCK_REGION="us-east-1"
BEDROCK_CHAT_MODEL="anthropic.claude-3-5-sonnet-20241022-v2:0"
AWS_ACCESS_KEY_ID="<access-key>"
AWS_SECRET_ACCESS_KEY="<secret-key>"
# Optional temporary credentials:
AWS_SESSION_TOKEN="<session-token>"
# Optional shared profile:
AWS_PROFILE="<profile>"
BedrockChatClient legge le credenziali del modello, dell'area e di AWS dalle impostazioni o dai valori espliciti del costruttore.
async def main() -> None:
"""Run a Bedrock-backed agent with one tool call."""
# 1. Create an agent with Bedrock chat client and one tool.
agent = Agent(
client=BedrockChatClient(),
instructions="You are a concise travel assistant.",
name="BedrockWeatherAgent",
tools=[get_weather],
default_options=BedrockChatOptions(tool_choice="auto"),
)
# 2. Run a query that uses the weather tool.
query = "Use the weather tool to check the forecast for New York."
print(f"User: {query}")
response = await agent.run(query)
print(f"Assistant: {response.text}")
Usare BedrockChatOptions per le opzioni della richiesta specifiche di Bedrock e BedrockGuardrailConfig quando la distribuzione usa i guardrail di Bedrock. Il client Python inoltra additionalModelRequestFields, guardrailConfig, performanceConfig, requestMetadatae promptVariables all'API Bedrock Converse quando li si imposta.
Per le richieste non di streaming, il client omette guardrailConfig.streamProcessingMode perché tale campo è valido solo per ConverseStream. Quando l'ID del modello è un ARN di gestione dei prompt, definire nel prompt gestito i campi di inferenza, sistema, strumento e richiesta di modello aggiuntivo. Bedrock rifiuta tali campi nella richiesta di runtime, quindi il client li omette; promptVariables rimane disponibile.
Inviare l'input dell'immagine
BedrockChatClient invia immagini basate su dati dai messaggi utente tramite l'API Bedrock Converse quando il modello selezionato supporta l'input dell'immagine. Crea il contenuto dell'immagine con Content.from_data() o un URI di dati base64.
Bedrock accetta immagini GIF, JPEG, PNG e WebP. Il client non invia URL esterni di immagini, immagini dalla cronologia dei messaggi dell’assistente o contenuti immagine avanzati nei risultati degli strumenti. Scaricare un'immagine esterna e passarne i byte quando è necessario inviarla al modello.
Generare incorporamenti
BedrockEmbeddingClient genera incorporamenti con i modelli di incorporamento di Amazon Titan. Configurare BEDROCK_EMBEDDING_MODEL e BEDROCK_REGION, quindi usare la stessa catena di credenziali AWS di BedrockChatClient.
Per questo client non è attualmente pubblicato alcun esempio di incorporamento di Agent Framework eseguibile.
Annotazioni
L'integrazione di Amazon Bedrock non è attualmente disponibile per Agent Framework Go. Vedere il repository di Agent Framework Go per lo stato più aggiornato.
Tools
Bedrock supporta gli strumenti di Agent Framework richiamati localmente, ma non espone le factory degli strumenti ospitate dal provider.
| Tool | C# | Python | Notes |
|---|---|---|---|
| Strumenti per le funzioni | ✅ | ✅ | Il supporto del modello varia in base al modello Bedrock selezionato. |
| Approvazione degli strumenti | ✅ | ✅ | Applicato dal ciclo function-invocation di Agent Framework. |
| Interprete di codice | ❌ | ❌ | Nessuna integrazione dell'interprete di codice ospitato da Bedrock. |
| Ricerca file | ❌ | ❌ | Nessuna integrazione di ricerca file ospitata da Bedrock. |
| Ricerca Web | ❌ | ❌ | Nessuna integrazione di ricerca Web ospitata in Bedrock. |
| Strumenti MCP ospitati | ❌ | ❌ | Nessuna integrazione MCP ospitata da Bedrock. |
| Strumenti MCP locali | ✅ | ✅ | Viene eseguito nel processo dell'applicazione. |