Guía de harnesses
Un rol describe la responsabilidad. Un harness proporciona el entorno de ejecución, las herramientas, los permisos, el contexto y el ciclo de vida. Un destino elige dónde se ejecuta la sesión. Un entorno contiene los archivos y procesos.
---
config:
theme: base
look: classic
themeVariables:
darkMode: false
background: "#ffffff"
primaryColor: "#f5f5f5"
primaryTextColor: "#111111"
primaryBorderColor: "#555555"
secondaryColor: "#e0e0e0"
secondaryTextColor: "#111111"
secondaryBorderColor: "#666666"
tertiaryColor: "#bdbdbd"
tertiaryTextColor: "#111111"
tertiaryBorderColor: "#444444"
lineColor: "#444444"
textColor: "#111111"
mainBkg: "#f5f5f5"
nodeBorder: "#555555"
clusterBkg: "#ffffff"
clusterBorder: "#999999"
edgeLabelBackground: "#ffffff"
actorBkg: "#e0e0e0"
actorBorder: "#555555"
actorTextColor: "#111111"
actorLineColor: "#777777"
signalColor: "#333333"
signalTextColor: "#111111"
labelBoxBkgColor: "#f5f5f5"
labelBoxBorderColor: "#777777"
labelTextColor: "#111111"
loopTextColor: "#111111"
activationBkgColor: "#bdbdbd"
activationBorderColor: "#555555"
noteBkgColor: "#f5f5f5"
noteTextColor: "#111111"
noteBorderColor: "#777777"
attributeBackgroundColorOdd: "#f5f5f5"
attributeBackgroundColorEven: "#e0e0e0"
---
flowchart TB
accTitle: Destinos de sesión y harnesses de agentes
accDescr: Los destinos Local y Copilot seleccionan distintos entornos de ejecución, mientras que el destino Cloud selecciona un agente remoto disponible.
U["Objetivo del usuario"] --> T{"Destino de sesión"}
T --> L["Destino Local"]
T --> C["Destino Copilot"]
T --> CL["Destino Cloud"]
L --> LH["VS Code Local harness<br/>Extension host"]
C --> CH["Copilot harness<br/>Agent Host + Copilot SDK"]
CL --> CA["Agente en la nube disponible<br/>Entorno remoto efímero"]
LH --> R["Ask · Plan · Agent · Agente personalizado"]
CH --> R
CA --> PR["Rama y pull request"]
Leyenda. El rombo es la decisión de selección del destino. Los rectángulos describen entornos de ejecución, roles de agentes y el artefacto de revisión remota; las flechas continuas muestran relaciones de selección.
Explicación. Local es el nombre de un harness, no toda ejecución local. Los roles, los destinos y los entornos de ejecución responden a preguntas diferentes; una pull request remota es un artefacto de salida.
[!IMPORTANT] Local es el nombre de un harness de VS Code, no un sinónimo de toda ejecución local. Cloud es un destino remoto que puede ofrecer agentes en la nube disponibles; no es un harness universal.
Guía de decisión
| Superficie o harness | Considéralo cuando | Verifica antes de usarlo |
|---|---|---|
| VS Code Local harness | El trabajo depende del estado del editor, de herramientas proporcionadas por extensiones o de archivos de prompts | Extensiones, confianza del espacio de trabajo, modelo, aprobaciones y permisos locales |
| VS Code Copilot harness | El trabajo necesita sesiones de Agent Host, ejecución en segundo plano, aislamiento de carpetas o worktrees, o skills portables | Herramientas, políticas, modelo, destino de sesión y aislamiento |
| GitHub Copilot CLI | La investigación y ejecución centradas en el terminal son apropiadas | Directorio actual, aprobaciones, variables de entorno, entornos de ejecución y estado del repositorio |
| Cloud target / cloud agent | Una tarea acotada del repositorio puede ejecutarse de forma remota y devolver una pull request revisable | Acceso al repositorio, preparación, secretos, red, protección de ramas y plan de revisión |
| Copilot SDK application | Estás integrando intencionalmente un entorno de ejecución de agentes en un producto | SDK compatible, autenticación, gestión de inquilinos, herramientas, permisos, observabilidad y despliegue |
El aislamiento no es un permiso
---
config:
theme: base
look: classic
themeVariables:
darkMode: false
background: "#ffffff"
primaryColor: "#f5f5f5"
primaryTextColor: "#111111"
primaryBorderColor: "#555555"
secondaryColor: "#e0e0e0"
secondaryTextColor: "#111111"
secondaryBorderColor: "#666666"
tertiaryColor: "#bdbdbd"
tertiaryTextColor: "#111111"
tertiaryBorderColor: "#444444"
lineColor: "#444444"
textColor: "#111111"
mainBkg: "#f5f5f5"
nodeBorder: "#555555"
clusterBkg: "#ffffff"
clusterBorder: "#999999"
edgeLabelBackground: "#ffffff"
actorBkg: "#e0e0e0"
actorBorder: "#555555"
actorTextColor: "#111111"
actorLineColor: "#777777"
signalColor: "#333333"
signalTextColor: "#111111"
labelBoxBkgColor: "#f5f5f5"
labelBoxBorderColor: "#777777"
labelTextColor: "#111111"
loopTextColor: "#111111"
activationBkgColor: "#bdbdbd"
activationBorderColor: "#555555"
noteBkgColor: "#f5f5f5"
noteTextColor: "#111111"
noteBorderColor: "#777777"
attributeBackgroundColorOdd: "#f5f5f5"
attributeBackgroundColorEven: "#e0e0e0"
---
flowchart LR
accTitle: El aislamiento y los permisos son controles diferentes
accDescr: Las sesiones aíslan la conversación, los worktrees aíslan el código, los entornos aislados limitan los procesos y las aprobaciones expresan consentimiento para las operaciones.
S["Sesión"] --> C["Aislamiento de la conversación"]
W["Worktree"] --> F["Aislamiento del código"]
B["Entorno aislado"] --> P["Política de procesos / sistema de archivos"]
A["Aprobaciones"] --> O["Consentimiento por operación"]
Leyenda. Los rectángulos nombran los controles y sus responsabilidades. Las flechas continuas conectan cada control con lo que realmente regula.
Explicación. Un worktree no es un entorno aislado de seguridad. El aislamiento del código, las políticas de procesos y la aprobación de operaciones deben considerarse individualmente al seleccionar un entorno de ejecución.
Un worktree evita colisiones entre ramas; por sí solo no restringe los comandos, la red ni el acceso fuera del worktree.
Antes de una transferencia
- Establece el objetivo y los objetivos excluidos.
- Nombra el repositorio, la rama y las rutas relevantes.
- Proporciona los comandos de preparación y validación.
- Separa los hechos confirmados de las suposiciones.
- Define las condiciones de detención y los artefactos esperados.
- Nunca incluyas secretos en prompts, archivos fuente ni evidencia capturada.
Practica con Los portales de Nexus.