Amazon Bedrock

Amazon Bedrock biedt beheerde deductie voor basismodellen via AWS. Agent Framework kan een Bedrock IChatClient verpakken of de Python BedrockChatClient gebruiken terwijl de standaardagent, sessie, middleware en hulpprogramma-API's behouden blijven.

Belangrijk

Amazon Bedrock is een systeem van derden. Bekijk servicevoorwaarden voor AWS, gegevensverwerking, regionale beschikbaarheid, modeltoegang en gebruikskosten voordat u toepassingsgegevens verzendt.

De pakketten installeren

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"

Verificatie maakt gebruik van de standaard-AWS-referentieketen, waaronder omgevingsvariabelen, gedeelde profielen, workloadidentiteit en IAM-rollen.

Maak de AWS Bedrock Runtime-client, converteer deze naar IChatClienten maak vervolgens een Agent Framework-agent.

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");

AWS-referenties volgen de standaard-AWS-referentieketen. Verdeel alleen de acties van het Bedrock-model die de toepassing nodig heeft.

Installeer het pakket

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 leest het model, de regio en AWS-referenties uit de instellingen of expliciete constructorwaarden.

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}")

Gebruik BedrockChatOptions voor Bedrock-specifieke aanvraagopties en BedrockGuardrailConfig wanneer uw implementatie Bedrock-guardrails gebruikt.

Embeddings genereren

BedrockEmbeddingClient genereert insluitingen met Amazon Titan-insluitingsmodellen. Configureer BEDROCK_EMBEDDING_MODEL en BEDROCK_REGIONgebruik vervolgens dezelfde AWS-referentieketen als BedrockChatClient.

Er is momenteel geen runnable Agent Framework-insluitingsvoorbeeld gepubliceerd voor deze client.

Opmerking

Amazon Bedrock-integratie is momenteel niet beschikbaar voor Agent Framework Go. Zie de opslagplaats Agent Framework Go voor de meest recente status.

Tools

Bedrock ondersteunt lokaal aangeroepen Agent Framework-tools, maar stelt geen door providers gehoste tool factories beschikbaar.

Tool C# Python Opmerkingen
Functiehulpmiddelen Modelondersteuning verschilt per geselecteerd Bedrock-model.
Goedkeuring van hulpprogramma Toegepast door de functie-aanroeplus van agentframework.
Code-interpreter Geen door Bedrock gehoste code-interpreter-integratie.
Zoeken naar bestanden Geen door Bedrock gehoste integratie van bestandszoekopdrachten.
Zoeken op internet Geen door Bedrock gehoste integratie van webzoekopdrachten.
Gehoste MCP-tools Geen door Bedrock gehoste MCP-integratie.
Lokale MCP-hulpprogramma's Wordt uitgevoerd in het toepassingsproces.

Volgende stappen