Ambiente e sistema de arquivos
Cada sessão de arnês é executada em uma microVM isolada com seu próprio sistema de arquivos e shell. Esta página aborda a configuração do ambiente de execução (contêiner padrão ou personalizado), a execução de comandos diretamente na VM, a definição de variáveis de ambiente e a montagem de sistemas de arquivos persistentes.
Execute comandos no ambiente
Nem tudo precisa passar pelo ciclo do agente. InvokeAgentRuntimeCommandfornece acesso direto ao shell ao harness microVM: execução de comandos determinísticos sem raciocínio de modelo, sem custo de token, sem ambigüidade.
Use-o para:
-
Execute scripts determinísticos de pré-invocação ou pós-invocação.
-
Prepare o ambiente antes de uma invocação: clone um repositório, instale dependências, copie arquivos de entrada.
-
Aja de acordo com o que o agente produziu: execute testes, confirme e envie, extraia artefatos de construção.
-
Inspecione a VM durante o desenvolvimento:ls,, catenv, python --version sem uma viagem de ida e volta pelo modelo.
exemplo
- AWS CLI/boto3
-
response = client.invoke_agent_runtime_command(
agentRuntimeArn=HARNESS_ARN,
runtimeSessionId=SESSION_ID,
body={"command": "ls -la /workspace"},
)
for event in response["stream"]:
chunk = event.get("chunk", {})
if "contentDelta" in chunk:
delta = chunk["contentDelta"]
if "stdout" in delta:
print(delta["stdout"], end="", flush=True)
if "stderr" in delta:
print(delta["stderr"], end="", flush=True)
elif "contentStop" in chunk:
print(f"\n[exit code: {chunk['contentStop']['exitCode']}]")
- AgentCore CLI
-
# Install dependencies before the agent starts
agentcore invoke --exec --harness my-agent --session-id "$(uuidgen)" \
"pip install pandas matplotlib"
# After the agent finishes, inspect what it created
agentcore invoke --exec --harness my-agent --session-id "$(uuidgen)" \
"ls -la /tmp && cat /tmp/results.csv"
O ambiente básico inclui Python e bash. Para ferramentas como gitnode, ou outros tempos de execução, instale-as no início da sessão (por exemploapt-get install -y git) ou use um ambiente personalizado.
Na TUI, pressione ! para entrar no modo exec e executar comandos em linha.
Consulte a InvokeAgentRuntimeCommand API para obter detalhes.
Os comandos são executados como root (uid 0) dentro da microVM. Isso é análogo ao root em sua própria instância do EC2: a permissão do IAM é a porta de acesso, não o nível de privilégio na VM. Se o Dockerfile incluir uma USER diretiva, ela se aplicará somente ao processo do agente (o ponto de entrada principal do contêiner). InvokeAgentRuntimeCommandé executado em um nível de privilégio mais alto para fins operacionais, semelhante ao docker exec padrão root, mesmo quando o contêiner é executado como um usuário não root. Consulte Executar comandos shell em sessões AgentCore de tempo de execução para obter detalhes completos sobre segurança, tratamento de erros e melhores práticas.
Ambiente personalizado (imagens de contêiner)
O ambiente básico inclui Python e bash, o suficiente para a maioria das tarefas. Quando precisar de mais, empacote seu código-fonte, dependências, tempos de execução e ferramentas em uma imagem de contêiner, envie-a para o ECR e faça referência a ela no chicote. Seu agente funciona exatamente nesse ambiente. Combine imagens personalizadas com uma InvokeAgentRuntimeCommand configuração específica da sessão que varia de acordo com a invocação.
As imagens de contêiner devem ser criadas para a linux/arm64 plataforma.
O arnês substitui o do seu contêiner ENTRYPOINT e CMD o mantém funcionando como um ambiente. O software, o sistema de arquivos e as variáveis de ambiente instalados estão disponíveis para o agente; o comando de inicialização do contêiner não é executado. Se você precisar de um processo em segundo plano (como um servidor de desenvolvimento), inicie-o InvokeAgentRuntimeCommand após o início da sessão.
exemplo
- AWS CLI/boto3
-
aws bedrock-agentcore-control create-harness \
--harness-name "CodingAgent" \
--execution-role-arn "arn:aws:iam::123456789012:role/MyHarnessRole" \
--environment-artifact '{"containerConfiguration": {"containerUri": "123456789012.dkr.ecr.us-west-2.amazonaws.com/my-dev-env:latest"}}' \
--system-prompt '[{"text": "You are an expert TypeScript developer."}]'
A função de execução precisa de permissões de extração do ECR. Consulte a política da função de execução para obter detalhes.
- AgentCore CLI
-
Monte um arnês com um Dockerfile:
agentcore create --name coding-agent --container ./Dockerfile
agentcore deploy
Na implantação, a CLI cria a imagem, envia para o ECR e a conecta ao chicote.
Ou faça referência a uma imagem pré-criada:
agentcore create --name node-agent \
--container public.ecr.aws/docker/library/node:slim
agentcore deploy
Variáveis de ambiente
Defina as variáveis de ambiente que são passadas para o contêiner de tempo de execução. As variáveis de ambiente estão disponíveis para o agente e para qualquer contêiner personalizado em execução na sessão.
exemplo
- AWS CLI/boto3
-
aws bedrock-agentcore-control create-harness \
--harness-name "MyHarness" \
--execution-role-arn "arn:aws:iam::123456789012:role/MyHarnessRole" \
--environment-variables '{"MY_API_URL": "https://api.example.com", "LOG_LEVEL": "debug"}'
- AgentCore CLI
-
Defina as variáveis de ambiente emharness.json:
{
"environmentVariables": {
"MY_API_URL": "https://api.example.com",
"LOG_LEVEL": "debug"
}
}
Corra agentcore deploy para se inscrever.
Sistema de arquivos
O chicote monta o armazenamento persistente nos caminhos que você especificar. Os arquivos gravados nessas montagens sobrevivem ao término da sessão e ficam visíveis para invocações posteriores.
Um chicote suporta três tipos de sistema de arquivos:
-
Armazenamento de sessão — armazenamento por sessão gerenciado por serviço que persiste em todos os stop/resume ciclos da mesma forma. runtimeSessionId Não é necessário VPC.
-
Ponto de acesso Amazon EFS — traga seu próprio sistema de arquivos EFS, compartilhado entre sessões e agentes. É necessário um VPC.
-
Ponto de acesso Amazon S3 Files - traga seu próprio sistema de arquivos S3 Files que sincroniza bidirecionalmente com um bucket S3. É necessário um VPC.
Para pré-requisitos (rede VPC, permissões do IAM, grupos de segurança), comparação de tipos, limites e comportamento do ciclo de vida, consulte Configurações do sistema de arquivos para o Runtime. AgentCore Os mesmos requisitos se aplicam aos arneses.
Configure o ambiente e o sistema de arquivos na CLI AgentCore
exemplo
- Interactive
-
Execute agentcore em um diretório de projeto para abrir a TUI, selecione adicionar e escolha Harness. O assistente orienta você pelo ambiente de execução e, nas configurações avançadas, pelo sistema de arquivos persistente.
-
Na etapa Ambiente personalizado, mantenha o ambiente padrão ou escolha uma imagem de contêiner pré-criada (ECR URI) ou um Dockerfile.
-
As montagens do sistema de arquivos exigem o modo VPC, portanto, nas configurações avançadas, habilite o armazenamento em rede e no sistema de arquivos com espaço e pressione Enter.
-
Escolha o modo de rede VPC e, em seguida, forneça as sub-redes e os grupos de segurança para o equipamento.
-
Defina o caminho de montagem do armazenamento da sessão (abaixo/mnt).
-
Para anexar um sistema de arquivos do Amazon EFS, insira o ARN do ponto de acesso EFS (e seu caminho de montagem na próxima etapa).
-
Para anexar arquivos do Amazon S3, insira o ARN do ponto de acesso do S3 Files (e seu caminho de montagem).
Confirme o assistente e execute agentcore deploy para se inscrever.
Armazenamento da sessão
Os arquivos gravados no caminho de montagem persistem em todos stop/resume os ciclos quando você invoca com o mesmo. runtimeSessionId
exemplo
- AWS CLI/boto3
-
aws bedrock-agentcore-control update-harness \
--harness-id "MyHarness-UuFdkQoXSL" \
--environment '{"agentCoreRuntimeEnvironment": {"filesystemConfigurations": [{"sessionStorage": {"mountPath": "/mnt/data/"}}]}}'
- AgentCore CLI
-
# At create time
agentcore create --name myagent --session-storage-mount-path /mnt/data/
# Or add to an existing harness
agentcore add harness --name my-agent --session-storage /mnt/data/
agentcore deploy
Ponto de acesso Amazon EFS
Anexe um ARN do ponto de acesso EFS em um caminho de montagem abaixo. /mnt Os dados persistem na sua conta e podem ser compartilhados com outros equipamentos ou tempos de execução de agentes que montam o mesmo ponto de acesso.
exemplo
- AWS CLI/boto3
-
aws bedrock-agentcore-control create-harness \
--harness-name "SharedToolsAgent" \
--execution-role-arn "arn:aws:iam::123456789012:role/MyHarnessRole" \
--environment '{
"agentCoreRuntimeEnvironment": {
"networkConfiguration": {
"networkMode": "VPC",
"networkModeConfig": {
"subnets": ["subnet-abc123", "subnet-def456"],
"securityGroups": ["sg-abc123"]
}
},
"filesystemConfigurations": [
{
"efsAccessPoint": {
"accessPointArn": "arn:aws:elasticfilesystem:us-west-2:123456789012:access-point/fsap-0123456789abcdef0",
"mountPath": "/mnt/efs"
}
}
]
}
}'
- AgentCore CLI
-
Conecte um ponto de acesso EFS com --efs-access-point as<accessPointArn>:<mountPath>. O EFS requer o modo de rede VPC:
agentcore add harness --name shared-tools-agent \
--network-mode VPC \
--subnets subnet-abc123,subnet-def456 \
--security-groups sg-abc123 \
--efs-access-point arn:aws:elasticfilesystem:us-west-2:123456789012:access-point/fsap-0123456789abcdef0:/mnt/efs
agentcore deploy
O caminho de montagem deve estar embaixo/mnt. O sinalizador é repetível (até 2 montagens EFS); --network-mode VPC com --subnets e --security-groups é necessário para montagens de arquivos EFS e S3.
Ponto de acesso ao Amazon S3 Files
Anexe um ARN do ponto de acesso do S3 Files em um caminho de montagem abaixo. /mnt Os arquivos no caminho de montagem são sincronizados bidirecionalmente com o bucket S3 de apoio.
exemplo
- AWS CLI/boto3
-
aws bedrock-agentcore-control create-harness \
--harness-name "DataAgent" \
--execution-role-arn "arn:aws:iam::123456789012:role/MyHarnessRole" \
--environment '{
"agentCoreRuntimeEnvironment": {
"networkConfiguration": {
"networkMode": "VPC",
"networkModeConfig": {
"subnets": ["subnet-abc123", "subnet-def456"],
"securityGroups": ["sg-abc123"]
}
},
"filesystemConfigurations": [
{
"s3FilesAccessPoint": {
"accessPointArn": "arn:aws:s3files:us-west-2:123456789012:file-system/fs-0123456789abcdef0/access-point/fsap-0123456789abcdef0",
"mountPath": "/mnt/s3data"
}
}
]
}
}'
- AgentCore CLI
-
Anexe um ponto de acesso do S3 Files com --s3-access-point as<accessPointArn>:<mountPath>. O S3 Files requer o modo de rede VPC:
agentcore add harness --name data-agent \
--network-mode VPC \
--subnets subnet-abc123,subnet-def456 \
--security-groups sg-abc123 \
--s3-access-point arn:aws:s3files:us-west-2:123456789012:file-system/fs-0123456789abcdef0/access-point/fsap-0123456789abcdef0:/mnt/s3data
agentcore deploy
O ARN do ponto de acesso em si contém dois pontos; o caminho de montagem é retirado do segmento após os dois pontos finais. O sinalizador é repetível (até 2 montagens de arquivos S3).
UpdateHarnesssubstitui a filesystemConfigurations lista inteira. Para adicionar uma nova montagem a um chicote que já tenha sistemas de arquivos configurados, chame GetHarness primeiro e, em seguida, envie a lista completa desejada (entradas existentes mais a nova). UpdateHarness
Saiba mais: Configurações do sistema de arquivos para o AgentCore Runtime.