Amazon Bedrock

Amazon Bedrock memberikan inferensi terkelola untuk model fondasi melalui AWS. Agent Framework dapat membungkus Bedrock IChatClient atau menggunakan Python BedrockChatClient sambil menjaga AGEN standar, sesi, middleware, dan API alat.

Important

Amazon Bedrock adalah sistem pihak ketiga. Tinjau persyaratan layanan AWS, penanganan data, ketersediaan regional, akses model, dan biaya penggunaan sebelum mengirim data aplikasi.

Instal paket-paket tersebut

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"

Autentikasi menggunakan rantai kredensial AWS standar, termasuk variabel lingkungan, profil bersama, identitas beban kerja, dan peran IAM.

Buat klien runtime AWS Bedrock, konversikan ke IChatClient, lalu buat agen 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");

Kredensial AWS mengikuti rantai kredensial AWS standar. Hanya berikan tindakan model Bedrock yang dibutuhkan aplikasi.

Pasang paketnya

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 membaca kredensial model, wilayah, dan AWS dari pengaturan atau nilai konstruktor eksplisitnya.

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

Gunakan BedrockChatOptions untuk opsi permintaan khusus Bedrock dan BedrockGuardrailConfig saat penyebaran Anda menggunakan pagar pembatas Bedrock.

Hasilkan embedding

BedrockEmbeddingClient menghasilkan penyematan dengan model penyematan Amazon Titan. Konfigurasikan BEDROCK_EMBEDDING_MODEL dan BEDROCK_REGION, lalu gunakan rantai kredensial AWS yang sama dengan BedrockChatClient.

Tidak ada sampel penyematan Agent Framework yang dapat dijalankan yang saat ini diterbitkan untuk klien ini.

Nota

Integrasi Amazon Bedrock saat ini tidak tersedia untuk Agent Framework Go. Lihat repositori Agent Framework Go untuk status terbaru.

Tools

Bedrock mendukung alat Agent Framework yang dipanggil secara lokal tetapi tidak mengekspos pabrik alat yang dihosting penyedia.

Alat C# Python Notes
Peralatan Fungsional Dukungan model bervariasi menurut model Bedrock yang dipilih.
Persetujuan Alat Diterapkan oleh perulangan pemanggilan fungsi Agent Framework.
Penerjemah Kode Tidak ada integrasi penerjemah kode yang dihosting Bedrock.
Pencarian File Tidak ada integrasi pencarian file yang dihosting Bedrock.
Pencarian Web Tidak ada integrasi pencarian web yang dihosting Bedrock.
Alat MCP yang Dihosting Tidak ada integrasi MCP yang dihosting Bedrock.
Alat MCP Lokal Berjalan dalam proses aplikasi.

Langkah berikutnya