Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.
När klienten skapar en runtime-klient från boto3_session är regionprioritet det explicita BEDROCK_REGION argumentet, den lösta region inställningen, boto3_session.region_name och sedan us-east-1. Om du anger en fördefinierad clientanvänds inte sessionen och dess region påverkar inte den rapporterade regionen.
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. Den Python klienten vidarebefordrar additionalModelRequestFields, guardrailConfig, performanceConfig, requestMetadataoch promptVariables till Api:et Bedrock Converse när du anger dem.
För icke-strömmande förfrågningar utelämnar klienten guardrailConfig.streamProcessingMode, eftersom det fältet endast är giltigt för ConverseStream. När modell-ID:t är en ARN för prompthantering definierar du slutsatsdragning, system, verktyg och ytterligare fält för modellbegäran i den hanterade prompten. Bedrock avvisar dessa fält i körningsbegäran, så klienten utelämnar dem. promptVariables förblir tillgänglig.
Skicka bildindata
BedrockChatClient skickar datastödda bilder från användarmeddelanden via Api:et Bedrock Converse när den valda modellen stöder bildindata. Skapa bildinnehållet med Content.from_data() eller en base64-data-URI.
Bedrock accepterar GIF-, JPEG-, PNG- och WebP-bilder. Klienten skickar inte externa bild-URL:er, bilder från historik för assistentmeddelanden eller omfattande bildinnehåll i verktygsresultat. Ladda ned en extern avbildning och skicka dess byte när du behöver skicka den till modellen.
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. |