Revisão automática
Revisão automática
Como o Codex encaminha aprovações dos limites da sandbox através de um agente revisor
A revisão automática substitui a aprovação manual nos limites da sandbox por um agente revisor separado. O agente Codex principal continua a ser executado dentro da mesma sandbox, com a mesma política de aprovação e os mesmos limites de rede e do sistema de ficheiros. A diferença reside em quem analisa os pedidos de elevação elegíveis.
Na aplicação ChatGPT para computador, selecionar um modelo Daybreak aprovado
muda automaticamente o controlo de permissões para Approve for me quando esse
modo está disponível para a sua conta e é permitido pela política da organização. Isto
também se aplica quando utiliza o comando /model da aplicação para computador. Se esse modo
não estiver disponível, o modo de permissões atual permanece inalterado. A seleção do modelo
nunca substitui os requisitos geridos da organização.
Antes de ativar Full Access para um modelo de segurança aprovado, a aplicação ChatGPT para computador apresenta um aviso específico do modelo sobre ações perigosas. O aviso recomenda Approve for me como alternativa e inclui uma ligação para a configuração da política do revisor. O aviso não repõe o limite da sandbox nem substitui a política da organização.
Como funciona a revisão automática
Em termos gerais, o fluxo é o seguinte:
- O agente principal trabalha dentro de
read-onlyouworkspace-write. - Quando precisa de ultrapassar os limites da sandbox, solicita aprovação.
- Se
approvals_reviewer = "auto_review", o Codex encaminha esse pedido de aprovação para um agente revisor separado, em vez de parar para aguardar uma pessoa. - O revisor decide se a ação deve ser executada e apresenta uma justificação.
- Se a ação for aprovada, a execução prossegue. Se for recusada, o agente principal recebe instruções para encontrar uma abordagem substancialmente mais segura ou parar e pedir orientação ao utilizador.
A revisão automática substitui o revisor, não concede permissões. Não expande
writable_roots, não ativa o acesso à rede nem reduz a proteção dos caminhos protegidos. Apenas
altera a forma como o Codex trata ações que já necessitam de aprovação.
Quando é acionada
A revisão automática avalia pedidos de aprovação que, de outro modo, interromperiam o fluxo à espera de uma pessoa. Estes incluem:
- Chamadas a ferramentas de shell ou de execução que solicitam permissões elevadas da sandbox.
- Pedidos de rede bloqueados pela sandbox ou política atual.
- Edições de ficheiros fora das raízes com permissão de escrita.
- Chamadas a ferramentas MCP ou de aplicações que necessitam de aprovação com base nas respetivas anotações ou no modo de aprovação configurado.
- Acesso do Computer Use a um novo site ou domínio.
A revisão automática não é executada para ações de rotina já permitidas dentro da
sandbox. Se um comando puder ser executado ao abrigo do sandbox_mode ativo, ou uma chamada de ferramenta
permanecer dentro da política permitida, o agente principal prossegue sem revisão.
O Computer Use constitui um caso distinto. As aprovações de aplicações para o Computer Use continuam a ser apresentadas diretamente ao utilizador, pelo que a revisão automática não substitui esses pedidos ao nível da aplicação.
O que a revisão automática bloqueia
Em termos gerais, a revisão automática foi concebida para bloquear ações como:
- enviar dados privados, segredos ou credenciais para destinos não fidedignos
- procurar credenciais, tokens, cookies ou material de sessão
- enfraquecer a segurança de forma abrangente ou persistente
- realizar ações destrutivas com risco significativo de danos irreversíveis
A política exata encontra-se no repositório Codex de código aberto:
policy_template.md
e
policy.md.
Essa política pode ser personalizada por empresa com guardian_policy_config ou
por utilizador com um [auto_review].policy local.
O que o revisor vê
O próprio revisor é um agente Codex com uma função mais restrita do que a do agente principal: decidir se uma ação específica que ultrapassa os limites deve ser executada.
O revisor vê uma transcrição compacta, juntamente com o pedido de aprovação exato. Esta inclui normalmente mensagens do utilizador, atualizações do assistente apresentadas, chamadas a ferramentas relevantes e resultados das ferramentas, bem como a ação agora proposta para aprovação. Também pode realizar verificações apenas de leitura para obter contexto em falta, embora raramente o faça.
O raciocínio oculto do assistente não é incluído. A revisão automática vê os elementos retidos da conversa e os elementos de prova das ferramentas, não a cadeia de raciocínio privada.
Recusas e comportamento em caso de falha
Uma recusa explícita não é tratada como um erro normal da sandbox. O Codex devolve a justificação da revisão ao agente principal e acrescenta uma instrução mais rigorosa:
- Não tentar alcançar o mesmo resultado através de uma solução alternativa, execução indireta ou evasão da política.
- Prosseguir apenas com uma alternativa substancialmente mais segura.
- Caso contrário, parar e pedir orientação ao utilizador.
O Codex também aplica um disjuntor de recusas por turno. Na implementação
atual de código aberto, a revisão automática interrompe o turno após 3
recusas consecutivas ou 10 recusas numa janela deslizante das últimas 50
revisões no mesmo turno.
Qualquer resultado que não seja uma recusa repõe o contador de recusas consecutivas. Quando o disjuntor é acionado, o Codex emite um aviso e cancela o turno atual com uma interrupção, em vez de permitir que o agente entre num ciclo de novas tentativas de elevação.
Os tempos limite são apresentados separadamente das recusas explícitas, e o agente principal é informado de que um tempo limite, por si só, não prova que a ação não é segura.
Existe também um caminho explícito de substituição para ações recusadas. Na TUI atual
de código aberto, execute /approve para abrir o seletor Recusas da revisão automática e, em seguida,
selecione uma ação recusada recentemente para a aprovar para uma nova tentativa. O Codex regista até 10
recusas recentes por tarefa. Essa aprovação é restrita: aplica-se à ação
recusada exata, não a ações futuras semelhantes; é registada para uma nova tentativa no
mesmo contexto; e a nova tentativa continua a passar pela revisão automática. Internamente,
o Codex injeta um marcador de aprovação no âmbito do programador para essa ação exata. O
revisor vê então essa substituição explícita pelo utilizador como contexto, mas continua a seguir
a política e pode recusar novamente se a política determinar que o utilizador não pode substituir essa categoria de
recusa.
Configuração
Para obter detalhes sobre a configuração, consulte Configuração gerida.
A política predefinida do revisor encontra-se no repositório Codex de código aberto:
core/src/guardian/policy.md.
As empresas podem substituir a respetiva secção específica do inquilino por
guardian_policy_config nos requisitos geridos. Os utilizadores individuais também podem definir
um
[auto_review].policy local
no respetivo config.toml, mas os requisitos geridos têm precedência:
[auto_review]
policy = """
YOUR POLICY GOES HERE
"""Para personalizar a política, copie primeiro todo o texto da política predefinida e, em seguida, ajuste-o iterativamente com base no seu perfil de risco individual.
Configurar uma intervenção de cibersegurança autorizada
Para trabalhos de segurança autorizados, combine a revisão automática com um âmbito de intervenção definido por escrito e um perfil de permissões com o mínimo de privilégios. Utilize um alvo de laboratório aprovado, documente as ações e o período da intervenção e mantenha fora do âmbito os sistemas de produção, os anfitriões não relacionados, as credenciais e as alterações persistentes, salvo autorização explícita.
Tanto [auto_review].policy como guardian_policy_config substituem a sua política
do revisor atual. Não são combinados com políticas incluídas no seu modelo ou
geridas pela sua organização. As instruções de revisão e o formato de resposta
incorporados continuam a aplicar-se. Antes de utilizar qualquer um dos exemplos, copie a política atual
completa, mantenha todas as regras existentes e adicione as regras para o seu trabalho aprovado.
Substitua o marcador de posição em maiúsculas por essa política completa. Se não conseguir
aceder à política atual, não a substitua.
O seguinte modelo local de config.toml ativa a revisão e adiciona condições
específicas após a política do revisor existente:
approval_policy = "on-request"
approvals_reviewer = "auto_review"
default_permissions = ":workspace"
[auto_review]
policy = """
PASTE THE COMPLETE ACTIVE REVIEWER POLICY HERE BEFORE USING THIS EXAMPLE.
## Environment Profile
- Authorized target: lab.example.com.
- Approved actions: inspect the target, reproduce authorized vulnerabilities,
and validate fixes within the documented engagement window.
## Tenant Risk Taxonomy and Allow/Deny Rules
- Allow only actions against the approved target that match the documented
engagement scope and approved actions.
- Deny out-of-scope or unknown hosts, production access, credential theft,
persistence, data exfiltration, destructive operations, and policy bypass.
- Deny ambiguous actions and high-impact changes until a human explicitly
approves the exact target, action, and side effects.
"""Substitua o alvo e as ações permitidas do exemplo pelo âmbito efetivamente aprovado. Imponha restrições ao alvo através de regras independentes do sistema de ficheiros e da rede; as instruções do revisor não substituem esses limites.
As organizações podem impor as mesmas condições num requirements.toml gerido:
allowed_approval_policies = ["on-request"]
allowed_approvals_reviewers = ["auto_review"]
allowed_sandbox_modes = ["read-only", "workspace-write"]
default_permissions = ":workspace"
guardian_policy_config = """
PASTE THE COMPLETE ACTIVE REVIEWER POLICY HERE BEFORE USING THIS EXAMPLE.
## Environment Profile
- Authorized target: lab.example.com.
## Tenant Risk Taxonomy and Allow/Deny Rules
- Allow only approved actions against the documented engagement target.
- Deny out-of-scope hosts, production access, credential theft, persistence,
data exfiltration, destructive operations, and attempts to bypass policy.
- Deny ambiguous or high-impact actions until a human explicitly approves the
exact target, action, and side effects.
"""
[allowed_permission_profiles]
":read-only" = true
":workspace" = true
# ":danger-full-access" is omitted, so it is denied.allowed_permission_profiles controla os perfis de permissões atuais.
allowed_sandbox_modes também impede o acesso total em implementações que ainda utilizam
o sandbox_mode legado.
O guardian_policy_config gerido tem precedência sobre o
[auto_review].policy local de um utilizador. Mantenha approval_policy = "on-request" ou outra
política de aprovação interativa elegível e mantenha um limite de sandbox que possa ser imposto.
Com approval_policy = "never", :danger-full-access ou --yolo, uma ação
pode evitar a criação do pedido de aprovação para atravessar o limite exigido pela revisão.
Um destino de rede incluído na lista de permissões não aciona, por si só, uma revisão. Adicione
regras de comandos explícitas com
decision = "prompt" ou configure ferramentas MCP sensíveis para exigirem aprovação
quando as ações dentro da sandbox ainda tiverem de ser encaminhadas para o revisor.
Consulte Modelos e Trusted Access e a configuração recomendada para obter informações sobre o acesso a modelos, a configuração das operações e os fluxos de trabalho de agentes personalizados. Consulte Configuração gerida para conhecer a precedência empresarial e as versões de clientes suportadas. Para mecanismos personalizados de API ou do Agents SDK, utilize Guardrails e revisão humana.
Reduzir o volume de revisões sem enfraquecer a segurança
A revisão automática funciona melhor quando a sandbox já abrange os seus fluxos de trabalho seguros habituais. Se demasiadas ações rotineiras necessitarem de revisão, corrija primeiro os limites, em vez de ensinar o revisor a aprovar continuamente elevações desnecessárias.
Na prática, as alterações com maior impacto são:
- Adicionar
writable_rootsrestritas para diretórios temporários ou repositórios adjacentes que utiliza intencionalmente. - Adicionar regras de prefixo de âmbito restrito. Prefira prefixos de comandos precisos,
como
["cargo", "test"]ou["pnpm", "run", "lint"], a padrões abrangentes, como["python"]ou["curl"]. As regras abrangentes eliminam frequentemente os próprios limites que a revisão automática se destina a proteger.
Por predefinição, as transcrições das sessões de revisão automática são conservadas em ~/.codex/sessions, pelo que
pode pedir ao Codex para analisar o tráfego anterior nesse local antes de alterar
a política ou as permissões.
Limites
A revisão automática melhora o ponto de funcionamento predefinido para trabalho autónomo de longa duração, mas não constitui uma garantia de segurança determinística.
- Avalia apenas ações que solicitam a ultrapassagem de um limite.
- Pode ainda cometer erros, especialmente em contextos adversos ou invulgares.
- Deve complementar, e não substituir, uma boa conceção da sandbox, a monitorização e a política específica da organização.
Para consultar a fundamentação da investigação e os resultados de avaliação publicados, consulte a publicação da Alignment Research sobre a revisão automática.