Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Amazon Bedrock proporciona inferencia administrada para modelos fundamentales a través de AWS. Agent Framework puede encapsular un Bedrock IChatClient o utilizar Python BedrockChatClient sin dejar de mantener las API estándar de agentes, sesiones, middleware y herramientas.
Important
Amazon Bedrock es un sistema de terceros. Revise los términos del servicio de AWS, el control de datos, la disponibilidad regional, el acceso al modelo y los costos de uso antes de enviar datos de la aplicación.
Instalación de los paquetes
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"
La autenticación usa la cadena de credenciales de AWS estándar, incluidas las variables de entorno, los perfiles compartidos, la identidad de carga de trabajo y los roles de IAM.
Cree el cliente en tiempo de ejecución de AWS Bedrock, conviértelo en IChatClienty, a continuación, cree un agente de 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");
Las credenciales de AWS siguen la cadena de credenciales de AWS estándar. Otorgue solo las acciones del modelo de Bedrock que necesita la aplicación.
Instalar el paquete
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 lee el modelo, la región y las credenciales de AWS a partir de su configuración o de valores explícitos del compilador.
Cuando el cliente crea un cliente en tiempo de ejecución a partir de boto3_session, la prioridad de la región es el argumento explícito region, la configuración resuelta BEDROCK_REGION, us-east-1 y luego boto3_session.region_name. Si proporciona una versión precompilada client, la sesión no se usa y la región no afecta a la región notificada.
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}")
Usa BedrockChatOptions para las opciones de solicitud específicas de Bedrock y BedrockGuardrailConfig si tu implementación utiliza las barandillas de protección de Bedrock. El cliente Python reenvía additionalModelRequestFields, guardrailConfig, performanceConfig, requestMetadatay promptVariables a bedrock Converse API al establecerlos.
En el caso de las solicitudes que no son de streaming, el cliente omite guardrailConfig.streamProcessingMode porque ese campo solo es válido para ConverseStream. Cuando el identificador del modelo es un ARN de administración de mensajes, defina los campos de inferencia, sistema, herramienta y solicitud de modelo adicional en el símbolo del sistema administrado. Bedrock rechaza esos campos en la solicitud en tiempo de ejecución, por lo que el cliente los omite; promptVariables permanece disponible.
Enviar entrada de imagen
BedrockChatClient envía imágenes respaldadas por datos de mensajes de usuario a través de Bedrock Converse API cuando el modelo seleccionado admite la entrada de imagen. Cree el contenido de la imagen con Content.from_data() o un URI de datos base64.
Bedrock acepta imágenes GIF, JPEG, PNG y WebP. El cliente no envía direcciones URL de imágenes externas, imágenes del historial de mensajes del asistente ni contenido enriquecido de imágenes en los resultados de la herramienta. Descargue una imagen externa y pase sus bytes cuando necesite enviarlo al modelo.
Generación de inserciones
BedrockEmbeddingClient genera incrustaciones con los modelos de incrustación de Amazon Titan. Configure BEDROCK_EMBEDDING_MODEL y BEDROCK_REGION y, a continuación, utilice la misma cadena de credenciales de AWS que BedrockChatClient.
Actualmente no se publica ningún ejemplo de inserción de Agent Framework ejecutable para este cliente.
Note
La integración de Amazon Bedrock no está disponible actualmente para Agent Framework Go. Consulte el repositorio de Agent Framework Go para obtener el estado más reciente.
Tools
Bedrock es compatible con herramientas del Agent Framework invocadas localmente, pero no expone fábricas de herramientas alojadas por el proveedor.
| Herramienta | C# | Python | Notas |
|---|---|---|---|
| Herramientas de funciones | ✅ | ✅ | La compatibilidad varía según el modelo de Bedrock seleccionado. |
| Aprobación de herramientas | ✅ | ✅ | Aplicado por el bucle de invocación de función de Agent Framework. |
| Intérprete de código | ❌ | ❌ | No se ha integrado ningún intérprete de código hospedado en Bedrock. |
| Búsqueda de archivos | ❌ | ❌ | No se ha integrado la búsqueda de archivos hospedada en Bedrock. |
| Búsqueda web | ❌ | ❌ | No hay integración de búsqueda web hospedada en Bedrock. |
| Herramientas de MCP hospedadas | ❌ | ❌ | No hay integración de MCP hospedada en Bedrock. |
| Herramientas de MCP locales | ✅ | ✅ | Se ejecuta en el proceso de la aplicación. |