Amazon Bedrock

A Amazon Bedrock fornece inferência gerenciada para modelos de fundação por meio da AWS. O Agent Framework pode encapsular um Bedrock IChatClient ou usar o Python BedrockChatClient mantendo as APIs padrão de agente, sessão, middleware e ferramenta.

Importante

Amazon Bedrock é um sistema de terceiros. Examine os termos de serviço, o tratamento de dados, a disponibilidade regional, o acesso ao modelo e os custos de uso antes de enviar dados do aplicativo.

Instalar os pacotes

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"

A autenticação usa a cadeia de credenciais padrão do AWS, incluindo variáveis de ambiente, perfis compartilhados, identidade de carga de trabalho e funções IAM.

Crie o cliente de runtime do AWS Bedrock, converta-o IChatClientem e crie um agente do 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");

As credenciais da AWS seguem a cadeia de credenciais padrão da AWS. Conceda apenas as ações do modelo Bedrock de que o aplicativo precisa.

Instalar o pacote

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ê as credenciais de modelo, região e AWS de suas configurações ou valores de construtor explícitos.

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

Use BedrockChatOptions para opções de solicitação específicas do Bedrock e BedrockGuardrailConfig quando sua implantação usa guardrails bedrock.

Gerar inserções

BedrockEmbeddingClient gera inserções com modelos de inserção do Amazon Titan. Configure BEDROCK_EMBEDDING_MODEL e BEDROCK_REGION, em seguida, use a mesma cadeia de credenciais do AWS que BedrockChatClient.

Nenhum exemplo de inserção do Agent Framework executável está publicado no momento para este cliente.

Note

Atualmente, a integração do Amazon Bedrock não está disponível para o Agent Framework Go. Consulte o repositório Agent Framework Go para obter o status mais recente.

Tools

O Bedrock dá suporte a ferramentas do Agent Framework invocadas localmente, mas não expõe fábricas de ferramentas hospedadas pelo provedor.

Tool C# Python Notes
Ferramentas de Funções O suporte ao modelo varia de acordo com o modelo bedrock selecionado.
Aprovação da ferramenta Aplicado pelo loop de invocação de função do Agent Framework.
Interpretador de Código Nenhuma integração de interpretador de código hospedada no Bedrock.
Pesquisa de Arquivo Nenhuma integração de pesquisa de arquivos hospedada no Bedrock.
Pesquisa na Web Nenhuma integração de pesquisa na Web hospedada no Bedrock.
Ferramentas MCP hospedadas Nenhuma integração mcp hospedada pela Bedrock.
Ferramentas MCP locais É executado no processo do aplicativo.

Próximas Etapas