Tutorial de Pi Agent Sandbox: Cómo elegir el aislamiento de permisos de Docker, OpenShell y Gondolin

Tutorial de Pi Agent Sandbox: Cómo elegir entre el aislamiento de permisos de Docker, OpenShell y Gondolin, que cubre configuración, verificación, límites de permisos, conmutación por recuperación y mantenimiento a largo plazo.

Este tutorial de Pi Agent solo trata la tarea específica del título. Pi hereda los permisos de archivos, procesos, redes y credenciales del usuario de inicio de forma predeterminada; Docker, Gondolin y OpenShell abordan diferentes límites de confianza y no se pueden seleccionar únicamente en función de la dificultad de la instalación.

Todas las operaciones siguientes se colocan primero en el repositorio de prueba, la cuenta de prueba o el servicio que solo escucha en la interfaz de loopback. El nombre de dominio, el nombre de usuario, la ruta y la clave del comando son marcadores de posición y deben reemplazarse antes de la ejecución.

Primero dibuja los límites a los que Pi puede acceder de forma predeterminada

Esta sección resuelve el problema de “dibujar primero los límites a los que Pi puede acceder de forma predeterminada”. Primero registre el estado actual, luego realice la acción mínima y finalmente confirme el resultado con evidencia independiente.

Para Pi Agent, la base del juicio es: Pi hereda los permisos de archivo, proceso, red y credenciales del usuario de inicio de forma predeterminada; Docker, Gondolin y OpenShell resuelven diferentes límites de confianza y no se pueden seleccionar únicamente en función de la dificultad de la instalación. No abra accidentalmente más permisos en esta etapa.

1
2
3
whoami
Get-Location
Get-ChildItem Env: | Select-String -Pattern 'KEY|TOKEN'

Conservar la salida del comando y la marca de tiempo después de la ejecución. Si la salida depende de variables temporales en la terminal actual, abra una nueva terminal y verifique nuevamente.

Tabla de diferencias de tres esquemas de aislamiento.

Procese en el siguiente orden:

  1. Lea la versión real y la configuración actual.
  2. Cambie solo una configuración relevante para esta sección.
  3. Ejecute una solicitud de solo lectura o revocable.
  4. Verifique los registros, los códigos de salida y los archivos finales.
  5. Revierta la modificación anterior si falla.
1
docker version

El criterio de finalización aquí no es que aparezca la interfaz, sino que la “tabla de diferencias de los tres esquemas de aislamiento” tenga resultados reproducibles.

Docker es adecuado para tareas de almacén únicas

Qué comprobar Rendimiento aceptable Señales de que debes parar
Docker es adecuado para tareas de almacén únicas alcance claro de entrada y salida expandido automáticamente a otros proyectos o cuentas
Permisos Obtenga solo los permisos que necesita para completar la tarea Requerir derechos de administrador o clave completa
Iniciar sesión No se pudo localizar y ha sido insensibilizado Aparece Token, Cookie o texto privado
Revertir Puede restaurar el estado anterior Las modificaciones son irreversibles y no hay respaldo
1
docker run --rm -it -v ${PWD}:/workspace -w /workspace node:22 bash

Una vez que aparezca la señal de parada en la tabla, deshaga primero los cambios en esta sección y no continúe con la automatización posterior.

Cómo separar montajes de solo lectura y montajes de escritura

Prepare una muestra de éxito y una muestra de error sobre “Cómo separar montajes de solo lectura y montajes de escritura”. Las muestras exitosas verifican la ruta normal y las muestras fallidas verifican si las restricciones realmente surten efecto.

1
docker run --rm -it -v ${PWD}:/workspace:ro -w /workspace node:22 bash

Se recomienda registrar los siguientes cuatro elementos:

  • Versión previa a la ejecución o confirmación de Git.
  • Entrada real, no se registra ningún valor secreto.
  • Salida observable, código de estado o diferencia.
  • Acciones de recuperación y revisión de resultados tras la recuperación.

Si la causa del error aún no está clara, modifique sólo una variable a la vez; no cambie el puerto, el tiempo de ejecución, el proveedor y el proxy al mismo tiempo.

Riesgos de inyectar claves de proveedor en contenedores

Esta sección aborda el “Riesgo de inyectar claves de proveedor en contenedores”. Primero registre el estado actual, luego realice la acción mínima y finalmente confirme el resultado con evidencia independiente.

Para Pi Agent, la base del juicio es: Pi hereda los permisos de archivo, proceso, red y credenciales del usuario de inicio de forma predeterminada; Docker, Gondolin y OpenShell resuelven diferentes límites de confianza y no se pueden seleccionar únicamente en función de la dificultad de la instalación. No abra accidentalmente más permisos en esta etapa.

1
docker run --rm -it --env-file .env.agent node:22 bash

Conservar la salida del comando y la marca de tiempo después de la ejecución. Si la salida depende de variables temporales en la terminal actual, abra una nueva terminal y verifique nuevamente.

¿Por qué Gondolin conserva la autenticación del host?

Procese en el siguiente orden:

  1. Lea la versión real y la configuración actual.
  2. Cambie solo una configuración relevante para esta sección.
  3. Ejecute una solicitud de solo lectura o revocable.
  4. Verifique los registros, los códigos de salida y los archivos finales.
  5. Revierta la modificación anterior si falla.
1
pi

El criterio de finalización aquí no es que aparezca la interfaz, sino que “¿Por qué Gondolin conserva la certificación de host?” tenga resultados repetibles.

OpenShell es adecuado para la ejecución controlada por políticas

Qué comprobar Rendimiento aceptable Señales de que debes parar
OpenShell es adecuado para la ejecución controlada de políticas alcance claro de entrada y salida expandido automáticamente a otros proyectos o cuentas
Permisos Obtenga solo los permisos que necesita para completar la tarea Requerir derechos de administrador o clave completa
Iniciar sesión No se pudo localizar y ha sido insensibilizado Aparece Token, Cookie o texto privado
Revertir Puede restaurar el estado anterior Las modificaciones son irreversibles y no hay respaldo
1
pi

Una vez que aparezca la señal de parada en la tabla, deshaga primero los cambios en esta sección y no continúe con la automatización posterior.

Verificar que efectivamente se rechaza el acceso no autorizado

Prepare una muestra de éxito y una muestra de error en torno a “verificar que la lectura no autorizada sea efectivamente rechazada”. Las muestras exitosas verifican la ruta normal y las muestras fallidas verifican si las restricciones realmente surten efecto.

1
docker run --rm -v ${PWD}:/workspace:ro node:22 sh -lc 'touch /workspace/should-fail'

Se recomienda registrar los siguientes cuatro elementos:

  • Versión previa a la ejecución o confirmación de Git.
  • Entrada real, no se registra ningún valor secreto.
  • Salida observable, código de estado o diferencia.
  • Acciones de recuperación y revisión de resultados tras la recuperación.

Si la causa del error aún no está clara, modifique sólo una variable a la vez; no cambie el puerto, el tiempo de ejecución, el proveedor y el proxy al mismo tiempo.

Restringir las redes salientes en lugar de simplemente cerrar puertos

Esta sección aborda “restringir las redes salientes en lugar de simplemente cerrar puertos”. Primero registre el estado actual, luego realice la acción mínima y finalmente confirme el resultado con evidencia independiente.

Para Pi Agent, la base del juicio es: Pi hereda los permisos de archivo, proceso, red y credenciales del usuario de inicio de forma predeterminada; Docker, Gondolin y OpenShell resuelven diferentes límites de confianza y no se pueden seleccionar únicamente en función de la dificultad de la instalación. No abra accidentalmente más permisos en esta etapa.

1
docker network ls

Conservar la salida del comando y la marca de tiempo después de la ejecución. Si la salida depende de variables temporales en la terminal actual, abra una nueva terminal y verifique nuevamente.

Identidad de Git y propiedad del envío dentro del contenedor

Procese en el siguiente orden:

  1. Lea la versión real y la configuración actual.
  2. Cambie solo una configuración relevante para esta sección.
  3. Ejecute una solicitud de solo lectura o revocable.
  4. Verifique los registros, los códigos de salida y los archivos finales.
  5. Revierta la modificación anterior si falla.
1
2
git config user.name
git config user.email

El estándar de finalización aquí no es la apariencia de la interfaz, sino los resultados repetibles de “identidad de Git y propiedad de envío dentro del contenedor”.

Verifique los procesos y archivos residuales una vez finalizada la tarea

Qué comprobar Rendimiento aceptable Señales de que debes parar
Verificar procesos y archivos residuales después de la tarea Claro alcance de entrada y salida Expandir automáticamente a otros proyectos o cuentas
Permisos Obtenga solo los permisos que necesita para completar la tarea Requerir derechos de administrador o clave completa
Iniciar sesión No se pudo localizar y ha sido insensibilizado Aparece Token, Cookie o texto privado
Revertir Puede restaurar el estado anterior Las modificaciones son irreversibles y no hay respaldo
1
2
docker ps -a
git status --short

Una vez que aparezca la señal de parada en la tabla, deshaga primero los cambios en esta sección y no continúe con la automatización posterior.

Seleccione una zona de pruebas según el riesgo de la misión

Prepare una muestra de éxito y una muestra de fracaso sobre “seleccionar una zona de pruebas en función del riesgo de la misión”. Las muestras exitosas verifican la ruta normal y las muestras fallidas verifican si las restricciones realmente surten efecto.

1
docker version

Se recomienda registrar los siguientes cuatro elementos:

  • Versión previa a la ejecución o confirmación de Git.
  • Entrada real, no se registra ningún valor secreto.
  • Salida observable, código de estado o diferencia.
  • Acciones de recuperación y revisión de resultados tras la recuperación.

Si la causa del error aún no está clara, modifique sólo una variable a la vez; no cambie el puerto, el tiempo de ejecución, el proveedor y el proxy al mismo tiempo.

Montar en modo solo lectura el repositorio Git del host

Esta sección aborda el “montaje de solo lectura del repositorio Git del host”. Primero registre el estado actual, luego realice la acción mínima y finalmente confirme el resultado con evidencia independiente.

Para Pi Agent, la base del juicio es: Pi hereda los permisos de archivo, proceso, red y credenciales del usuario de inicio de forma predeterminada; Docker, Gondolin y OpenShell resuelven diferentes límites de confianza y no se pueden seleccionar únicamente en función de la dificultad de la instalación. No abra accidentalmente más permisos en esta etapa.

1
docker run --rm -v ${PWD}:/workspace:ro node:22 ls -la /workspace

Conservar la salida del comando y la marca de tiempo después de la ejecución. Si la salida depende de variables temporales en la terminal actual, abra una nueva terminal y verifique nuevamente.

Las tareas de escritura utilizan un árbol de trabajo independiente

Procese en el siguiente orden:

  1. Lea la versión real y la configuración actual.
  2. Cambie solo una configuración relevante para esta sección.
  3. Ejecute una solicitud de solo lectura o revocable.
  4. Verifique los registros, los códigos de salida y los archivos finales.
  5. Revierta la modificación anterior si falla.
1
git worktree add ..\pi-task -b agent/pi-task

El criterio de finalización aquí no es la apariencia de la interfaz, sino “tareas de escritura utilizando un árbol de trabajo independiente” con resultados repetibles.

Verifique que el contenedor desconectado no pueda acceder a la red pública

Qué comprobar Rendimiento aceptable Señales de que debes parar
Verificar que el contenedor desconectado no pueda acceder a la red pública Los rangos de entrada y salida son claros Expandir automáticamente a otros proyectos o cuentas
Permisos Obtenga solo los permisos que necesita para completar la tarea Requerir derechos de administrador o clave completa
Iniciar sesión No se pudo localizar y ha sido insensibilizado Aparece Token, Cookie o texto privado
Revertir Puede restaurar el estado anterior Las modificaciones son irreversibles y no hay respaldo
1
docker run --rm --network none node:22 node -e "fetch('https://example.com').catch(e=>console.log(e.code))"

Una vez que aparezca la señal de parada en la tabla, deshaga primero los cambios en esta sección y no continúe con la automatización posterior.

Verifique los residuos del host después de destruir la caja de arena

Prepare una muestra de éxito y una muestra de fracaso sobre “verificar los residuos del host después de destruir la caja de arena”. Las muestras exitosas verifican la ruta normal y las muestras fallidas verifican si las restricciones realmente surten efecto.

1
2
docker ps -a
git status --short

Se recomienda registrar los siguientes cuatro elementos:

  • Versión previa a la ejecución o confirmación de Git.
  • Entrada real, no se registra ningún valor secreto.
  • Salida observable, código de estado o diferencia.
  • Acciones de recuperación y revisión de resultados tras la recuperación.

Si la causa del error aún no está clara, modifique sólo una variable a la vez; no cambie el puerto, el tiempo de ejecución, el proveedor y el proxy al mismo tiempo.

Preguntas frecuentes sobre el agente Pi

¿Es posible omitir el entorno de prueba y usar Pi Agent directamente en el proyecto oficial?

No recomendado. Primero complete al menos una solicitud de éxito mínimo, una falla intencional y un simulacro de recuperación.

El comando Pi Agent se puede ejecutar pero el resultado es incorrecto, ¿dónde debo verificar primero?

Primero verifique el rango de entrada, la configuración efectiva real y la respuesta ascendente, y luego verifique el resumen del modelo. Un proceso normal no significa que los resultados del negocio sean correctos.

¿Cómo evitar que las claves o tokens del Agente Pi ingresen a Git?

Utilice variables de entorno del sistema, administración de secretos o archivos de configuración fuera del proyecto y busque diferencias antes de confirmar. Las claves deben rotarse después de que se descubre una infracción.

¿Qué es lo que más comúnmente se pasa por alto al actualizar Pi Agent?

Es más fácil pasar por alto el formato de configuración, la dirección de escucha predeterminada, el alcance de los permisos y la compatibilidad de la caché. Guarde la versión y los ejemplos de verificación antes de actualizar.

Problemas de aceptación del agente Pi

Al finalizar, debería poder responder las siguientes preguntas:

  • ¿Qué versión exacta estás usando?
  • ¿A qué directorios, puertos, cuentas y servicios externos se puede acceder?
  • ¿Cómo devolver el resultado exitoso a los datos originales o Git diff?
  • Cuando falla el flujo ascendente, ¿informará un error, lo volverá a intentar o cambiará?
  • ¿Es posible que la clave aparezca en los registros o en el historial?
  • ¿Cómo volver al estado previo a la modificación en diez minutos?

Si no se puede responder a alguna de estas preguntas, el Agente Pi todavía está en estado de prueba y no debe ampliar los permisos ni aprovechar la automatización de la producción.