Introdução aos pacotes de configuração
Este passo a passo leva você do zero a um pacote de configuração versionado que seu agente lê em tempo de execução. Você criará um pacote, o atualizará para produzir uma nova versão, lerá a configuração e visualizará o histórico da versão.
Tópicos
Antes de começar
Verifique se você:
-
Um projeto de AgentCore CLI com um agente implantado no AgentCore Runtime (ou siga o Apêndice abaixo para criar um com suporte ao pacote de configuração)
-
AWS credenciais com permissões para
bedrock-agentcoreebedrock-agentcore-control(consulte Pré-requisitos)
As constantes a seguir são usadas nos exemplos de boto3. Substitua-os por seus próprios valores:
REGION = "us-west-2" BUNDLE_ID = "myAgentConfig-a1b2c3d4e5" # from create response COMPONENT_ARN = "arn:aws:bedrock-agentcore:us-west-2:123456789012:runtime/MyAgent-abc123"
Etapa 1: criar um pacote de configuração
Crie um pacote com a configuração inicial do seu agente. O pacote armazena pares de valores-chave (solicitação do sistema, ID do modelo, temperatura, descrições da ferramenta) codificados pelo ARN do componente.
exemplo
Etapa 2: atualizar o pacote
Depois de executar uma avaliação em lote e identificar que as respostas do seu agente são muito detalhadas, atualize o prompt do sistema. Cada atualização cria uma nova versão imutável.
exemplo
Etapa 3: leia o pacote
Recupere a configuração atual para verificar se a atualização entrou em vigor.
exemplo
Etapa 4: comparar as versões
Compare duas versões para ver exatamente o que mudou:
exemplo
Próximas etapas
-
Execute uma avaliação em lote para medir o impacto de sua alteração na configuração. Consulte Avaliação em lote.
-
Use recomendações para permitir que o serviço gere solicitações otimizadas automaticamente. Veja as recomendações.
-
Configure o A/B teste para comparar duas versões do pacote com o tráfego ao vivo. Veja os A/B testes.
-
Ramifique sua configuração para experimentos sem afetar a linha principal. Consulte Atualizar um pacote de configuração.
Apêndice: Código do agente com integração do pacote de configuração
O código do agente a seguir lê o pacote de configuração ativo em tempo de execução usando o padrão de BeforeModelCallEvent gancho. O agente é criado uma vez no nível do módulo e o gancho atualiza dinamicamente o prompt do sistema antes de cada chamada de modelo. As alterações do pacote de configuração entram em vigor imediatamente sem serem reiniciadas.
-
Requisito do SDK: a
bedrock-agentcore-sdk-pythonversão 1.8 ou posterior é obrigatória. Oget_config_bundle()método ativadoBedrockAgentCoreContextestá disponível a partir desta versão.
Salve isso como se fosse do seu agentemain.py:
"""Agent with Configuration Bundle integration — hooks pattern.""" from strands import Agent, tool from strands.models.bedrock import BedrockModel from strands.hooks.events import BeforeModelCallEvent from bedrock_agentcore.runtime import BedrockAgentCoreApp, BedrockAgentCoreContext app = BedrockAgentCoreApp() DEFAULT_MODEL_ID = "global.anthropic.claude-sonnet-4-5-20250929-v1:0" DEFAULT_SYSTEM_PROMPT = ( "You are a helpful customer support assistant for Acme Store. " "Help customers with their orders, returns, and shipping questions." ) @tool def lookup_order(order_id: str) -> str: """Look up an order by ID.""" orders = { "ORD-1001": {"status": "delivered", "item": "Blue T-Shirt (L)", "total": "$29.99"}, "ORD-1002": {"status": "in_transit", "item": "Running Shoes (10)", "total": "$89.99"}, "ORD-1003": {"status": "delayed", "item": "Wireless Headphones", "days_late": 5, "total": "$59.99"}, } return str(orders.get(order_id, {"error": f"Order {order_id} not found"})) @tool def check_shipping_status(order_id: str) -> str: """Check detailed shipping status for an order.""" statuses = { "ORD-1002": "Package is with carrier, on schedule for April 5.", "ORD-1003": "Package delayed 5 days. Policy: 3+ days late qualifies for 15% discount.", } return statuses.get(order_id, f"No active shipment found for {order_id}.") TOOLS = [lookup_order, check_shipping_status] def dynamic_config_hook(event: BeforeModelCallEvent): """Read config bundle and apply system prompt before every model call.""" config_bundle = BedrockAgentCoreContext.get_config_bundle() event.agent.system_prompt = config_bundle.get("system_prompt", DEFAULT_SYSTEM_PROMPT) agent = Agent( model=BedrockModel(model_id=DEFAULT_MODEL_ID), tools=TOOLS, system_prompt=DEFAULT_SYSTEM_PROMPT, ) agent.hooks.add_callback(BeforeModelCallEvent, dynamic_config_hook) @app.entrypoint def invoke(payload, context): result = agent(payload.get("prompt", "Hello")) return {"response": str(result)} if __name__ == "__main__": app.run()