{"schemaVersion":1,"id":"https://lucioduran.com/es/projects/agent-sandbox-boundaries","url":"https://lucioduran.com/es/projects/agent-sandbox-boundaries","title":"Agent Sandbox Boundaries","description":"Ejecutor efímero con Wasmtime que permite observar los límites de CPU, tiempo transcurrido, memoria invitada y capacidades de acceso al sistema de archivos y la red.","language":"es","datePublished":"2026-11-09","dateModified":"2026-11-09","contentFormat":"text/markdown","content":"[Proyectos](<https://lucioduran.com/es/projects>) / Agent Sandbox Boundaries\n\n# Agent Sandbox Boundaries\n\nEjecutor efímero con Wasmtime que permite observar los límites de CPU, tiempo transcurrido, memoria invitada y capacidades de acceso al sistema de archivos y la red.\n\nAutor: [Lucio Durán](<https://lucioduran.com/es>) · Python 3.11.9 y Wasmtime 50.0.1 · Licencia: [MIT](<https://github.com/lucioduran/agent-sandbox-boundaries/blob/f67487bb807ca84bb1801eaee7cc81f072f71ac4/LICENSE>)\n\nFicha publicada: 2026-11-09 · Ficha actualizada: 2026-11-09\n\n[Repositorio](<https://github.com/lucioduran/agent-sandbox-boundaries>) · [Evidencia original](<https://raw.githubusercontent.com/lucioduran/agent-sandbox-boundaries/f67487bb807ca84bb1801eaee7cc81f072f71ac4/results/boundaries.json>) · [Release v0.1.0](<https://github.com/lucioduran/agent-sandbox-boundaries/releases/tag/v0.1.0>)\n\n## Problema y utilidad para agentes\n\nUn tiempo máximo en un subproceso no impide que el código generado acceda al sistema de archivos, se conecte a la red o aumente su consumo de memoria. El mecanismo real de aislamiento debe ser explícito.\n\nEl ejecutor procesa WebAssembly binario de tipo core con límites y una interfaz WASI restringida. Rechaza las solicitudes de política no admitidas en lugar de ignorarlas.\n\n## Arquitectura\n\n1. **Validar la política.** Acepta únicamente Wasm binario con límites, cero escrituras del invitado a disco, acceso de red denegado y límites de memoria invitada admitidos.\n2. **Aplicar los límites con Wasmtime.** Cada ejecución usa un proceso de trabajo y un almacén nuevos, límites POSIX de CPU, presupuesto de instrucciones, límites de memoria y tablas del invitado y un plazo de tiempo transcurrido controlado por el proceso padre.\n3. **No conceder capacidades implícitas.** WASI Preview 1 no hereda entorno, argumentos, archivos, directorios ni sockets. Los procesos de trabajo y directorios temporales se limpian al terminar.\n\n- [Diseño y límites de confianza](<https://github.com/lucioduran/agent-sandbox-boundaries/blob/f67487bb807ca84bb1801eaee7cc81f072f71ac4/docs/design.md>)\n\n## Qué demuestra\n\n- Pruebas controladas de recorrido de rutas y límites de recursos con archivos señuelo sintéticos propios.\n- Rechazo explícito de cuotas de disco positivas, acceso de red y límites de memoria del proceso que no se admiten.\n- Registro de la política, el hash del módulo y el resultado observado en cada prueba de límites.\n\n## Resultados publicados\n\nDiecinueve pruebas de límites y tres comprobaciones de perfiles no admitidos se ejecutaron una vez en un Intel Xeon W-3223, con 48 GiB de RAM, Python 3.11.9 y Wasmtime 50.0.1.\n\nLa matriz comprueba estados y valores esperados, la integridad de los archivos señuelo y la ausencia de archivos creados. Las pruebas de CPU y tiempo transcurrido se ejecutaron bajo el bloqueo exclusivo compartido para mediciones.\n\n### Límites de aislamiento observados\n\n| Límite | Resultado observado |\n| --- | --- |\n| CPU y ejecución | Agotamiento del presupuesto de instrucciones y terminación por límite de CPU del sistema operativo |\n| Tiempo transcurrido | La espera bloqueante de WASI se detuvo al vencer el plazo del proceso padre |\n| Memoria invitada | Crecimiento denegado; memoria sobredimensionada rechazada; acceso inválido detenido |\n| Sistema de archivos | El recorrido de rutas, el acceso a archivos señuelo y la creación de archivos devolvieron un error de descriptor inválido |\n| Red | Envío por socket denegado; importación para crear sockets rechazada |\n| Ciclo de vida | Argumentos y entorno vacíos; estado nuevo de la instancia |\n| Todos los resultados registrados | 19/19 coincidieron |\n| Perfiles no admitidos | 3/3 rechazados |\n\nWasmtime aporta el mecanismo de aislamiento; el subproceso controla el ciclo de vida y los plazos. Estas observaciones son evidencia sintética de regresión, no una certificación de seguridad ni una garantía de que sea imposible escapar.\n\n## Reproducir\n\nPython 3.11.9 en macOS o Linux, con Wasmtime fijado en 50.0.1. Instalá los requisitos del repositorio antes de ejecutar las comprobaciones.\n\nEl comando de estrés usa el bloqueo compartido del espacio de trabajo original. En otra instalación, aplicá un bloqueo exclusivo equivalente al mismo módulo de experimento. No ejecutes cargas de estrés concurrentes y usá una ruta de salida nueva. El comando de regresión sin estrés es independiente.\n\n### Comprobar los límites admitidos\n\n```\ngit clone https://github.com/lucioduran/agent-sandbox-boundaries.git\ncd agent-sandbox-boundaries\ngit checkout f67487bb807ca84bb1801eaee7cc81f072f71ac4\npython3.11 -m venv .venv\n. .venv/bin/activate\npython -m pip install -r requirements-dev.txt\npython -m pytest -q -m 'not stress'\n```\n\n### Repetir el experimento local\n\n```\nOMP_NUM_THREADS=1 MKL_NUM_THREADS=1 OPENBLAS_NUM_THREADS=1 python3 /Users/luchoduran/Sites/open-source-projects/.coordination/benchmark_lock.py .venv/bin/python -m experiments.reproduce --output build/new-boundaries.json\n```\n\n## Alcance y límites\n\n- Los límites de memoria cubren la memoria lineal invitada, no la memoria residente total del proceso de trabajo, las asignaciones del compilador ni toda la memoria del anfitrión.\n- Se confía en el entorno de ejecución y en el sistema operativo. Un motor comprometido queda fuera de este límite.\n- No se admiten montajes del sistema de archivos con escritura, cuotas de disco positivas, captura de salida ni listas de destinos de red permitidos. La evidencia de red comprueba capacidades denegadas, no el comportamiento de un cortafuegos a nivel de paquetes.\n- Solo se admite Wasm de tipo core con WASI Preview 1 en macOS y Linux. Windows y los componentes de Preview 2 se rechazan por defecto. Los llamadores deben limitar la concurrencia.\n\n- [Artículo de arquitectura relacionado](<https://lucioduran.com/es/blog/unikernels-firecracker-microvm-serverless>)\n\n## Fuentes y revisión\n\nEl informe registra el momento de ejecución, la revisión de implementación y los hashes de fuentes y módulos. La release revisada contiene esa evidencia. Los hashes de las pruebas con rutas absolutas de archivos señuelo dependen de la ruta temporal original.\n\n- Revisión consultada: [` f67487bb807ca84bb1801eaee7cc81f072f71ac4 `](<https://github.com/lucioduran/agent-sandbox-boundaries/commit/f67487bb807ca84bb1801eaee7cc81f072f71ac4>)\n- Revisión registrada por el experimento: [` bdffaf85ff10f9e28682592af0c9d041c04862f7 `](<https://github.com/lucioduran/agent-sandbox-boundaries/commit/bdffaf85ff10f9e28682592af0c9d041c04862f7>)\n- Fecha del informe (UTC): 2026-11-09T18:32:32.705508+00:00\n- Release publicada: [v0.1.0](<https://github.com/lucioduran/agent-sandbox-boundaries/releases/tag/v0.1.0>) · 2026-11-09T18:34:04Z\n\n- [README y uso](<https://github.com/lucioduran/agent-sandbox-boundaries/blob/f67487bb807ca84bb1801eaee7cc81f072f71ac4/README.md>)\n- [Evidencia original](<https://raw.githubusercontent.com/lucioduran/agent-sandbox-boundaries/f67487bb807ca84bb1801eaee7cc81f072f71ac4/results/boundaries.json>)\n- [Licencia MIT](<https://github.com/lucioduran/agent-sandbox-boundaries/blob/f67487bb807ca84bb1801eaee7cc81f072f71ac4/LICENSE>)\n- [Diseño y límites de confianza](<https://github.com/lucioduran/agent-sandbox-boundaries/blob/f67487bb807ca84bb1801eaee7cc81f072f71ac4/docs/design.md>)\n- [Resumen de resultados](<https://github.com/lucioduran/agent-sandbox-boundaries/blob/f67487bb807ca84bb1801eaee7cc81f072f71ac4/results/boundaries.md>)\n- [Pruebas de límites](<https://github.com/lucioduran/agent-sandbox-boundaries/blob/f67487bb807ca84bb1801eaee7cc81f072f71ac4/experiments/probes.py>)","headings":[{"level":1,"text":"Agent Sandbox Boundaries","url":"https://lucioduran.com/es/projects/agent-sandbox-boundaries#title"},{"level":2,"text":"Problema y utilidad para agentes","url":"https://lucioduran.com/es/projects/agent-sandbox-boundaries#problem"},{"level":2,"text":"Arquitectura","url":"https://lucioduran.com/es/projects/agent-sandbox-boundaries#architecture"},{"level":2,"text":"Qué demuestra","url":"https://lucioduran.com/es/projects/agent-sandbox-boundaries#demonstrates"},{"level":2,"text":"Resultados publicados","url":"https://lucioduran.com/es/projects/agent-sandbox-boundaries#results"},{"level":3,"text":"Límites de aislamiento observados","url":"https://lucioduran.com/es/projects/agent-sandbox-boundaries#results-Observed%20isolation%20boundaries"},{"level":2,"text":"Reproducir","url":"https://lucioduran.com/es/projects/agent-sandbox-boundaries#reproduce"},{"level":3,"text":"Comprobar los límites admitidos","url":"https://lucioduran.com/es/projects/agent-sandbox-boundaries#reproduce-checks"},{"level":3,"text":"Repetir el experimento local","url":"https://lucioduran.com/es/projects/agent-sandbox-boundaries#reproduce-experiment"},{"level":2,"text":"Alcance y límites","url":"https://lucioduran.com/es/projects/agent-sandbox-boundaries#scope"},{"level":2,"text":"Fuentes y revisión","url":"https://lucioduran.com/es/projects/agent-sandbox-boundaries#sources"}],"sections":[{"heading":"Agent Sandbox Boundaries","level":1,"url":"https://lucioduran.com/es/projects/agent-sandbox-boundaries","content":"[Proyectos](<https://lucioduran.com/es/projects>) / Agent Sandbox Boundaries"},{"heading":"Agent Sandbox Boundaries","level":1,"url":"https://lucioduran.com/es/projects/agent-sandbox-boundaries#title","content":"Ejecutor efímero con Wasmtime que permite observar los límites de CPU, tiempo transcurrido, memoria invitada y capacidades de acceso al sistema de archivos y la red.\n\nAutor: [Lucio Durán](<https://lucioduran.com/es>) · Python 3.11.9 y Wasmtime 50.0.1 · Licencia: [MIT](<https://github.com/lucioduran/agent-sandbox-boundaries/blob/f67487bb807ca84bb1801eaee7cc81f072f71ac4/LICENSE>)\n\nFicha publicada: 2026-11-09 · Ficha actualizada: 2026-11-09\n\n[Repositorio](<https://github.com/lucioduran/agent-sandbox-boundaries>) · [Evidencia original](<https://raw.githubusercontent.com/lucioduran/agent-sandbox-boundaries/f67487bb807ca84bb1801eaee7cc81f072f71ac4/results/boundaries.json>) · [Release v0.1.0](<https://github.com/lucioduran/agent-sandbox-boundaries/releases/tag/v0.1.0>)"},{"heading":"Problema y utilidad para agentes","level":2,"url":"https://lucioduran.com/es/projects/agent-sandbox-boundaries#problem","content":"Un tiempo máximo en un subproceso no impide que el código generado acceda al sistema de archivos, se conecte a la red o aumente su consumo de memoria. El mecanismo real de aislamiento debe ser explícito.\n\nEl ejecutor procesa WebAssembly binario de tipo core con límites y una interfaz WASI restringida. Rechaza las solicitudes de política no admitidas en lugar de ignorarlas."},{"heading":"Arquitectura","level":2,"url":"https://lucioduran.com/es/projects/agent-sandbox-boundaries#architecture","content":"1. **Validar la política.** Acepta únicamente Wasm binario con límites, cero escrituras del invitado a disco, acceso de red denegado y límites de memoria invitada admitidos.\n2. **Aplicar los límites con Wasmtime.** Cada ejecución usa un proceso de trabajo y un almacén nuevos, límites POSIX de CPU, presupuesto de instrucciones, límites de memoria y tablas del invitado y un plazo de tiempo transcurrido controlado por el proceso padre.\n3. **No conceder capacidades implícitas.** WASI Preview 1 no hereda entorno, argumentos, archivos, directorios ni sockets. Los procesos de trabajo y directorios temporales se limpian al terminar.\n\n- [Diseño y límites de confianza](<https://github.com/lucioduran/agent-sandbox-boundaries/blob/f67487bb807ca84bb1801eaee7cc81f072f71ac4/docs/design.md>)"},{"heading":"Qué demuestra","level":2,"url":"https://lucioduran.com/es/projects/agent-sandbox-boundaries#demonstrates","content":"- Pruebas controladas de recorrido de rutas y límites de recursos con archivos señuelo sintéticos propios.\n- Rechazo explícito de cuotas de disco positivas, acceso de red y límites de memoria del proceso que no se admiten.\n- Registro de la política, el hash del módulo y el resultado observado en cada prueba de límites."},{"heading":"Resultados publicados","level":2,"url":"https://lucioduran.com/es/projects/agent-sandbox-boundaries#results","content":"Diecinueve pruebas de límites y tres comprobaciones de perfiles no admitidos se ejecutaron una vez en un Intel Xeon W-3223, con 48 GiB de RAM, Python 3.11.9 y Wasmtime 50.0.1.\n\nLa matriz comprueba estados y valores esperados, la integridad de los archivos señuelo y la ausencia de archivos creados. Las pruebas de CPU y tiempo transcurrido se ejecutaron bajo el bloqueo exclusivo compartido para mediciones."},{"heading":"Límites de aislamiento observados","level":3,"url":"https://lucioduran.com/es/projects/agent-sandbox-boundaries#results-Observed%20isolation%20boundaries","content":"| Límite | Resultado observado |\n| --- | --- |\n| CPU y ejecución | Agotamiento del presupuesto de instrucciones y terminación por límite de CPU del sistema operativo |\n| Tiempo transcurrido | La espera bloqueante de WASI se detuvo al vencer el plazo del proceso padre |\n| Memoria invitada | Crecimiento denegado; memoria sobredimensionada rechazada; acceso inválido detenido |\n| Sistema de archivos | El recorrido de rutas, el acceso a archivos señuelo y la creación de archivos devolvieron un error de descriptor inválido |\n| Red | Envío por socket denegado; importación para crear sockets rechazada |\n| Ciclo de vida | Argumentos y entorno vacíos; estado nuevo de la instancia |\n| Todos los resultados registrados | 19/19 coincidieron |\n| Perfiles no admitidos | 3/3 rechazados |\n\nWasmtime aporta el mecanismo de aislamiento; el subproceso controla el ciclo de vida y los plazos. Estas observaciones son evidencia sintética de regresión, no una certificación de seguridad ni una garantía de que sea imposible escapar."},{"heading":"Reproducir","level":2,"url":"https://lucioduran.com/es/projects/agent-sandbox-boundaries#reproduce","content":"Python 3.11.9 en macOS o Linux, con Wasmtime fijado en 50.0.1. Instalá los requisitos del repositorio antes de ejecutar las comprobaciones.\n\nEl comando de estrés usa el bloqueo compartido del espacio de trabajo original. En otra instalación, aplicá un bloqueo exclusivo equivalente al mismo módulo de experimento. No ejecutes cargas de estrés concurrentes y usá una ruta de salida nueva. El comando de regresión sin estrés es independiente."},{"heading":"Comprobar los límites admitidos","level":3,"url":"https://lucioduran.com/es/projects/agent-sandbox-boundaries#reproduce-checks","content":"```\ngit clone https://github.com/lucioduran/agent-sandbox-boundaries.git\ncd agent-sandbox-boundaries\ngit checkout f67487bb807ca84bb1801eaee7cc81f072f71ac4\npython3.11 -m venv .venv\n. .venv/bin/activate\npython -m pip install -r requirements-dev.txt\npython -m pytest -q -m 'not stress'\n```"},{"heading":"Repetir el experimento local","level":3,"url":"https://lucioduran.com/es/projects/agent-sandbox-boundaries#reproduce-experiment","content":"```\nOMP_NUM_THREADS=1 MKL_NUM_THREADS=1 OPENBLAS_NUM_THREADS=1 python3 /Users/luchoduran/Sites/open-source-projects/.coordination/benchmark_lock.py .venv/bin/python -m experiments.reproduce --output build/new-boundaries.json\n```"},{"heading":"Alcance y límites","level":2,"url":"https://lucioduran.com/es/projects/agent-sandbox-boundaries#scope","content":"- Los límites de memoria cubren la memoria lineal invitada, no la memoria residente total del proceso de trabajo, las asignaciones del compilador ni toda la memoria del anfitrión.\n- Se confía en el entorno de ejecución y en el sistema operativo. Un motor comprometido queda fuera de este límite.\n- No se admiten montajes del sistema de archivos con escritura, cuotas de disco positivas, captura de salida ni listas de destinos de red permitidos. La evidencia de red comprueba capacidades denegadas, no el comportamiento de un cortafuegos a nivel de paquetes.\n- Solo se admite Wasm de tipo core con WASI Preview 1 en macOS y Linux. Windows y los componentes de Preview 2 se rechazan por defecto. Los llamadores deben limitar la concurrencia.\n\n- [Artículo de arquitectura relacionado](<https://lucioduran.com/es/blog/unikernels-firecracker-microvm-serverless>)"},{"heading":"Fuentes y revisión","level":2,"url":"https://lucioduran.com/es/projects/agent-sandbox-boundaries#sources","content":"El informe registra el momento de ejecución, la revisión de implementación y los hashes de fuentes y módulos. La release revisada contiene esa evidencia. Los hashes de las pruebas con rutas absolutas de archivos señuelo dependen de la ruta temporal original.\n\n- Revisión consultada: [` f67487bb807ca84bb1801eaee7cc81f072f71ac4 `](<https://github.com/lucioduran/agent-sandbox-boundaries/commit/f67487bb807ca84bb1801eaee7cc81f072f71ac4>)\n- Revisión registrada por el experimento: [` bdffaf85ff10f9e28682592af0c9d041c04862f7 `](<https://github.com/lucioduran/agent-sandbox-boundaries/commit/bdffaf85ff10f9e28682592af0c9d041c04862f7>)\n- Fecha del informe (UTC): 2026-11-09T18:32:32.705508+00:00\n- Release publicada: [v0.1.0](<https://github.com/lucioduran/agent-sandbox-boundaries/releases/tag/v0.1.0>) · 2026-11-09T18:34:04Z\n\n- [README y uso](<https://github.com/lucioduran/agent-sandbox-boundaries/blob/f67487bb807ca84bb1801eaee7cc81f072f71ac4/README.md>)\n- [Evidencia original](<https://raw.githubusercontent.com/lucioduran/agent-sandbox-boundaries/f67487bb807ca84bb1801eaee7cc81f072f71ac4/results/boundaries.json>)\n- [Licencia MIT](<https://github.com/lucioduran/agent-sandbox-boundaries/blob/f67487bb807ca84bb1801eaee7cc81f072f71ac4/LICENSE>)\n- [Diseño y límites de confianza](<https://github.com/lucioduran/agent-sandbox-boundaries/blob/f67487bb807ca84bb1801eaee7cc81f072f71ac4/docs/design.md>)\n- [Resumen de resultados](<https://github.com/lucioduran/agent-sandbox-boundaries/blob/f67487bb807ca84bb1801eaee7cc81f072f71ac4/results/boundaries.md>)\n- [Pruebas de límites](<https://github.com/lucioduran/agent-sandbox-boundaries/blob/f67487bb807ca84bb1801eaee7cc81f072f71ac4/experiments/probes.py>)"}],"links":[{"text":"Proyectos","url":"https://lucioduran.com/es/projects"},{"text":"Lucio Durán","url":"https://lucioduran.com/es"},{"text":"MIT","url":"https://github.com/lucioduran/agent-sandbox-boundaries/blob/f67487bb807ca84bb1801eaee7cc81f072f71ac4/LICENSE"},{"text":"Repositorio","url":"https://github.com/lucioduran/agent-sandbox-boundaries"},{"text":"Evidencia original","url":"https://raw.githubusercontent.com/lucioduran/agent-sandbox-boundaries/f67487bb807ca84bb1801eaee7cc81f072f71ac4/results/boundaries.json"},{"text":"Release v0.1.0","url":"https://github.com/lucioduran/agent-sandbox-boundaries/releases/tag/v0.1.0"},{"text":"Diseño y límites de confianza","url":"https://github.com/lucioduran/agent-sandbox-boundaries/blob/f67487bb807ca84bb1801eaee7cc81f072f71ac4/docs/design.md"},{"text":"Resumen de resultados","url":"https://github.com/lucioduran/agent-sandbox-boundaries/blob/f67487bb807ca84bb1801eaee7cc81f072f71ac4/results/boundaries.md"},{"text":"Artículo de arquitectura relacionado","url":"https://lucioduran.com/es/blog/unikernels-firecracker-microvm-serverless"},{"text":"f67487bb807ca84bb1801eaee7cc81f072f71ac4","url":"https://github.com/lucioduran/agent-sandbox-boundaries/commit/f67487bb807ca84bb1801eaee7cc81f072f71ac4"},{"text":"bdffaf85ff10f9e28682592af0c9d041c04862f7","url":"https://github.com/lucioduran/agent-sandbox-boundaries/commit/bdffaf85ff10f9e28682592af0c9d041c04862f7"},{"text":"v0.1.0","url":"https://github.com/lucioduran/agent-sandbox-boundaries/releases/tag/v0.1.0"},{"text":"README y uso","url":"https://github.com/lucioduran/agent-sandbox-boundaries/blob/f67487bb807ca84bb1801eaee7cc81f072f71ac4/README.md"},{"text":"Licencia MIT","url":"https://github.com/lucioduran/agent-sandbox-boundaries/blob/f67487bb807ca84bb1801eaee7cc81f072f71ac4/LICENSE"},{"text":"Pruebas de límites","url":"https://github.com/lucioduran/agent-sandbox-boundaries/blob/f67487bb807ca84bb1801eaee7cc81f072f71ac4/experiments/probes.py"}],"structuredData":[{"@context":"https://schema.org","@graph":[{"@type":"Person","@id":"https://lucioduran.com/#person","name":"Lucio Durán","url":"https://lucioduran.com/"},{"@type":"WebSite","@id":"https://lucioduran.com/#website","url":"https://lucioduran.com/","name":"Lucio Durán","inLanguage":["en","es"],"publisher":{"@id":"https://lucioduran.com/#person"}},{"@type":"WebPage","@id":"https://lucioduran.com/es/projects/agent-sandbox-boundaries#page","url":"https://lucioduran.com/es/projects/agent-sandbox-boundaries","name":"Agent Sandbox Boundaries","description":"Ejecutor efímero con Wasmtime que permite observar los límites de CPU, tiempo transcurrido, memoria invitada y capacidades de acceso al sistema de archivos y la red.","inLanguage":"es","author":{"@id":"https://lucioduran.com/#person"},"publisher":{"@id":"https://lucioduran.com/#person"},"isPartOf":{"@id":"https://lucioduran.com/#website"},"isAccessibleForFree":true,"mainEntity":{"@id":"https://lucioduran.com/projects/agent-sandbox-boundaries#software"},"datePublished":"2026-11-09","dateModified":"2026-11-09","breadcrumb":{"@id":"https://lucioduran.com/es/projects/agent-sandbox-boundaries#breadcrumb"}},{"@type":"SoftwareSourceCode","@id":"https://lucioduran.com/projects/agent-sandbox-boundaries#software","name":"Agent Sandbox Boundaries","description":"Ejecutor efímero con Wasmtime que permite observar los límites de CPU, tiempo transcurrido, memoria invitada y capacidades de acceso al sistema de archivos y la red.","inLanguage":"es","url":"https://lucioduran.com/es/projects/agent-sandbox-boundaries","codeRepository":"https://github.com/lucioduran/agent-sandbox-boundaries","programmingLanguage":"Python","runtimePlatform":"Python 3.11.9 y Wasmtime 50.0.1","license":"https://github.com/lucioduran/agent-sandbox-boundaries/blob/f67487bb807ca84bb1801eaee7cc81f072f71ac4/LICENSE","version":"v0.1.0","identifier":{"@type":"PropertyValue","propertyID":"git-commit","value":"f67487bb807ca84bb1801eaee7cc81f072f71ac4"},"author":{"@type":"Person","@id":"https://lucioduran.com/#person","name":"Lucio Durán","url":"https://lucioduran.com"},"isAccessibleForFree":true,"citation":["https://github.com/lucioduran/agent-sandbox-boundaries/blob/f67487bb807ca84bb1801eaee7cc81f072f71ac4/README.md","https://raw.githubusercontent.com/lucioduran/agent-sandbox-boundaries/f67487bb807ca84bb1801eaee7cc81f072f71ac4/results/boundaries.json","https://github.com/lucioduran/agent-sandbox-boundaries/blob/f67487bb807ca84bb1801eaee7cc81f072f71ac4/docs/design.md","https://github.com/lucioduran/agent-sandbox-boundaries/blob/f67487bb807ca84bb1801eaee7cc81f072f71ac4/results/boundaries.md","https://github.com/lucioduran/agent-sandbox-boundaries/blob/f67487bb807ca84bb1801eaee7cc81f072f71ac4/experiments/probes.py","https://github.com/lucioduran/agent-sandbox-boundaries/releases/tag/v0.1.0"],"publisher":{"@id":"https://lucioduran.com/#person"},"mainEntityOfPage":{"@id":"https://lucioduran.com/es/projects/agent-sandbox-boundaries#page"}},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Proyectos","item":"https://lucioduran.com/es/projects"},{"@type":"ListItem","position":2,"name":"Agent Sandbox Boundaries","item":"https://lucioduran.com/es/projects/agent-sandbox-boundaries"}],"@id":"https://lucioduran.com/es/projects/agent-sandbox-boundaries#breadcrumb"}]}],"contentHash":"7ec31de1f02b0c81c888a09ecd0e764adad4b9761abcf77678745ee7234321ed","provenance":{"method":"Deterministic serialization of the server-rendered main element","source":"https://lucioduran.com/es/projects/agent-sandbox-boundaries","hashAlgorithm":"sha256","hashScope":"JSON document fields before contentHash and provenance","sourceHTMLBytes":47495,"contentBytes":7663}}
