Amazon Bedrock

Amazon Bedrock tillhandahåller hanterad slutsatsdragning för grundmodeller via AWS. Agent Framework kan omfatta en Bedrock IChatClient eller använda Python BedrockChatClient samtidigt som standard-API:erna för agenter, sessioner, mellanprogram och verktyg behålls.

Important

Amazon Bedrock är ett tredjepartssystem. Granska AWS-tjänstvillkor, datahantering, regional tillgänglighet, modellåtkomst och användningskostnader innan du skickar programdata.

Installera programvarupaketen

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"

Autentisering använder AWS standardkedja för autentiseringsuppgifter, inklusive miljövariabler, gemensamma profiler, arbetsbelastningsidentitet och IAM-roller.

Skapa AWS Bedrock-körningsklienten, konvertera den till IChatClientoch skapa sedan en 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-autentiseringsuppgifter följer standardkedjan för AWS-autentiseringsuppgifter. Bevilja endast de åtgärder för Bedrock-modellen som applikationen behöver.

Installera paketet

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 läser autentiseringsuppgifterna för modellen, regionen och AWS från dess inställningar eller explicita konstruktorvärden.

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

Använd BedrockChatOptions för Bedrock-specifika alternativ för begäranden och BedrockGuardrailConfig när din driftsättning använder Bedrocks skyddsräcken.

Generera inbäddningar

BedrockEmbeddingClient genererar inbäddningar med Amazon Titan-inbäddningsmodeller. Konfigurera BEDROCK_EMBEDDING_MODEL och BEDROCK_REGIONanvänder sedan samma AWS-autentiseringskedja som BedrockChatClient.

Inget runnable Agent Framework-inbäddningsexempel publiceras för närvarande för den här klienten.

Anmärkning

Amazon Bedrock-integrering är för närvarande inte tillgängligt för Agent Framework Go. Se Agent Framework Go-lagringsplatsen för den senaste statusen.

Tools

Bedrock stöder lokalt anropade Agent Framework-verktyg men exponerar inte providerhanterade verktygsfabriker.

Tool C# Python Noteringar
Funktionsverktyg Modellstöd varierar beroende på vilken berggrundsmodell som valts.
Godkännande av verktyg Tillämpas av agentramverkets funktionsanropsloop.
Kodtolkare Ingen Bedrock-driven kodtolksintegrering.
Filsökning Ingen Bedrock-värdbaserad integrering för filsökning.
Webbsökning Ingen Bedrock-värdbaserad webbsökningsintegrering.
Värdhanterade MCP-verktyg Ingen Bedrock-värdbaserad MCP-integration.
Lokala MCP-verktyg Körs i programprocessen.

Nästa steg