Guia de harnesses
Um papel descreve a responsabilidade. Um harness fornece runtime, ferramentas, permissões, contexto e ciclo de vida. Um destino escolhe onde a sessão será executada. Um ambiente contém os arquivos e processos.
---
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 sessão e harnesses de agentes
accDescr: Os destinos Local e Copilot selecionam runtimes diferentes, enquanto o destino Cloud seleciona um agente remoto disponível.
U["Objetivo do usuário"] --> T{"Destino da sessão"}
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["Cloud agent disponível<br/>Ambiente remoto efêmero"]
LH --> R["Ask · Plan · Agent · Agente personalizado"]
CH --> R
CA --> PR["Branch e pull request"]
Legenda. O losango é a decisão de seleção do destino. Os retângulos descrevem runtimes, papéis de agentes e o artefato remoto de revisão; as setas contínuas mostram relações de seleção.
Explicação. Local é o nome de um harness, não toda execução local. Papéis, destinos e runtimes respondem a perguntas diferentes; um pull request remoto é um artefato de saída.
[!IMPORTANT] Local é o nome de um harness do VS Code, não um sinônimo de toda execução local. Cloud é um destino remoto que pode expor cloud agents disponíveis; não é um único harness universal.
Guia de decisão
| Superfície ou harness | Considere quando | Verifique antes de usar |
|---|---|---|
| VS Code Local harness | O trabalho depende do estado do editor, de ferramentas fornecidas por extensões ou de arquivos de prompt | Extensões, confiança no workspace, modelo, aprovações e permissões locais |
| VS Code Copilot harness | O trabalho precisa de sessões do Agent Host, execução em segundo plano, isolamento de pasta/worktree ou skills portáveis | Ferramentas, políticas, modelo, destino da sessão e isolamento |
| GitHub Copilot CLI | A investigação e a execução centradas no terminal são adequadas | Diretório atual, aprovações, variáveis de ambiente, runtimes e estado do repositório |
| Cloud target / cloud agent | Uma tarefa delimitada do repositório pode ser executada remotamente e retornar um pull request pronto para revisão | Acesso ao repositório, configuração, segredos, rede, proteção de branches e plano de revisão |
| Aplicação com Copilot SDK | Você está incorporando intencionalmente um runtime de agente em um produto | SDK com suporte, autenticação, separação entre locatários, ferramentas, permissões, observabilidade e implantação |
Isolamento não é permissão
---
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: Isolamento e permissão são controles diferentes
accDescr: Sessões isolam a conversa, worktrees isolam o código, sandboxes restringem processos e aprovações expressam consentimento para operações.
S["Sessão"] --> C["Isolamento da conversa"]
W["Worktree"] --> F["Isolamento do código"]
B["Sandbox"] --> P["Política de processos / sistema de arquivos"]
A["Aprovações"] --> O["Consentimento por operação"]
Legenda. Os retângulos nomeiam controles e suas responsabilidades. As setas contínuas conectam cada controle ao que ele realmente governa.
Explicação. Uma worktree não é um sandbox de segurança. O isolamento do código, a política de processos e a aprovação de operações devem ser considerados individualmente ao selecionar um ambiente de execução.
Uma worktree evita colisões entre branches; por si só, não restringe comandos, rede nem acesso fora da worktree.
Antes de uma transferência
- Declare o objetivo e as exclusões.
- Nomeie o repositório, a branch e os caminhos relevantes.
- Forneça comandos de configuração e validação.
- Separe fatos confirmados de suposições.
- Defina condições de parada e artefatos esperados.
- Nunca coloque segredos em prompts, arquivos-fonte ou evidências capturadas.
Pratique com Os Portais de Nexus.