View a markdown version of this page

Ferramentas - Base da Amazônia AgentCore

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Ferramentas

As ferramentas são declarativas. Você lista o que o agente pode chamar; AgentCore lida com invocações, credenciais e resultados. O equipamento suporta cinco tipos de ferramentas, além do sistema de arquivos integrado e das ferramentas de shell.

  • Servidores MCP: conecte-se a qualquer terminal remoto do Model Context Protocol por URL. Não é necessário nenhum gateway para casos simples.

  • AgentCore Gateway: conectividade governada com APIs e servidores MCP com inbound/outbound autenticação, controle de acesso e aplicação de políticas. Política no Amazon Bedrock AgentCore: controle as interações dos agentes Faça referência a um ARN de gateway e todas as ferramentas configuradas nesse gateway ficarão disponíveis. Use o Gateway quando precisar de uma superfície de ferramentas gerenciada e apoiada por políticas.

  • AgentCore Navegador: navegação e automação gerenciadas na web.

  • AgentCore Interpretador de código: execução de Python/JavaScript/TypeScript código em sandbox para análise e computação de dados.

  • Funções em linha: esquemas de ferramentas que são executados no lado do cliente, não na VM do harness. O equipamento faz uma pausa quando a ferramenta é chamada e retorna a chamada para seu código, que decide o que fazer e envia o resultado de volta. Esse é o padrão para aprovações humanas e integrações personalizadas.

As ferramentas shell padrão file_operations estão disponíveis em todas as sessões, a menos que você as restrinja comallowedTools. shellexecuta comandos bash; file_operations suporta a visualização, criação e edição de arquivos.

O allowedTools parâmetro controla quais ferramentas o agente pode usar. Se omitidas, todas as ferramentas serão permitidas.

Sobrecarga de token nas definições de ferramentas

As definições de ferramentas contam para os tokens de entrada do modelo mesmo quando o agente não chama as ferramentas. Juntos, o padrão shell e file_operations as definições adicionam aproximadamente 900 tokens de entrada a cada solicitação de modelo. A contagem exata varia de acordo com o modelo e pode mudar à medida que as definições da ferramenta evoluem. Como uma invocação pode fazer várias solicitações de modelo, essa sobrecarga pode ocorrer mais de uma vez por invocação. Use allowedTools para expor somente as ferramentas necessárias para uma solicitação e reduzir o uso de tokens.

Padrões suportados:

Padrão Exemplo Correspondências

*

"*"

Todas as ferramentas

Nome simples

"shell"

Construído por nome

Globo embutido

"file_*"

file_operations, file_read

@builtin

"@builtin"

Todas as ferramentas integradas

@builtin/name

"@builtin/shell"

Específico embutido

@server

"@git"

Todas as ferramentas de um servidor MCP

@server/tool

"@git/git_status"

Ferramenta MCP específica

@server/glob

"@git/read_*"

Globo dentro de um servidor

@*/tool

"@*-mcp/status"

Globalize em todos os servidores

nota

allowedToolslimita a seleção da ferramenta LLM somente duranteInvokeHarness. Isso não afeta InvokeAgentRuntimeCommand, que é uma API separada com sua própria ação do IAM (bedrock-agentcore:InvokeAgentRuntimeCommand) que executa comandos diretamente sem passar pelo LLM. Para evitar a execução direta de comandos, não conceda bedrock-agentcore:InvokeAgentRuntimeCommand em suas políticas do IAM.

Adicionar ferramentas

exemplo
AWS CLI/boto3

Passe tools no momento da criação, atualização ou invocação:

tools = [ # MCP server { "type": "remote_mcp", "name": "exa", "config": {"remoteMcp": {"url": "https://mcp.exa.ai/mcp"}}, }, # MCP server with authentication headers (plain text) { "type": "remote_mcp", "name": "my-private-mcp", "config": {"remoteMcp": { "url": "https://mcp.example.com/api", "headers": {"Authorization": "Bearer <your-token>"} }}, }, # MCP server with API key stored in AgentCore Identity Token Vault. # Use ${arn:...} to reference a credential provider - the ARN is resolved # to the actual API key at invocation time. { "type": "remote_mcp", "name": "exa-secure", "config": {"remoteMcp": { "url": "https://mcp.exa.ai/mcp", "headers": {"x-api-key": "${arn:aws:bedrock-agentcore:us-west-2:123456789012:token-vault/default/apikeycredentialprovider/my-exa-key}"} }}, }, # For managed credential rotation and OAuth-protected tools, put your MCP server # behind AgentCore Gateway and use AgentCore Identity instead of raw headers. # # AgentCore Gateway with SigV4 auth (default) { "type": "agentcore_gateway", "name": "my-gateway", "config": {"agentCoreGateway": {"gatewayArn": "arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/my-gateway"}}, }, # AgentCore Gateway with OAuth auth { "type": "agentcore_gateway", "name": "my-oauth-gateway", "config": {"agentCoreGateway": { "gatewayArn": "arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/my-oauth-gateway", "outboundAuth": {"oauth": { "credentialProviderName": "my-oauth-provider", "scopes": ["read", "write"] }} }}, }, # AgentCore Browser {"type": "agentcore_browser", "name": "browser"}, # AgentCore Code Interpreter {"type": "agentcore_code_interpreter", "name": "code_interpreter"}, # Inline function - executes on the client side, not on the harness VM. # When the agent calls this tool, the call is returned to your code for handling. { "type": "inline_function", "name": "approve_purchase", "config": { "inlineFunction": { "description": "Request human approval for a purchase.", "inputSchema": { "type": "object", "properties": { "item": {"type": "string"}, "amount": {"type": "number"}, }, "required": ["item", "amount"], }, } }, }, ] response = client.invoke_harness( harnessArn=HARNESS_ARN, runtimeSessionId=SESSION_ID, tools=tools, messages=[{"role": "user", "content": [{"text": "Find a mechanical keyboard under $200 and request approval."}]}], )
AgentCore CLI

Ao criar um novo arnês de forma interativa, o agentcore add harness assistente permite selecionar ferramentas. Para adicionar ferramentas por meio da CLI, use agentcore add tool depois de criar o arnês:

nota

O --type sinalizador usa nomes separados por sublinhados (por exemplo,agentcore_browser), que correspondem aos identificadores do tipo de ferramenta em. harness.json

# Add a remote MCP server agentcore add tool --harness my-agent --type remote_mcp \ --name exa --url https://mcp.exa.ai/mcp # Create a harness with a remote MCP server and request headers. # Use ${arn:...} syntax to reference a credential provider. agentcore add harness \ --name secure_agent \ --model-provider bedrock \ --model-id us.anthropic.claude-sonnet-4-5-20250514-v1:0 \ --tools remote_mcp \ --mcp-name exa-secure \ --mcp-url https://mcp.exa.ai/mcp \ --mcp-headers '{"x-api-key":"${arn:aws:bedrock-agentcore:us-west-2:123456789012:token-vault/default/apikeycredentialprovider/my-exa-key}"}' # Add Browser agentcore add tool --harness my-agent --type agentcore_browser --name browser # Add Code Interpreter agentcore add tool --harness my-agent --type agentcore_code_interpreter --name code-interpreter # Add Gateway by ARN agentcore add tool --harness my-agent --type agentcore_gateway \ --name my-gateway --gateway-arn arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/my-gateway # Add Gateway by project-local name agentcore add tool --harness my-agent --type agentcore_gateway \ --name my-gateway --gateway my-gateway # Add an inline function tool (executes client-side, not on the harness VM) agentcore add tool --harness my-agent --type inline_function \ --name approve_purchase \ --description "Request human approval for a purchase" \ --input-schema '{"type": "object", "properties": {"item": {"type": "string"}, "amount": {"type": "number"}}, "required": ["item", "amount"]}'

Implante para se inscrever.

Substitua as ferramentas em uma única invocação:

agentcore invoke --harness research-agent --tools agentcore_browser "Find the latest news on AI agents"
Interactive

Execute agentcore em um diretório de projeto, selecione Adicionar, escolha Harness e avance para Configurações avançadas. Ative Ferramentas com espaço e pressione Enter.

  1. Selecione as ferramentas para seu equipamento: AgentCore navegador, interpretador de AgentCore código , AgentCore gateway ou servidor MCP remoto. Use Espaço para alternar cada um e pressione Enter.

    Selecione ferramentas: navegador, intérprete de código, gateway, servidor MCP remoto
  2. Para um servidor MCP remoto, o assistente solicita o nome do servidor, a URL e os cabeçalhos de solicitação opcionais.

    Insira a URL do servidor MCP
  3. Para um AgentCore gateway, insira o ARN do gateway e escolha sua autenticação de saída: AWS IAM (padrão), Nenhuma ou OAuth.

    Selecione a autenticação de saída do gateway
  4. Revise o resumo da configuração e confirme.

    Revise a configuração da ferramenta de arnês

Em seguida, corra agentcore deploy para se inscrever.

Para fornecer ao seu agente uma pesquisa na web, coloque o conector da Ferramenta de Pesquisa na Web atrás de um AgentCore gateway e conecte esse gateway ao seu equipamento como uma agentcore_gateway ferramenta. O gateway expõe a pesquisa na web como uma ferramenta MCP WebSearch padrão. Seu agente descobre e chama isso como qualquer outra ferramenta de gateway. AgentCore O Gateway atende inteiramente AWS a todas as consultas. Para obter mais informações sobre o modelo de privacidade e o índice da Web criado especificamente, consulte a página do conector da Ferramenta de Pesquisa na Web.

Disponibilidade de regiões

A Ferramenta de Pesquisa na Web está disponível na us-east-1 região Leste dos EUA (Norte da Virgínia). Crie o gateway e aproveite. us-east-1

Conclua as etapas a seguir para configurar a pesquisa na web para seu equipamento.

  1. Crie o gateway e o destino do conector. Siga as etapas em Configurar a ferramenta de pesquisa na Web para criar um gateway (protocolo MCP, autenticação de AWS_IAM entrada) e adicionar um destino com. connectorId: "web-search" Esse alvo precisa de uma função de serviço do Gateway bedrock-agentcore:InvokeWebSearch no conector. Para obter mais informações, consulte Configurar a função de serviço de gateway. Observe o ARN do gateway quando ele chegarREADY.

  2. Conceda acesso à função de execução do chicote. A função de execução de aproveitamento (distinta da função de serviço do Gateway na etapa anterior) precisa bedrock-agentcore:InvokeGateway no ARN do gateway. Para obter mais informações sobre as permissões necessárias, consulte a política de permissões opcionais do AgentCore Gateway no tópico de segurança. Se seu equipamento usa memória gerenciada (o padrão), a função de execução também precisa das permissões de AgentCore memória. O agente lê e grava a memória da sessão em cada invocação.

  3. Conecte o gateway ao chicote. Adicione-o como uma agentcore_gateway ferramenta com a autenticação de AWS_IAM saída padrão. Os exemplos a seguir mostram como conectar o gateway no momento da criação.

exemplo
AWS CLI/boto3

Conecte o gateway no momento da criação (ou passe tools adianteupdate_harness/invoke_harness):

tools = [ { "type": "agentcore_gateway", "name": "web-search", "config": {"agentCoreGateway": { "gatewayArn": "arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/my-web-search-gateway", "outboundAuth": {"awsIam": {}} }}, }, ] client.create_harness( harnessName="research-agent", executionRoleArn="arn:aws:iam::123456789012:role/MyHarnessRole", tools=tools, )

As ferramentas do gateway agora estão disponíveis para o agente. Invoque o chicote com um prompt que precisa de informações atuais:

response = client.invoke_harness( harnessArn=HARNESS_ARN, runtimeSessionId=SESSION_ID, messages=[{"role": "user", "content": [{"text": "Search the web for the latest AWS announcements and cite your sources."}]}], )
AgentCore CLI
# Attach the web-search gateway to your harness agentcore add tool --harness research-agent --type agentcore_gateway \ --name web-search \ --gateway-arn arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/my-web-search-gateway # Deploy, then invoke agentcore deploy agentcore invoke --harness research-agent "Search the web for the latest AWS announcements and cite your sources."

Chamadas de função em linha

As funções embutidas permitem que você defina uma ferramenta que é executada em seu código, não no equipamento. Isso é útil para aprovações humanas, chamadas de APIs internas ou qualquer lógica que você queira controlar do lado do cliente.

exemplo
AWS CLI/boto3

Passe uma ferramenta de função embutida no momento da invocação:

# 1. Invoke with an inline function tool response = client.invoke_harness( harnessArn=HARNESS_ARN, runtimeSessionId=SESSION_ID, tools=[{ "type": "inline_function", "name": "get_weather", "config": {"inlineFunction": { "description": "Get the current weather for a city.", "inputSchema": { "type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"] } }} }], messages=[{"role": "user", "content": [{"text": "What's the weather in Seattle?"}]}], ) # 2. The agent calls the tool - capture the toolUseId and input from the stream tool_use_id = None tool_name = None tool_input = None for event in response["stream"]: if "contentBlockStart" in event: start = event["contentBlockStart"].get("start", {}) if "toolUse" in start and start["toolUse"].get("name") == "get_weather": tool_use_id = start["toolUse"]["toolUseId"] tool_name = start["toolUse"]["name"] if "contentBlockDelta" in event: delta = event["contentBlockDelta"].get("delta", {}) if "toolUse" in delta: tool_input = (tool_input or "") + delta["toolUse"].get("input", "") # 3. Execute the tool yourself and send the result back # Include the assistant's toolUse message followed by your toolResult client.invoke_harness( harnessArn=HARNESS_ARN, runtimeSessionId=SESSION_ID, messages=[ { "role": "assistant", "content": [{"toolUse": {"toolUseId": tool_use_id, "name": tool_name, "input": json.loads(tool_input)}}], }, { "role": "user", "content": [{ "toolResult": { "toolUseId": tool_use_id, "content": [{"text": "72°F, partly cloudy"}], "status": "success", } }], }, ], )
nota

Você deve incluir a toolUse mensagem do assistente e a sua toolResult na etapa 3. O equipamento intencionalmente não persiste na mudança da função embutida para a sessão - se o cliente nunca retornar um resultado, persistir em uma curva parcial (assistente toolUse sem correspondênciatoolResult) deixaria a sessão em um estado corrompido. Ao exigir que o cliente envie as duas mensagens, a sessão permanece limpa, independentemente de o cliente concluir a chamada da ferramenta.

O agente retoma o raciocínio com o resultado da ferramenta e transmite a resposta final.

AgentCore CLI

Adicione uma ferramenta de função em linha a um arnês:

agentcore add tool --harness my-agent --type inline_function \ --name get_weather

Em seguida, defina a descrição e o esquema de entrada em: app/my-agent/harness.json

{ "type": "inline_function", "name": "get_weather", "config": { "inlineFunction": { "description": "Get the current weather for a city.", "inputSchema": { "type": "object", "properties": { "city": { "type": "string" } }, "required": ["city"] } } } }

Corra agentcore deploy para se inscrever. Quando o agente chama a função embutida durante uma invocação, a TUI faz uma pausa e solicita que você forneça o resultado da ferramenta em linha. No modo não interativo (CLI), o stream retorna com stopReason: "tool_use" e você envia o resultado de volta com uma chamada de invocação de acompanhamento.

Saiba mais sobre cada ferramenta: