Amazon Bedrock

Amazon Bedrock offre inferenza gestita per i modelli di base tramite AWS. Agent Framework può eseguire il wrapping di un bedrock IChatClient o usare il Python BedrockChatClient mantenendo al tempo stesso l'agente standard, la sessione, il middleware e le API degli 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 di richiesta specifiche di Bedrock e BedrockGuardrailConfig quando la distribuzione usa le protezioni Bedrock.

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.

Strumento C# Python Note
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.

Passaggi successivi