Entorno y sistema de archivos
Cada sesión de arnés se ejecuta en una microVM aislada con su propio sistema de archivos y shell. En esta página se describe la configuración del entorno de ejecución (contenedor predeterminado o personalizado), la ejecución de comandos directamente en la máquina virtual, la configuración de las variables de entorno y el montaje de sistemas de archivos persistentes.
Ejecute comandos en el entorno
No todo tiene que pasar por el circuito de agentes. InvokeAgentRuntimeCommandle da acceso directo al arnés microVM: ejecución de comandos determinista sin razonamiento basado en modelos, sin coste simbólico ni ambigüedad.
Úselo para:
-
Ejecute scripts deterministas previos o posteriores a la invocación.
-
Prepare el entorno antes de una invocación: clone un repositorio, instale dependencias, copie los archivos de entrada.
-
Actúe en función de lo que produjo el agente: ejecute pruebas, confirme y envíe, extraiga artefactos de compilación.
-
Inspeccione la máquina virtual durante el desarrollo:ls, catenv, python --version sin realizar un recorrido de ida y vuelta por el modelo.
ejemplo
- 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"
El entorno base incluye Python y bash. Para herramientas como gitnode, u otros tiempos de ejecución, instálelas al inicio de la sesión (por ejemploapt-get install -y git) o utilice un entorno personalizado.
En la interfaz gráfica de usuario, pulse ! para entrar en el modo exec y ejecutar los comandos en línea.
Consulte la InvokeAgentRuntimeCommand API para obtener más información.
Los comandos se ejecutan como root (uid 0) en la microVM. Esto es similar a rootear en su propia instancia de EC2: el permiso de IAM es la puerta de acceso, no el nivel de privilegios de la máquina virtual. Si tu Dockerfile incluye una USER directiva, solo se aplica al proceso del agente (el punto de entrada principal del contenedor). InvokeAgentRuntimeCommandse ejecuta con un nivel de privilegios más alto para fines operativos, de forma similar a como se usa root docker exec por defecto, incluso cuando el contenedor se ejecuta como un usuario no root. Consulte Ejecutar comandos de shell en sesiones AgentCore de tiempo de ejecución para obtener más información sobre la seguridad, la gestión de errores y las prácticas recomendadas.
Entorno personalizado (imágenes de contenedores)
El entorno base incluye Python y bash, suficientes para la mayoría de las tareas. Cuando necesites más, empaqueta el código fuente, las dependencias, los tiempos de ejecución y las herramientas en una imagen de contenedor, colócala en ECR y haz referencia a ella en el arnés. Su agente se ejecuta exactamente en ese entorno. Combine imágenes personalizadas con una configuración específica InvokeAgentRuntimeCommand de la sesión que varía según la invocación.
Las imágenes del contenedor deben crearse para la plataforma. linux/arm64
El arnés anula el del contenedor ENTRYPOINT y CMD lo mantiene funcionando como un entorno. El software, el sistema de archivos y las variables de entorno instalados están disponibles para el agente; el comando de inicio del contenedor no se ejecuta. Si necesita un proceso en segundo plano (como un servidor de desarrollo), inícielo InvokeAgentRuntimeCommand después de que comience la sesión.
ejemplo
- 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."}]'
La función de ejecución necesita permisos de extracción de ECR. Consulte la política de funciones de ejecución para obtener más información.
- AgentCore CLI
-
Arregla un arnés con un Dockerfile:
agentcore create --name coding-agent --container ./Dockerfile
agentcore deploy
En el momento de la implementación, la CLI crea la imagen, la envía al ECR y la conecta al arnés.
O haga referencia a una imagen prediseñada:
agentcore create --name node-agent \
--container public.ecr.aws/docker/library/node:slim
agentcore deploy
Variables de entorno
Defina las variables de entorno que se pasan al contenedor de tiempo de ejecución. Las variables de entorno están disponibles para el agente y para cualquier contenedor personalizado que se ejecute en la sesión.
ejemplo
- 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 las variables de entorno enharness.json:
{
"environmentVariables": {
"MY_API_URL": "https://api.example.com",
"LOG_LEVEL": "debug"
}
}
Ejecute agentcore deploy para aplicar.
Sistema de archivos
El arnés monta el almacenamiento persistente en las rutas que especifique. Los archivos escritos en estos montajes sobreviven a la finalización de la sesión y son visibles para las invocaciones posteriores.
Un arnés admite tres tipos de sistemas de archivos:
-
Almacenamiento de sesiones: almacenamiento por sesión gestionado por el servicio que persiste durante todos stop/resume los ciclos durante el mismo período. runtimeSessionId No se requiere VPC.
-
Punto de acceso Amazon EFS: traiga su propio sistema de archivos EFS, compartido entre sesiones y agentes. Se requiere VPC.
-
Punto de acceso Amazon S3 Files: traiga su propio sistema de archivos S3 Files que se sincroniza bidireccionalmente con un bucket de S3. Se requiere VPC.
Para ver los requisitos previos (redes de VPC, permisos de IAM, grupos de seguridad), la comparación de tipos, los límites y el comportamiento del ciclo de vida, consulte Configuraciones del sistema de archivos para Runtime. AgentCore Los mismos requisitos se aplican a los arneses.
Configurar el entorno y el sistema de archivos en la CLI AgentCore
ejemplo
- Interactive
-
Ejecute agentcore en un directorio de proyecto para abrir la TUI, seleccione agregar y, a continuación, elija Harness. El asistente le guiará por el entorno de ejecución y, en la configuración avanzada, por el sistema de archivos persistente.
-
En el paso Entorno personalizado, mantenga el entorno predeterminado o elija una imagen de contenedor prediseñada (URI de ECR) o un Dockerfile.
-
Los montajes del sistema de archivos requieren el modo VPC, por lo que en la configuración avanzada habilita el almacenamiento en red y en el sistema de archivos con espacio y, a continuación, presiona Entrar.
-
Elija el modo de red VPC y, a continuación, proporcione las subredes y los grupos de seguridad para el arnés.
-
Configure la ruta de montaje del almacenamiento de sesiones (en/mnt).
-
Para adjuntar un sistema de archivos Amazon EFS, introduzca el ARN del punto de acceso EFS (y su ruta de montaje en el siguiente paso).
-
Para adjuntar archivos de Amazon S3, introduzca el ARN del punto de acceso de S3 Files (y su ruta de montaje).
Confirme el asistente y, a continuación, ejecútelo agentcore deploy para aplicarlo.
Almacenamiento de sesiones
Los archivos escritos en la ruta de montaje persisten a lo largo de stop/resume los ciclos cuando se invocan con la mismaruntimeSessionId.
ejemplo
- 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
Punto de acceso Amazon EFS
Conecte un ARN de punto de acceso EFS a una ruta de montaje situada debajo. /mnt Los datos permanecen en su cuenta y se pueden compartir con otros arneses o agentes que se ejecuten en el mismo punto de acceso.
ejemplo
- 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
-
Adjunte un punto de acceso EFS con --efs-access-point as<accessPointArn>:<mountPath>. EFS requiere el modo de red 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
La ruta de montaje debe estar por debajo/mnt. El indicador es repetible (hasta 2 montajes de EFS) --subnets y --security-groups es obligatorio para los montajes de archivos EFS y S3. --network-mode VPC
Punto de acceso Amazon S3 Files
Conecte un ARN de punto de acceso de S3 Files en una ruta de montaje inferior. /mnt Los archivos de la ruta de montaje se sincronizan bidireccionalmente con el depósito S3 de respaldo.
ejemplo
- 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
-
Adjunte un punto de acceso de S3 Files con un as--s3-access-point. <accessPointArn>:<mountPath> S3 Files requiere el modo de red 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
El propio ARN del punto de acceso contiene dos puntos; la ruta de montaje se toma del segmento después de los dos puntos finales. El indicador se puede repetir (se montan hasta 2 archivos S3).
UpdateHarnesssustituye a toda la listafilesystemConfigurations. Para añadir una nueva montura a un arnés que ya tiene los sistemas de archivos configurados, llame GetHarness primero y, a continuación, envíe la lista completa deseada (las entradas existentes más la nueva). UpdateHarness
Más información: Configuraciones del sistema de archivos para Runtime. AgentCore