Arquitetura de agentes: criando harnesses de desenvolvimento com IA
# O sistema completo para criar harnesses de agentes de IA em produção. Skills, hooks, memória, subagentes, orquestração multiagente e os padrões que tornam agentes de codificação com IA uma infraestrutura confiável.
TL;DR: Claude Code não é uma caixa de chat com acesso a arquivos. É um runtime programável com 29 eventos de ciclo de vida documentados, cada um conectável a hooks com scripts de shell que o modelo não consegue pular. Empilhe hooks em dispatchers, dispatchers em skills, skills em agents, agents em workflows, e você obtém um harness de desenvolvimento autônomo que aplica restrições, delega trabalho, persiste memória entre sessões e orquestra deliberação multi-agent. Claude Code v2.1.147 adicionou a ferramenta
Workflowdesativada por padrão (CLAUDE_CODE_WORKFLOWS=1), levando a orquestração multi-agent determinística de scripts puramente em userland para um primitivo de runtime first-party; a v2.1.149 reforça a mesma lição pelo lado da segurança, com correções de bypass de permissões no PowerShell e uma correção de allowlist do sandbox de git-worktree. Hooks e evidence gates ainda são responsáveis pela correção.5253 Este guia cobre todas as camadas desse stack: de um único hook a um sistema de consenso com 10 agents. Sem frameworks. Tudo em bash e JSON.
Andrej Karpathy criou um termo para o que cresce ao redor de um agent LLM: claws. Os hooks, scripts e a orquestração que permitem ao agent agarrar o mundo fora da sua janela de contexto.1 A maioria dos desenvolvedores trata agents de coding com AI como assistentes interativos. Eles digitam um prompt, observam o agent editar um arquivo e seguem em frente. Esse enquadramento limita a produtividade ao que você consegue supervisionar pessoalmente.
O modelo mental de infraestrutura é diferente: um agent de coding com AI é um runtime programável com um kernel LLM. Toda ação que o modelo executa passa por hooks que você controla. Você define políticas, não prompts. O modelo opera dentro da sua infraestrutura do mesmo modo que um servidor web opera dentro das regras do nginx. Você não fica sentado no nginx digitando requisições. Você configura, implanta e monitora.
A distinção importa porque infraestrutura se acumula. Um hook que bloqueia credenciais em comandos bash protege todas as sessões, todos os agents, todas as execuções autônomas. Uma skill que codifica sua rubrica de avaliação se aplica de forma consistente, seja quando você a invoca ou quando um agent faz isso. Um agent que revisa código em busca de problemas de segurança executa as mesmas verificações, esteja você observando ou não.2
Principais pontos
- Hooks garantem execução; prompts não. Use hooks para linting, formatação, verificações de segurança e qualquer coisa que precise rodar sempre, independentemente do comportamento do modelo. O código de saída 2 bloqueia ações. O código de saída 1 apenas avisa.3
- Skills codificam expertise de domínio que é ativada automaticamente. O campo
descriptiondetermina tudo. Claude usa raciocínio LLM (não correspondência por palavras-chave) para decidir quando aplicar uma skill.4 - Subagents evitam inchaço de contexto. Janelas de contexto isoladas para exploração e análise mantêm a sessão principal enxuta. Execute subagents independentes em paralelo e use equipes de agents quando os workers precisarem de coordenação contínua.5
- A memória vive no sistema de arquivos. Arquivos persistem entre janelas de contexto. CLAUDE.md, MEMORY.md, diretórios de rules e documentos de handoff formam um sistema estruturado de memória externa.6
- A deliberação multi-agent encontra pontos cegos. Agents individuais não conseguem desafiar as próprias suposições. Dois agents independentes com prioridades de avaliação diferentes encontram falhas estruturais que quality gates não conseguem resolver.7
- O padrão de harness é o sistema. CLAUDE.md, hooks, skills, agents e memória não são recursos independentes. Eles se compõem em uma camada determinística entre você e o modelo, que escala com automação.
Como usar este guia
| Experiência | Comece aqui | Depois explore |
|---|---|---|
| Usa Claude Code diariamente e quer mais | O padrão de harness | Sistema de skills, Arquitetura de hooks |
| Cria workflows autônomos | Padrões de subagents | Orquestração multi-agent, Padrões de produção |
| Avalia arquitetura de agents | Por que a arquitetura de agents importa | Framework de decisão, Considerações de segurança |
| Configura um harness de equipe | Design do CLAUDE.md | Arquitetura de hooks, Cartão de referência rápida |
Cada seção se baseia na anterior. O Framework de decisão no final fornece uma tabela de consulta para escolher o mecanismo certo para cada tipo de problema.
Caminho Direto de Cinco Minutos
Antes do mergulho profundo, aqui está o caminho mais curto do zero a um harness funcional. Um hook, um skill, um subagent, um resultado.
Passo 1: Criar um hook de segurança (2 minutos)
Crie .claude/hooks/block-secrets.sh:
#!/bin/bash
INPUT=$(cat)
CMD=$(echo "$INPUT" | jq -r '.tool_input.command // empty')
if echo "$CMD" | grep -qEi '(AKIA|sk-|ghp_|password=)'; then
echo "BLOCKED: Potential secret in command" >&2
exit 2
fi
Conecte-o em .claude/settings.json:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [{ "type": "command", "command": ".claude/hooks/block-secrets.sh" }]
}
]
}
}
Resultado: Todo comando bash que o Claude executa agora é verificado em busca de credenciais vazadas. O modelo não pode pular essa verificação.
Passo 2: Criar um skill de revisão de código (1 minuto)
Crie .claude/skills/reviewer/SKILL.md com frontmatter (name: reviewer, description: Review code for security issues, bugs, and quality problems. Use when examining changes, reviewing PRs, or auditing code., allowed-tools: Read, Grep, Glob) e um checklist: SQL injection, XSS, segredos hardcoded, tratamento de erros ausente, funções com mais de 50 linhas.
Resultado: Claude ativa automaticamente esse conhecimento sempre que você mencionar revisar, verificar ou auditar.
Passo 3: Invocar um subagent (30 segundos)
Em qualquer sessão do Claude Code, peça ao Claude para revisar os últimos 3 commits em busca de problemas de segurança usando um agent separado. O Claude invoca um Explore agent que lê o diff, aplica o seu skill de revisão e retorna um resumo. Seu contexto principal permanece limpo.
O que você tem agora
Um harness de três camadas: um portão de segurança determinístico (hook), conhecimento de domínio que ativa automaticamente (skill) e análise isolada que protege seu contexto (subagent). Cada seção abaixo expande uma dessas três camadas.
Por que a arquitetura de agents importa
Simon Willison enquadra o momento atual em torno de uma única observação: escrever código ficou barato agora.8 Correto. Mas o corolário é que a verificação agora é a parte cara. Código barato sem infraestrutura de verificação produz bugs em escala. O investimento que compensa não é um prompt melhor. É o sistema em torno do modelo que captura o que o modelo deixa passar.
Três forças tornam a arquitetura de agents necessária:
Context windows são finitas e sujeitas a perdas. Cada arquivo lido, saída de tool e turno de conversa consome tokens. A Microsoft Research e a Salesforce testaram 15 LLMs em mais de 200.000 conversas simuladas e encontraram uma queda média de desempenho de 39% da interação de turno único para multi-turno.9 A degradação começa em tão poucos quanto dois turnos e segue uma curva previsível: edições precisas em múltiplos arquivos nos primeiros 30 minutos degeneram em visão de túnel em um único arquivo por volta do minuto 90. Context windows mais longas não resolvem isso. A condição “Concat” do mesmo estudo (conversa completa como um único prompt) alcançou 95,1% do desempenho de turno único com conteúdo idêntico. A degradação vem dos limites entre turnos, não dos limites de tokens.
O comportamento do modelo é probabilístico, não determinístico. Dizer ao Claude “sempre execute o Prettier após editar arquivos” funciona aproximadamente 80% das vezes.3 O modelo pode esquecer, priorizar velocidade ou decidir que a mudança é “pequena demais”. Para compliance, segurança e padrões de equipe, 80% não é aceitável. Hooks garantem a execução: todo Edit ou Write aciona seu formatador, toda vez, sem exceções. Determinístico vence probabilístico.
Perspectivas únicas deixam passar problemas multidimensionais. Um único agent revisando um endpoint API verificou autenticação, validou sanitização de entrada e conferiu cabeçalhos CORS. Atestado de saúde impecável. Um segundo agent, instruído separadamente como pentester, descobriu que o endpoint aceitava parâmetros de consulta ilimitados que podiam disparar negação de serviço através de amplificação de consultas ao banco de dados.7 O primeiro agent nunca verificou porque nada em seu framework de avaliação tratava a complexidade de consultas como superfície de segurança. Essa lacuna é estrutural. Nenhuma quantidade de prompt engineering corrige isso.
A arquitetura de agents aborda as três questões: hooks impõem restrições determinísticas, subagents gerenciam isolamento de contexto e a orquestração multi-agent fornece perspectivas independentes. Juntos, eles formam o harness.
O padrão Harness
O harness não é um framework. É um padrão: um conjunto componível de arquivos, scripts e convenções que envolvem um agente de codificação de IA em uma infraestrutura determinística. Os componentes:
┌──────────────────────────────────────────────────────────────┐
│ THE HARNESS PATTERN │
├──────────────────────────────────────────────────────────────┤
│ ORCHESTRATION │
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ │
│ │ Agent │ │ Agent │ │ Consensus │ │
│ │ Teams │ │ Spawning │ │ Validation│ │
│ └────────────┘ └────────────┘ └────────────┘ │
│ Multi-agent deliberation, parallel research, voting │
├──────────────────────────────────────────────────────────────┤
│ EXTENSION LAYER │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Skills │ │ Hooks │ │ Memory │ │ Agents │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ Domain expertise, deterministic gates, persistent state, │
│ specialized subagents │
├──────────────────────────────────────────────────────────────┤
│ INSTRUCTION LAYER │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ CLAUDE.md + .claude/rules/ + MEMORY.md │ │
│ └──────────────────────────────────────────────────────┘ │
│ Project context, operational policy, cross-session memory │
├──────────────────────────────────────────────────────────────┤
│ CORE LAYER │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ Main Conversation Context (LLM) │ │
│ └──────────────────────────────────────────────────────┘ │
│ Your primary interaction; finite context; costs money │
└──────────────────────────────────────────────────────────────┘
Camada de instrução: os arquivos CLAUDE.md e os diretórios de rules definem o que o agente sabe sobre o seu projeto. Eles são carregados automaticamente no início da sessão e após cada compactação. Esta é a memória arquitetural de longo prazo do agente.
Camada de extensão: as skills fornecem expertise de domínio que se ativa automaticamente com base no contexto. Os hooks fornecem portões determinísticos que disparam em cada chamada de ferramenta correspondente. Os arquivos de memória persistem o estado entre sessões. Os agents personalizados fornecem configurações de subagents especializados.
Camada de orquestração: os padrões multi-agent coordenam agentes independentes para pesquisa, revisão e deliberação. Orçamentos de spawn previnem recursão descontrolada. A validação por consenso garante a qualidade.
A percepção principal: a maioria dos usuários trabalha inteiramente na Camada Core, observando o contexto inflar e os custos subirem. Usuários avançados configuram as camadas de Instrução e Extensão e, em seguida, usam a Camada Core apenas para orquestração e decisões finais.2
Harnesses gerenciados vs. auto-hospedados (abril de 2026)
Durante o início de 2026, o caminho de “construa seu próprio harness” era a única opção real. Em abril de 2026, isso mudou. Anthropic lançou os Claude Managed Agents em beta público (8 de abril): loop do harness + execução de ferramentas + container de sandbox + persistência de estado como uma REST API, cobrada por tokens padrão mais $0,08/sessão-hora. A atualização Agents SDK da OpenAI (16 de abril) formalizou a mesma divisão — harness e computação como camadas separadas, com provedores nativos de sandbox (Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, Vercel) e snapshot/rehydrate para sobreviver à perda de container.2324
A superfície SDK mais profunda do lado da OpenAI chegou no openai-agents Python v0.14.0 (lançado em 15 de abril de 2026; anunciado em 16 de abril): uma subclasse SandboxAgent de Agent com default_manifest, instruções de sandbox e capabilities; um Manifest descrevendo o contrato de workspace recém-criado (arquivos, dirs, arquivos locais, repositórios Git, env, users, mounts); um SandboxRunConfig para configuração por execução do cliente de sandbox, injeção de sessão ao vivo, sobrescritas de manifest, snapshots e limites de concorrência de materialização. As capabilities integradas cobrem acesso ao shell, edição de filesystem, inspeção de imagens, skills, memória de sandbox e compactação. A memória de sandbox persiste lições extraídas entre execuções e as divulga progressivamente; workspaces suportam arquivos locais, entradas de repositório Git e mounts remotos (S3, R2, GCS, Azure Blob, S3 Files); snapshots são portáveis entre provedores. Backends: UnixLocalSandboxClient, DockerSandboxClient e clientes hospedados para Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop e Vercel via extras opcionais.24
Para projetos Python que querem incorporar o runtime do Claude Code como uma biblioteca — entre “executar claude via shell” e “REST API para Managed Agents” — o claude-agent-sdk-python é a terceira opção. A série de 28-29 de abril (v0.1.69 → v0.1.71) atualizou o CLI embutido para v2.1.123, elevou o piso da dependência mcp para >=1.19.0 (versões mais antigas descartavam silenciosamente os retornos de CallToolResult das ferramentas in-process do MCP, deixando o modelo com um blob de erro de validação) e trouxe SandboxNetworkConfig para paridade de schema com o SDK TypeScript (allowedDomains, deniedDomains, allowManagedDomainsOnly, allowMachLookup).30
Se o seu harness inclui uma camada de voz ou realtime, o openai-agents-python v0.17.0 (8 de maio de 2026) atualizou o RealtimeAgent para usar gpt-realtime-2 por padrão.41 As sessões realtime existentes adotam o novo padrão automaticamente; fixe explicitamente o modelo anterior se você precisar manter o comportamento antigo para avaliação.
A bifurcação arquitetural agora é real:
| Dimensão | Harness auto-hospedado (padrão deste guia) | Harness gerenciado (Claude Managed Agents / OpenAI Agents SDK) |
|---|---|---|
| Sobrecarga operacional | Você executa tudo | O fornecedor executa loop, sandbox, estado |
| Personalização | Total — seus hooks, suas skills, sua memória | Limitada — pontos de extensão definidos pelo fornecedor |
| Modelo de custo | Token + computação auto-hospedada | Token + prêmio por hora de runtime |
| Durabilidade do estado | Você projeta | O fornecedor faz checkpoints entre desconexões |
| Orquestração de equipe de agents | Construa o seu próprio | Coordenação multi-agent fornecida pelo fornecedor |
Quando escolher cada um: auto-hospedado continua sendo o caminho certo para equipes que já têm músculo de infraestrutura, querem skills/hooks que controlam, ou estão otimizando profundamente um workflow específico. Gerenciado é o caminho certo para equipes sem engenheiros de plataforma dedicados, quando o tempo até o valor importa mais do que personalização, ou quando as execuções de agents precisam sobreviver ao fechamento do laptop de forma confiável sem você construir essa camada de persistência. Os dois são compatíveis — você pode rodar um harness auto-hospedado que delega tarefas específicas de longa duração para Managed Agents via sua REST API.
Como o harness se parece em disco
~/.claude/
├── CLAUDE.md # Personal global instructions
├── settings.json # User-level hooks and permissions
├── skills/ # Personal skills (44+)
│ ├── code-reviewer/SKILL.md
│ ├── security-auditor/SKILL.md
│ └── api-designer/SKILL.md
├── agents/ # Custom subagent definitions
│ ├── security-reviewer.md
│ └── code-explorer.md
├── rules/ # Categorized rule files
│ ├── security.md
│ ├── testing.md
│ └── git-workflow.md
├── hooks/ # Hook scripts
│ ├── validate-bash.sh
│ ├── auto-format.sh
│ └── recursion-guard.sh
├── configs/ # JSON configuration
│ ├── recursion-limits.json
│ └── deliberation-config.json
├── state/ # Runtime state
│ ├── recursion-depth.json
│ └── agent-lineage.json
├── handoffs/ # Session handoff documents
│ └── deliberation-prd-7.md
└── projects/ # Per-project memory
└── {project}/memory/MEMORY.md
.claude/ # Project-level (in repo)
├── CLAUDE.md # Project instructions
├── settings.json # Project hooks
├── skills/ # Team-shared skills
├── agents/ # Team-shared agents
└── rules/ # Project rules
Cada arquivo nesta estrutura serve a um propósito. A árvore ~/.claude/ é a infraestrutura pessoal que se aplica a todos os projetos. A árvore .claude/ em cada repositório é específica do projeto e compartilhada via git. Juntas, elas formam o harness completo.
Sistema de skills
Skills são extensões invocadas pelo modelo. Claude as descobre e aplica automaticamente com base no contexto, sem você chamá-las explicitamente.4 O momento em que você percebe que está explicando de novo o mesmo contexto em sessões diferentes é o momento de criar uma skill.
Quando criar uma skill
| Situação | Crie um… | Por quê |
|---|---|---|
| Você cola o mesmo checklist em toda sessão | Skill | Especialização de domínio que se ativa automaticamente |
| Você executa explicitamente a mesma sequência de comandos | Slash command | Ação invocada pelo usuário com gatilho previsível |
| Você precisa de uma análise isolada que não deve poluir o contexto | Subagent | Janela de contexto separada para trabalho focado |
| Você precisa de um prompt pontual com instruções específicas | Nada | Apenas digite. Nem tudo precisa de abstração. |
Skills servem para conhecimento que Claude sempre tem disponível. Slash commands servem para ações que você aciona explicitamente. Se você estiver decidindo entre os dois, pergunte: “Claude deve aplicar isso automaticamente ou eu devo decidir quando executar?”
Como criar uma skill
Skills ficam em quatro locais possíveis, do escopo mais amplo ao mais restrito:4
| Escopo | Local | Aplica-se a |
|---|---|---|
| Enterprise | Configurações gerenciadas | Todos os usuários na organização |
| Pessoal | ~/.claude/skills/<name>/SKILL.md |
Todos os seus projetos |
| Projeto | .claude/skills/<name>/SKILL.md |
Apenas este projeto |
| Plugin | <plugin>/skills/<name>/SKILL.md |
Onde o plugin está habilitado |
Toda skill exige um arquivo SKILL.md com frontmatter YAML:
---
name: code-reviewer
description: Review code for security vulnerabilities, performance issues,
and best practice violations. Use when examining code changes, reviewing
PRs, analyzing code quality, or when asked to review, audit, or check code.
allowed-tools: Read, Grep, Glob
---
# Code Review Expertise
## Security Checks
When reviewing code, verify:
### Input Validation
- All user input sanitized before database operations
- Parameterized queries (no string interpolation in SQL)
- Output encoding for rendered HTML content
### Authentication
- Session tokens validated on every protected endpoint
- Permission checks before data mutations
- No hardcoded credentials or API keys in source
Referência de frontmatter
| Campo | Obrigatório | Finalidade |
|---|---|---|
name |
Sim | Identificador único (minúsculas, hífens, máximo de 64 caracteres) |
description |
Sim | Gatilho de descoberta (máximo de 1024 caracteres). Claude usa isso para decidir quando aplicar a skill |
allowed-tools |
Não | Restringe as capacidades de Claude (por exemplo, Read, Grep, Glob para somente leitura) |
disable-model-invocation |
Não | Impede ativação automática; a skill só é ativada via /skill-name |
user-invocable |
Não | Defina como false para ocultar totalmente do menu / |
model |
Não | Sobrescreve qual modelo usar quando a skill está ativa |
context |
Não | Defina como fork para executar em uma janela de contexto isolada |
agent |
Não | Executa como um subagent com seu próprio contexto isolado |
hooks |
Não | Define hooks de ciclo de vida com escopo limitado a esta skill |
$ARGUMENTS |
Não | Substituição de string: substituído pela entrada do usuário após /skill-name |
O campo description é tudo
No início da sessão, Claude Code extrai o name e a description de cada skill e injeta essas informações no contexto de Claude. Quando você envia uma mensagem, Claude usa raciocínio de modelo de linguagem para decidir se alguma skill é relevante. Uma análise independente do código-fonte de Claude Code confirma o mecanismo: as descrições das skills são injetadas em uma seção available_skills do prompt de sistema, e o modelo usa compreensão de linguagem padrão para selecionar skills relevantes.10
Descrição ruim:
description: Helps with code
Descrição eficaz:
description: Review code for security vulnerabilities, performance issues,
and best practice violations. Use when examining code changes, reviewing
PRs, analyzing code quality, or when asked to review, audit, or check code.
A descrição eficaz inclui: o que ela faz (revisar código para tipos específicos de problemas), quando usá-la (examinar alterações, PRs, análise de qualidade) e frases-gatilho (review, audit, check) que os usuários digitam naturalmente.
Orçamento de contexto
Todas as descrições de skills compartilham um orçamento de contexto que escala dinamicamente em 1% da janela de contexto, com fallback de 8.000 caracteres.4 Se você tem muitas skills, mantenha cada descrição concisa e coloque o principal caso de uso primeiro. Você pode sobrescrever o orçamento pela variável de ambiente SLASH_COMMAND_TOOL_CHAR_BUDGET,11 mas a melhor correção é usar descrições mais curtas e precisas. Execute /context durante uma sessão para verificar se alguma skill está sendo excluída.
Arquivos de suporte e organização
Skills podem referenciar arquivos adicionais no mesmo diretório:
~/.claude/skills/code-reviewer/
├── SKILL.md # Required: frontmatter + core expertise
├── SECURITY_PATTERNS.md # Referenced: detailed vulnerability patterns
└── PERFORMANCE_CHECKLIST.md # Referenced: optimization guidelines
Referencie-os a partir do SKILL.md com links relativos. Claude lê esses arquivos sob demanda quando a skill é ativada. Mantenha SKILL.md com menos de 500 linhas e mova material de referência detalhado para arquivos de suporte.12
Compartilhando skills via Git
Skills de projeto (.claude/skills/ na raiz do repo) são compartilhadas via controle de versão:4
mkdir -p .claude/skills/domain-expert
# ... write SKILL.md ...
git add .claude/skills/
git commit -m "feat: add domain-expert skill for payment processing rules"
git push
Quando colegas fazem pull, eles recebem a skill automaticamente. Sem instalação, sem configuração. Essa é a forma mais eficaz de padronizar conhecimento especializado em uma equipe.
Skills como uma biblioteca de prompts
Além de skills de propósito único, a estrutura de diretórios funciona como uma biblioteca organizada de prompts:
~/.claude/skills/
├── code-reviewer/ # Activates on: review, audit, check
├── api-designer/ # Activates on: design API, endpoint, schema
├── sql-analyst/ # Activates on: query, database, migration
├── deploy-checker/ # Activates on: deploy, release, production
└── incident-responder/ # Activates on: error, failure, outage, debug
Cada skill codifica uma faceta diferente da sua especialização. Juntas, elas formam uma base de conhecimento da qual Claude extrai automaticamente conforme o contexto. Um desenvolvedor júnior recebe orientação de nível sênior sem precisar pedir.
Skills se compõem com hooks
Skills podem definir seus próprios hooks no frontmatter, ativados apenas enquanto a skill é executada. Isso cria comportamento específico de domínio sem poluir outras sessões:2
---
name: deploy-checker
description: Verify deployment readiness. Use when preparing to deploy,
release, or push to production.
hooks:
PreToolUse:
- matcher: Bash
hooks:
- type: command
command: "bash -c 'INPUT=$(cat); CMD=$(echo \"$INPUT\" | jq -r \".tool_input.command\"); if echo \"$CMD\" | grep -qE \"deploy|release|publish\"; then echo \"DEPLOYMENT COMMAND DETECTED. Running pre-flight checks.\" >&2; fi'"
---
Skills de filosofia são ativadas automaticamente via hooks SessionStart, injetando restrições de qualidade em toda sessão sem invocação explícita. A skill em si é conhecimento. O hook é fiscalização. Juntos, eles formam uma camada de políticas.
Erros comuns com skills
Descrições amplas demais. Uma skill git-rebase-helper que ativa em qualquer prompt relacionado a git (rebases, merges, cherry-picks, até git status) polui o contexto em 80% das sessões. A correção é refinar a descrição ou adicionar disable-model-invocation: true e exigir invocação explícita com /skill-name.4
Skills demais competindo por orçamento. Mais skills significa mais descrições competindo pelo orçamento de contexto de 1%. Se você perceber que skills não estão ativando, verifique em /context quais foram excluídas. Priorize menos skills, bem descritas, em vez de muitas skills vagas.
Informações críticas enterradas em arquivos de suporte. Claude lê SKILL.md imediatamente, mas só acessa arquivos de suporte quando necessário. Se informações críticas estiverem em um arquivo de suporte, Claude talvez não as encontre. Coloque informações essenciais diretamente no SKILL.md.4
Superfície de skills de SDK (8 de maio de 2026)
Harnesses self-hosted em claude-agent-sdk-python v0.1.77+ devem usar a opção skills em ClaudeAgentOptions para declarar as skills disponíveis, não o valor legado "Skill" em allowed_tools.37 O atalho "Skill" está obsoleto, e a opção dedicada fornece a Claude Code informações mais estruturadas sobre quais skills estão disponíveis. O CLI incluído na v0.1.77 é v2.1.133.
Convergência de plugins e skills em .claude/skills/ (29 de maio de 2026)
Skills sempre foram carregadas a partir do diretório .claude/skills/ de um projeto. Claude Code v2.1.157 estende esse diretório para plugins: um plugin colocado em .claude/skills/ agora é carregado automaticamente sem registro em marketplace, e claude plugin init <name> cria o scaffold de um novo plugin ali, com o manifesto e o SKILL.md já conectados.58 Isso fecha a lacuna entre os dois formatos de tooling de projeto que antes ficavam em lugares diferentes: uma skill simples commitada direto no repo, versus um plugin que empacota uma skill mais hooks mais um servidor MCP, mas que antes precisava de um marketplace para instalação. O efeito prático para design de harness: tooling com escopo de projeto não precisa mais passar por um registro para ser entregue; escreva, faça commit, e os colegas recebem a mesma superfície com git pull. Plugins ainda são responsáveis pelo caso de uso de instalação empacotada (hooks + skills + servidores MCP + agents em um ZIP); a mudança é que um projeto não precisa mais manter um marketplace só para carregar um plugin da própria árvore.
Ocultar a superfície incluída como governança (8 de junho de 2026)
Skills são capacidade, e capacidade é superfície de ataque. Claude Code v2.1.169 adiciona uma configuração disableBundledSkills (e a variável de ambiente correspondente CLAUDE_CODE_DISABLE_BUNDLED_SKILLS) que oculta totalmente do modelo as skills incluídas, os workflows e os slash commands integrados.60 Para um harness hardened ou regulado, isso é uma redução deliberada da superfície de ataque: um operador que auditou e aprovou um conjunto específico de skills de projeto e pessoais pode suprimir tudo que Anthropic entrega por padrão, para que o modelo raciocine apenas sobre a superfície validada pelo operador. Trate isso da mesma forma que você trata uma allowlist de ferramentas: o padrão é capacidade ampla, e desativar o padrão é uma decisão de governança, não um toggle de conveniência.
.claude/skills aninhados e resolução pelo mais próximo (16 de junho de 2026)
Claude Code v2.1.178 tornou o tooling de projeto ciente de localização. Skills em diretórios .claude/skills aninhados agora carregam quando você trabalha em arquivos dentro desse diretório, não apenas a partir da raiz do repo; quando há conflito de nome, a skill aninhada aparece como <dir>:<name>, para que ambas continuem acessíveis.63 A mesma versão fez o restante da superfície de projeto resolver pelo diretório mais próximo do diretório de trabalho: quando um nome de agent, workflow ou output-style colide entre diretórios .claude/ aninhados, vence aquele mais próximo do diretório de trabalho, e um salvamento de workflow com escopo de projeto mira o .claude/workflows/ existente mais próximo, em vez de sempre usar a raiz.63 Para um monorepo ou um repo de repos, essa é a diferença entre uma superfície global plana e tooling por pacote que ativa em contexto: um services/api/.claude/skills/ pode carregar skills específicas de API que aparecem apenas enquanto você trabalha naquela árvore, sem colidir com uma skill de mesmo nome em services/web/.
Arquitetura de hooks
Hooks são comandos shell acionados por eventos de ciclo de vida do Claude Code.3 Eles rodam fora do LLM como scripts simples, não como prompts interpretados pelo modelo. O modelo quer executar rm -rf /? Um script bash de 10 linhas verifica o comando contra uma blocklist e o rejeita antes que o shell sequer o veja. O hook dispara quer o modelo queira ou não.
Eventos disponíveis
O Claude Code expõe 29 eventos de ciclo de vida documentados em oito categorias até esta atualização do guia. A lista de eventos cresce com os lançamentos, então trate a documentação de referência como a fonte da verdade e confira a folha de referência para ver a tabela completa atual antes de conectar hooks de produção:13
| Categoria | Eventos | Pode bloquear? |
|---|---|---|
| Sessão | SessionStart, Setup, SessionEnd |
Não |
| Usuário / conclusão | UserPromptSubmit, UserPromptExpansion, Stop, StopFailure, TeammateIdle |
Prompt/expansão/stop/idle podem bloquear; StopFailure não pode |
| Ferramenta | PreToolUse, PermissionRequest, PermissionDenied, PostToolUse, PostToolUseFailure, PostToolBatch |
Pre/permission/batch podem bloquear; eventos post não podem |
| Subagent / tarefa | SubagentStart, SubagentStop, TaskCreated, TaskCompleted |
Eventos stop/tarefa podem bloquear; start não pode |
| Contexto | PreCompact, PostCompact, InstructionsLoaded |
PreCompact pode bloquear; post/load não podem |
| Sistema de arquivos / workspace | CwdChanged, FileChanged, WorktreeCreate, WorktreeRemove |
Criação de worktree pode bloquear; os outros não podem |
| Configuração / notificação | ConfigChange, Notification |
Mudanças de configuração podem bloquear, exceto configurações de política; notificações não podem |
| MCP | Elicitation, ElicitationResult |
Sim |
Semântica de códigos de saída
Os códigos de saída determinam se hooks bloqueiam ações:3
| Código de saída | Significado | Ação |
|---|---|---|
| 0 | Sucesso | A operação prossegue. Stdout é mostrado no modo detalhado. |
| 2 | Erro bloqueante | A operação para. Stderr vira a mensagem de erro enviada ao Claude. |
| 1, 3, etc. | Erro não bloqueante | A operação continua. Stderr aparece apenas no modo detalhado (Ctrl+O). |
Crítico: Todo hook de segurança deve usar exit 2, não exit 1. Exit 1 é um aviso não bloqueante. O comando perigoso ainda é executado. Esse é o erro mais comum com hooks entre equipes.14
Configuração de hooks
Hooks ficam em arquivos de configurações. No nível do projeto (.claude/settings.json) para hooks compartilhados. No nível do usuário (~/.claude/settings.json) para hooks pessoais:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": ".claude/hooks/validate-bash.sh"
}
]
}
],
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "bash -c 'if [[ \"$FILE_PATH\" == *.py ]]; then black --quiet \"$FILE_PATH\" 2>/dev/null; fi'"
}
]
}
]
}
}
O campo matcher filtra um valor específico do evento. Para eventos de ferramenta, ele corresponde a valores de tool_name como Bash, Edit, Write, Read, Glob, Grep, nomes de ferramentas MCP como mcp__server__tool, ou * para todas as ferramentas. Nomes simples e listas separadas por | são correspondências exatas; valores com outros caracteres são expressões regulares JavaScript. Alguns eventos não têm suporte a matchers e sempre disparam quando configurados.13
Protocolo de entrada/saída de hooks
Hooks recebem JSON em stdin com o contexto completo:
{
"tool_name": "Bash",
"tool_input": {
"command": "npm test",
"description": "Run test suite"
},
"session_id": "abc-123",
"agent_id": "main",
"agent_type": "main"
}
Para controle avançado, hooks PreToolUse podem gerar JSON para modificar a entrada da ferramenta, injetar contexto ou tomar decisões de permissão. Use o wrapper hookSpecificOutput — o formato antigo de nível superior decision/reason está obsoleto para PreToolUse:
{
"hookSpecificOutput": {
"hookEventName": "PreToolUse",
"permissionDecision": "allow",
"permissionDecisionReason": "Command validated and modified",
"updatedInput": {
"command": "npm test -- --coverage --ci"
},
"additionalContext": "Note: This database has a 5-second query timeout."
}
}
Três tipos de garantias
Antes de escrever qualquer hook, pergunte: que tipo de garantia eu preciso?14
Garantias de formatação asseguram consistência depois do fato. Hooks PostToolUse em Write/Edit executam seu formatador após cada alteração de arquivo. A saída do modelo não importa porque o formatador normaliza tudo.
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "bash -c 'if [[ \"$FILE_PATH\" == *.py ]]; then black --quiet \"$FILE_PATH\" 2>/dev/null; elif [[ \"$FILE_PATH\" == *.js ]] || [[ \"$FILE_PATH\" == *.ts ]]; then npx prettier --write \"$FILE_PATH\" 2>/dev/null; fi'"
}
]
}
]
}
}
Garantias de segurança impedem ações perigosas antes que elas sejam executadas. Hooks PreToolUse em Bash inspecionam comandos e bloqueiam padrões destrutivos com código de saída 2:
#!/bin/bash
# validate-bash.sh — block dangerous commands
INPUT=$(cat)
CMD=$(echo "$INPUT" | jq -r '.tool_input.command')
if echo "$CMD" | grep -qE "rm\s+-rf\s+/|git\s+push\s+(-f|--force)\s+(origin\s+)?main|git\s+reset\s+--hard|DROP\s+TABLE"; then
echo "BLOCKED: Dangerous command detected: $CMD" >&2
exit 2
fi
Garantias de qualidade validam o estado em pontos de decisão. Hooks PreToolUse em comandos git commit executam seu linter ou suíte de testes e bloqueiam o commit se as verificações de qualidade falharem:
#!/bin/bash
# quality-gate.sh — lint before commit
INPUT=$(cat)
CMD=$(echo "$INPUT" | jq -r '.tool_input.command')
if echo "$CMD" | grep -qE "^git\s+commit"; then
if ! LINT_OUTPUT=$(ruff check . --select E,F,W 2>&1); then
echo "LINT FAILED -- fix before committing:" >&2
echo "$LINT_OUTPUT" >&2
exit 2
fi
fi
Tipos de hooks além de comandos shell
O Claude Code oferece suporte a cinco tipos de hooks:13
Command hooks (type: "command") executam scripts shell. Rápidos, determinísticos, sem custo de tokens.
Hooks de ferramenta MCP (type: "mcp_tool") chamam uma ferramenta em um servidor MCP já conectado. Use quando a lógica de validação já fica atrás de uma fronteira MCP e não precisa de um script shell separado.
Prompt hooks (type: "prompt") enviam um prompt de turno único para um modelo Claude rápido. O modelo retorna { "ok": true } para permitir ou { "ok": false, "reason": "..." } para bloquear. Use para avaliações com nuance que regex não consegue expressar.
Agent hooks (type: "agent") geram um subagent com acesso a ferramentas (Read, Grep, Glob) para verificação em múltiplos turnos. Eles são experimentais; prefira command hooks para gates de produção e reserve agent hooks para verificações que realmente exigem inspecionar arquivos reais ou saída de testes:
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "agent",
"prompt": "Verify all unit tests pass. Run the test suite and check results. $ARGUMENTS",
"timeout": 120
}
]
}
]
}
}
A partir do Claude Code v2.1.140, a entrada de agent hook inclui subagent_type, o que permite que um hook compartilhado diferencie uma execução de security-reviewer de um explorer ou worker genérico sem adivinhar pelo texto do prompt.49
HTTP hooks (type: "http") enviam a entrada JSON do evento como uma requisição POST para uma URL e recebem JSON de volta. Use para webhooks, serviços externos de notificação ou validação baseada em API (v2.1.63+). Não há suporte para eventos SessionStart:
{
"hooks": {
"PostToolUse": [
{
"hooks": [
{
"type": "http",
"url": "https://your-webhook.example.com/hook",
"headers": { "Authorization": "Bearer $WEBHOOK_TOKEN" },
"allowedEnvVars": ["WEBHOOK_TOKEN"],
"timeout": 10
}
]
}
]
}
}
Hooks assíncronos
Hooks podem rodar em segundo plano sem bloquear a execução. Adicione async: true para operações não críticas como notificações e logging:13
{
"type": "command",
"command": ".claude/hooks/notify-slack.sh",
"async": true
}
Use async para notificações, telemetria e backups. Nunca use async para formatação, validação ou qualquer coisa que precise terminar antes da próxima ação.
Dispatchers em vez de hooks independentes
Executar sete hooks que disparam no mesmo evento, cada um lendo stdin independentemente, cria condições de corrida. Dois hooks escrevendo simultaneamente no mesmo arquivo de estado JSON vão truncar o JSON. Todo hook downstream que faz parse desse arquivo quebra.2
A correção: um dispatcher por evento que executa hooks sequencialmente a partir de stdin em cache:
#!/bin/bash
# dispatcher.sh — run hooks sequentially with cached stdin
INPUT=$(cat)
HOOK_DIR="$HOME/.claude/hooks/pre-tool-use.d"
for hook in "$HOOK_DIR"/*.sh; do
[ -x "$hook" ] || continue
echo "$INPUT" | "$hook"
EXIT_CODE=$?
if [ "$EXIT_CODE" -eq 2 ]; then
exit 2 # Propagate block
fi
done
Debugging de hooks
Cinco técnicas para fazer debugging de hooks que falham silenciosamente:14
- Teste scripts de forma independente. Faça pipe de um JSON de exemplo:
echo '{"tool_input":{"command":"git commit -m test"}}' | bash your-hook.sh - Use stderr para saída de debug. Stderr com código de saída 2 é enviado de volta ao Claude como mensagem de erro. Stderr não bloqueante (exit 1, 3, etc.) aparece apenas no modo detalhado (Ctrl+O).
- Fique atento a falhas do jq. Caminhos JSON incorretos retornam
nullsilenciosamente. Teste expressõesjqcontra entradas reais de ferramenta. - Verifique códigos de saída. Um hook PreToolUse que usa
exit 1oferece zero enforcement mesmo parecendo funcionar. - Mantenha hooks rápidos. Hooks rodam de forma síncrona. Mantenha todos os hooks abaixo de 2 segundos, idealmente abaixo de 500 ms.
Streaming de eventos de hook do lado do SDK
Harnesses self-hosted criados com claude-agent-sdk-python (v0.1.74+, 6 de maio de 2026) podem assinar eventos de hook diretamente do stream de mensagens, em vez de passar por callbacks de scripts shell.36 Defina include_hook_events=True em ClaudeAgentOptions e objetos HookEventMessage (PreToolUse, PostToolUse, Stop e outros) saem do mesmo iterator que mensagens do assistente e resultados de ferramentas. Isso espelha a opção includeHookEvents do TypeScript SDK; o CLI incluído foi atualizado para v2.1.129 no mesmo release.
O padrão de event-stream é o encaixe certo quando seu harness já vive em Python e você quer sinais de hooks no mesmo fluxo de controle da saída do modelo. O contrato de hook por script shell (códigos de saída, stdin JSON, dispatchers) continua sendo a resposta certa para harnesses que compõem múltiplas ferramentas, compartilham hooks entre Claude Code e Codex, ou precisam de semântica de código de saída para bloqueio.
Esforço e proveniência de sessão (7-8 de maio de 2026)
Duas adições no Claude Code v2.1.132 e v2.1.133 dão a hooks e subprocessos um sinal melhor sobre seu contexto de execução:3839
effort.levelna entrada do hook. Hooks agora recebem um campo JSONeffort.levelna mesma entrada que carregatool_inputesession_id. O mesmo valor é exportado como a variável de ambiente$CLAUDE_EFFORT, então comandos Bash podem lê-lo sem fazer parse de JSON. Use isso para dimensionar o custo do hook conforme o nível de esforço: pule validação cara emlow, execute o gate de segurança completo emxhighoumax.- Variável de ambiente
CLAUDE_CODE_SESSION_IDem subprocessos Bash. Subprocessos da ferramenta Bash agora veem o mesmo valorsession_idque os hooks veem, exposto comoCLAUDE_CODE_SESSION_ID. Isso fecha a lacuna de proveniência para ferramentas que registram estado por sessão e antes não conseguiam correlacionar eventos de subprocesso com eventos de hook.
Ambos os sinais estão disponíveis sem mudanças de código; hooks existentes que ignoram os novos campos continuam funcionando.
autoMode.hard_deny e correções de hooks/plugins na v2.1.136 (8 de maio de 2026)
O Claude Code v2.1.136 adicionou uma nova camada hard-deny ao auto mode e corrigiu um conjunto de problemas de plugin e MCP que afetavam harnesses de longa duração:40
settings.autoMode.hard_deny. Regras do classificador de auto mode que bloqueiam incondicionalmente, independentemente da intenção do usuário ou de exceções allow. Isso fica acima dos matchers allow/deny existentes como uma alavanca de governança inegociável. Use para regras que nunca devem ser sobrescritas (force-push para main, arquivos com segredos, acesso a banco de dados de produção), mesmo quando um operador aprovou a categoria mais ampla em suas configurações pessoais.- Servidores MCP não desaparecem mais depois de
/clear. Servidores configurados em.mcp.json, plugins e connectors do claude.ai estavam saindo silenciosamente do conjunto ativo depois de um/clearna extensão do VS Code, no plugin JetBrains e no Agent SDK. A correção chega na v2.1.136. Se você viu “MCP server X went missing mid-session”, essa era a causa. - Perda de refresh-token OAuth do MCP em refresh concorrente. Usuários com vários servidores MCP remotos não devem mais precisar de reautenticação diária. Escritas de refresh concorrentes estavam sobrescrevendo umas às outras.
- Plan mode agora bloqueia gravações de arquivos corretamente. Uma regra allow correspondente a
Edit(...)estava contornando a proteção contra escrita do plan mode. Agora o plan mode é aplicado independentemente de regras allow. - Hooks
StopeUserPromptSubmitde plugin não falham mais no meio da sessão. A limpeza de cache estava apagando arquivos de versão de plugin ainda em uso pela sessão em execução, quebrando especificamente esses dois eventos de hook. A correção mantém versões em uso fixadas. - Entrada
skillsemplugin.json. Definirskillsestava ocultando a pasta padrãoskills/do plugin. Agora a entrada compõe corretamente, e apontá-la para um caminho de arquivo gera um erro explícito em vez de falhar silenciosamente. - Variáveis de ambiente de hook SessionStart em
CLAUDE_ENV_FILEficando obsoletas. Vars exportadas por hooks SessionStart viaCLAUDE_ENV_FILEficavam obsoletas depois de/resumeou/clear. Corrigido na v2.1.136. Sessões agora recarregam o arquivo env nesses eventos.
Para harnesses de governança, os itens operacionalmente interessantes são autoMode.hard_deny (nova alavanca) e a correção do desaparecimento de MCP (falha silenciosa que quebrava sessões longas). Todo o resto é melhoria de qualidade de vida.
Argumentos estruturados de hook e continuação após bloqueio (11 de maio de 2026)
O Claude Code v2.1.139 adicionou dois detalhes de hook importantes para harnesses de produção: uma forma exec args: string[] para command hooks e continueOnBlock para hooks PostToolUse.4244 Prefira args quando um hook precisa de valores dinâmicos ou placeholders de caminho. Ele inicia o comando diretamente sem shell, o que remove uma classe inteira de erros de aspas e injeção.
Use continueOnBlock quando um hook PostToolUse deve enviar seu motivo de rejeição de volta ao Claude e continuar o turno em vez de encerrar o fluxo. Trate isso como um recurso de experiência do operador, não como um bypass de segurança. Um gate bloqueante ainda deve bloquear o resultado inseguro.
O mesmo release passa CLAUDE_PROJECT_DIR para servidores stdio MCP e permite que configs de plugin referenciem ${CLAUDE_PROJECT_DIR} em comandos.42 Ferramentas MCP devem resolver caminhos relativos ao projeto a partir desse valor, não a partir do diretório de trabalho do processo que por acaso iniciou o servidor.
O Claude Code v2.1.140 é principalmente um release de confiabilidade para operadores de harness: corrige hooks ConfigChange que não disparavam em mudanças de configurações, fecha casos de borda em que disableAllHooks e allowManagedHooksOnly não se compunham corretamente entre níveis de configurações, e impede que diálogos de permissão exponham variáveis de ambiente não intencionais retornadas por resultados de hook.49 Isso torna os padrões de governança existentes nesta seção mais confiáveis; não exige uma nova arquitetura de hooks.
O Claude Code v2.1.141 adiciona um campo terminalSequence na saída de hook para notificações de desktop, títulos de janela e sons sem um terminal controlador.50 Trate isso como sinalização ao operador, não enforcement. Gates de segurança e qualidade ainda devem comunicar falhas pelo contrato normal de bloqueio: saída estruturada de hook mais o comportamento de saída que impede a ação insegura. O mesmo release adiciona claude agents --cwd <path> para limitar o Agent View a um diretório, CLAUDE_CODE_PLUGIN_PREFER_HTTPS para instalações de plugin em ambientes sem chaves GitHub SSH, e ANTHROPIC_WORKSPACE_ID para regras de federação de identidade de workload que cobrem mais de um workspace.50 Esses são detalhes de arquitetura para harnesses de equipe: visões operacionais mais estreitas, menos suposições de instalação de plugin e escopo explícito de token empresarial.
O Claude Code v2.1.142 é mais importante para orquestração de sessões em segundo plano do que para semântica de hooks.51 claude agents agora pode despachar sessões em segundo plano com flags explícitas de diretório, configurações, MCP, plugin, permissão, modelo e esforço, em vez de depender do estado de wrappers. Fast mode agora usa Opus 4.7 por padrão; fixe CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1 apenas se um harness tiver dependência medida do comportamento do Opus 4.6. A descoberta de SKILL.md de plugin no nível raiz e a visibilidade de LSP fornecida por plugin reduzem ambiguidade de empacotamento. Correções em MCP_TOOL_TIMEOUT, worktrees preexistentes de sessões em segundo plano, sleep/wake de daemon e limpeza pós-upgrade, além de limpeza de cache de plugin, fecham lacunas de confiabilidade que, de outro modo, parecem bugs de orquestração.
Direcionamento por Stop-hook, autoridade entre sessões e multi-agent v2 (junho de 2026)
Quatro mudanças do início de junho importam para o design de harness e multi-agent.59
Hooks Stop/SubagentStop ganharam um canal de direcionamento. A partir do Claude Code v2.1.163, um hook Stop ou SubagentStop pode retornar hookSpecificOutput.additionalContext para entregar feedback ao Claude e manter o turno em andamento, sem que a resposta seja rotulada como erro de hook. Antes disso, a única alavanca real de um Stop hook era o bloqueio exit-2, que é lido como erro e conta para o limite de bloqueios consecutivos. Para um harness com quality gate, esse é o primitivo mais limpo: um Stop hook que detecta “você disse que terminou, mas os testes estão vermelhos” agora pode injetar “isto ainda está falhando, continue” em vez de hard-block. Use o bloqueio para condições reais de parada e additionalContext para “ainda não terminou, aqui está o motivo.”
Mensagens entre sessões não carregam mais autoridade emprestada. A v2.1.166 endureceu o caso multi-session: mensagens retransmitidas via SendMessage de outra sessão Claude não carregam mais a autoridade do usuário de origem, então uma sessão receptora recusa solicitações de permissão retransmitidas e o auto mode as bloqueia. Se sua orquestração faz agents enviarem mensagens entre si, trate uma mensagem recebida como dados não confiáveis, não como uma instrução autenticada. Esse é o mesmo princípio que a seção de segurança aplica à saída de ferramentas, estendido para mensagens entre agentes.
Resiliência de modelo virou uma configuração de primeira classe. A configuração fallbackModel agora encadeia até três modelos de backup, tentados em ordem quando o primário está sobrecarregado ou indisponível, e um turno faz retry automático uma vez no fallback para erros API inesperados e não repetíveis. Para um harness autônomo de longa duração, isso transforma uma indisponibilidade transitória do modelo primário em degradação graciosa, em vez de uma execução perdida. claude agents --json também adicionou um campo waitingFor (v2.1.162) que mostra o que uma sessão em segundo plano bloqueada está aguardando, como um prompt de permissão — um ganho de observabilidade para qualquer coordenador que esteja fazendo polling de uma frota de agentes.
Safe mode para governança em clean room e troubleshooting. O Claude Code v2.1.169 adiciona uma flag --safe-mode (e a variável de ambiente correspondente CLAUDE_CODE_SAFE_MODE) que inicia uma sessão com toda personalização desativada de uma vez: CLAUDE.md, plugins, skills, hooks e servidores MCP.60 Isso é o inverso do harness — uma clean room deliberada. Use para responder à pergunta que todo operador acaba fazendo: “esse comportamento vem do modelo ou de algo que eu configurei?” Quando um hook dispara errado, uma skill ativa quando não deveria, ou um servidor MCP contamina o contexto, --safe-mode dá uma linha de base sabidamente vazia para comparar. Também é um primitivo de governança: uma forma de executar o modelo puro sem nenhuma autoridade persistente que seu harness normalmente concede, o que importa quando você precisa reproduzir um resultado sem qualquer scaffolding definido pelo operador influenciando-o.
Uma observação sobre tiers de modelo. Este guia trata o Opus 4.8 como o padrão agentic do Claude Code — o modelo que executa harnesses autônomos, a menos que você selecione outro. Em 9 de junho de 2026, a Anthropic lançou o Claude Fable 5 (claude-fable-5), um novo tier acima do Opus descrito como seu modelo mais poderoso — um sistema “Mythos-class” tornado seguro para uso geral — selecionável no Claude Code v2.1.170 via /model claude-fable-5.60 O Opus 4.8 continua sendo o padrão agentic; use o tier superior deliberadamente, nas decisões em que a profundidade bruta de raciocínio justifica o custo, não como uma configuração genérica para uma frota.
Codex lançou multi-agent v2. O Codex CLI v0.137.0 mantém a escolha de runtime em cada thread, expõe padrões mais limpos de follow-up e metadata para agents gerados (hide_spawn_agent_metadata agora é true por padrão) e propaga eventos brutos do parent para listeners child. Seu modelo de subagent continua explícito: tipos de agent built-in default/worker/explorer, agents customizados definidos em TOML e controles de concorrência (agents.max_threads padrão 6, agents.max_depth padrão 1). O mesmo release adiciona uma extensão de skills v1 com resolução de catálogo de skills por turno e novos eventos contribuintes de ciclo de vida thread-start/turn-error, reduzindo a distância em relação à superfície de hooks/skills do Claude Code, enquanto mantém a postura de kernel-sandbox como a fronteira padrão. Em seguida, o Codex v0.138.0–v0.139.0 endureceu o multi-agent v2 para produção: payloads de mensagens entre agents agora são criptografados, um catálogo de configs de agent v2 mais um LRU de residência de agents gerenciam quais agents ficam residentes, e a concorrência é contabilizada por execução ativa, não por threads geradas, então agents ociosos não consomem mais um slot.61 O ciclo de vida API também amadureceu — close_agent foi renomeado para interrupt_agent (v0.139.0) para refletir que ele interrompe um agent em execução, em vez de apenas fechar um handle — e avisos de inicialização MCP gerados por um subagent agora ficam restritos à thread proprietária, em vez de duplicarem no transcript do parent.61 Para qualquer pessoa criando orquestração do lado do Codex, essa é a diferença entre uma demo e uma frota: transporte de mensagens criptografado, residência limitada, concorrência contada por execução e avisos que não vazam pela fronteira de thread. O Codex v0.140.0 então abriu uma junção entre ferramentas: /import puxa seletivamente setup, config de projeto e chats recentes do Claude Code para o Codex, e sessões passaram a ser deletáveis permanentemente (codex delete / /delete, com salvaguardas de confirmação).64 /import é o primeiro reconhecimento oficial de que operadores se movem entre harnesses — a configuração que você cria para um não fica mais presa nele.
Memória e contexto
Toda conversa com AI opera dentro de uma janela de contexto finita. Conforme a conversa cresce, o sistema comprime turnos anteriores para abrir espaço para novo conteúdo. A compressão tem perdas. Decisões de arquitetura documentadas no turno 3 podem não sobreviver até o turno 15.9
Os três mecanismos do colapso em múltiplos turnos
O estudo da MSR/Salesforce identificou três mecanismos independentes, cada um exigindo uma intervenção diferente:9
| Mecanismo | O que acontece | Intervenção |
|---|---|---|
| Compressão de contexto | Informações anteriores são descartadas para caber novo conteúdo | Checkpoint de estado no filesystem |
| Perda de coerência de raciocínio | O modelo contradiz suas próprias decisões anteriores ao longo dos turnos | Iteração com contexto novo (Ralph loop) |
| Falha de coordenação | Vários agents mantêm snapshots de estado diferentes | Protocolos de estado compartilhado entre agents |
Estratégia 1: filesystem como memória
A memória mais confiável entre limites de contexto vive no filesystem. Claude Code lê CLAUDE.md e arquivos de memória no início de cada sessão e depois de cada compactação.6
~/.claude/
├── configs/ # 14 JSON configs (thresholds, rules, budgets)
│ ├── deliberation-config.json
│ ├── recursion-limits.json
│ └── consensus-profiles.json
├── hooks/ # 95 lifecycle event handlers
├── skills/ # 44 reusable knowledge modules
├── state/ # Runtime state (recursion depth, agent lineage)
├── handoffs/ # 49 multi-session context documents
├── docs/ # 40+ system documentation files
└── projects/ # Per-project memory directories
└── {project}/memory/
└── MEMORY.md # Always loaded into context
O arquivo MEMORY.md captura erros, decisões e padrões entre sessões. Quando você descobre que ((VAR++)) falha com set -e no bash quando VAR é 0, registre isso. Três sessões depois, quando você encontra um caso de borda inteiro parecido em Python, a entrada no MEMORY.md revela o padrão.15
Auto Memory (v2.1.32+): Claude Code registra e recupera automaticamente o contexto do projeto. Enquanto você trabalha, Claude escreve observações em ~/.claude/projects/{project-path}/memory/MEMORY.md. A auto memory carrega as primeiras 200 linhas no seu system prompt no início da sessão. Mantenha o conteúdo conciso e use links para arquivos de tópicos separados quando precisar de notas detalhadas.6
Curadoria de memória em vez de volume de memória (maio de 2026): Um preprint recente do arXiv sobre cooperação entre agents LLM enquadra a expansão da recuperação como um possível modo de falha: nos experimentos dos autores, um histórico visível mais longo prejudicou a cooperação em 18 de 28 configurações de modelo-jogo.48 Trate isso como um alerta de design, não como uma lei definitiva. A regra de produção já é clara o bastante: mantenha MEMORY.md curto, faça links para os detalhes e coloque resumos prontos para decisão nos handoffs. Dumps brutos de transcript, logs de ferramentas e feeds longos de recuperação pertencem ao armazenamento pesquisável, não automaticamente ao prompt ativo.
Estratégia 2: compactação proativa
O comando /compact do Claude Code resume a conversa e libera espaço de contexto enquanto preserva decisões importantes, conteúdos de arquivos e o estado da tarefa.15
Quando compactar: - Depois de concluir uma subtarefa distinta (funcionalidade implementada, bug corrigido) - Antes de começar uma nova área do codebase - Quando Claude começar a repetir ou esquecer contexto anterior - Aproximadamente a cada 25-30 minutos durante sessões intensivas
Instruções personalizadas de compactação no CLAUDE.md:
# Summary Instructions
When using compact, focus on:
- Recent code changes
- Test results
- Architecture decisions made this session
A compactação protege a conversa; o comando /cd (Claude Code v2.1.169) protege o prompt cache. Ele move uma sessão para um novo diretório de trabalho no meio do fluxo sem quebrar o cache acumulado ao longo do turno.60 Antes disso, trocar de diretório significava uma sessão nova e um cache frio. Para uma sessão longa que muda de um repositório para outro irmão — comum em trabalhos com monorepo e múltiplos serviços — /cd mantém intacto o prefixo caro em cache enquanto redireciona o contexto do filesystem.
Estratégia 3: handoffs de sessão
Para tarefas que abrangem várias sessões, crie documentos de handoff que capturem o estado completo:
## Handoff: Deliberation Infrastructure PRD-7
**Status:** Hook wiring complete, 81 Python unit tests passing
**Files changed:** hooks/post-deliberation.sh, hooks/deliberation-pride-check.sh
**Decision:** Placed post-deliberation in PostToolUse:Task, pride-check in Stop
**Blocked:** Spawn budget model needs inheritance instead of depth increment
**Next:** PRD-8 integration tests in tests/test_deliberation_lib.py
A estrutura Status/Files/Decision/Blocked/Next fornece à sessão sucessora contexto completo com custo mínimo de tokens. Começar uma nova sessão com claude -c (continue) ou lendo o documento de handoff leva direto à implementação.15
Estratégia 4: iteração com contexto novo (o Ralph Loop)
Para sessões que passam de 60-90 minutos, gere uma nova instância de Claude por iteração. O estado persiste pelo filesystem, não pela memória conversacional. Cada iteração recebe o orçamento completo de contexto:16
Iteration 1: [200K tokens] -> writes code, creates files, updates state
Iteration 2: [200K tokens] -> reads state from disk, continues
Iteration 3: [200K tokens] -> reads updated state, continues
...
Iteration N: [200K tokens] -> reads final state, verifies criteria
Compare com uma única sessão longa:
Minute 0: [200K tokens available] -> productive
Minute 30: [150K tokens available] -> somewhat productive
Minute 60: [100K tokens available] -> degraded
Minute 90: [50K tokens available] -> significantly degraded
Minute 120: [compressed, lossy] -> errors accumulate
A abordagem de um contexto novo por iteração troca 15-20% de overhead pela etapa de orientação (ler arquivos de estado, examinar o histórico do git) em troca de recursos cognitivos completos por iteração.16 O cálculo de custo-benefício: para sessões abaixo de 60 minutos, uma única conversa é mais eficiente. Acima de 90 minutos, contexto novo produz uma saída de maior qualidade apesar do overhead.
Estratégia 5: curadoria gerenciada de memória (Dreaming)
Os Managed Agents de Claude da Anthropic adicionaram Dreaming como Research Preview em 6 de maio de 2026.35 Segundo a Anthropic: “Dreaming is a scheduled process that reviews your agent sessions and memory stores, extracts patterns, and curates memories so your agents improve over time.”35
Dreaming roda em segundo plano entre sessões, não no caminho crítico. Ele complementa, em vez de substituir, o padrão de filesystem como memória: seu arquivo MEMORY.md continua sendo a superfície de sustentação; Dreaming escreve entradas de memória curadas no armazenamento de memória dos Managed Agents, que o agent lê no início da sessão. Os dois padrões coexistem para harnesses que misturam estado em filesystem self-hosted com curadoria no lado gerenciado.
| Memória no filesystem | Dreaming (gerenciado) | |
|---|---|---|
| Onde a memória vive | Seu repo, com controle de versão | Armazenamento de memória gerenciado pela Anthropic |
| Quando ela atualiza | Você escreve entradas manualmente ou via hooks | Processo em segundo plano entre sessões |
| O que ela captura | Decisões, erros, padrões que você marca | Padrões extraídos do histórico da sessão |
| Melhor para | Conhecimento institucional específico do projeto | Descoberta de padrões entre sessões que você não pegaria manualmente |
Dreaming está em Research Preview, então o comportamento pode mudar. Os padrões de session-handoffs e CLAUDE.md documentados acima continuam sendo o mecanismo de memória autoritativo para harnesses self-hosted.
Os antipadrões
Ler arquivos inteiros quando você precisa de 10 linhas. A leitura de um único arquivo de 2.000 linhas consome 15.000-20.000 tokens. Use deslocamentos de linha: Read file.py offset=100 limit=20 economiza a grande maioria desse custo.15
Manter saída de erro verbosa no contexto. Depois de depurar um bug, seu contexto contém mais de 40 stack traces de iterações com falha. Um único /compact depois de corrigir o bug libera esse peso morto.
Começar toda sessão lendo todos os arquivos. Deixe as ferramentas glob e grep do Claude Code encontrarem arquivos relevantes sob demanda, economizando mais de 100.000 tokens de pré-carregamento desnecessário.15
Padrões de subagents
Subagents são instâncias especializadas de Claude que lidam com tarefas complexas de forma independente. Eles começam com um contexto limpo (sem poluição da conversa principal), operam com ferramentas especificadas e retornam resultados como resumos. Os resultados da exploração não incham sua conversa principal; apenas as conclusões retornam.5
Tipos de subagent integrados
| Tipo | Modelo | Modo | Ferramentas | Usar para |
|---|---|---|---|---|
| Explore | Haiku (rápido) | Somente leitura | Glob, Grep, Read, bash seguro | Exploração da codebase, encontrar arquivos |
| General-purpose | Herda | Leitura/gravação completa | Todas disponíveis | Pesquisa complexa + modificação |
| Plan | Herda (ou Opus) | Somente leitura | Read, Glob, Grep, Bash | Planejamento antes da execução |
Como criar subagents personalizados
Defina subagents em .claude/agents/ (projeto) ou ~/.claude/agents/ (pessoal):
---
name: security-reviewer
description: Expert security code reviewer. Use PROACTIVELY after any code
changes to authentication, authorization, or data handling.
tools: Read, Grep, Glob, Bash
model: opus
permissionMode: plan
---
You are a senior security engineer reviewing code for vulnerabilities.
When invoked:
1. Identify the files that were recently changed
2. Analyze for OWASP Top 10 vulnerabilities
3. Check for secrets, hardcoded credentials, SQL injection
4. Report findings with severity levels and remediation steps
Focus on actionable security findings, not style issues.
Campos de configuração de subagent
| Campo | Obrigatório | Finalidade |
|---|---|---|
name |
Sim | Identificador único (minúsculas + hifens) |
description |
Sim | Quando invocar (inclua “PROACTIVELY” para incentivar delegação automática) |
tools |
Não | Separado por vírgulas. Herda todas as ferramentas se omitido. Compatível com Agent(agent_type) para restringir agents que podem ser iniciados |
disallowedTools |
Não | Ferramentas a negar, removidas da lista herdada ou especificada. A partir da v2.1.178, especificações de nível de servidor MCP (mcp__server, mcp__server__*, mcp__*) são correspondidas corretamente aqui — versões anteriores as ignoravam silenciosamente, então uma regra de negação criada para bloquear um servidor MCP simplesmente não fazia nada.63 |
model |
Não | sonnet, opus, haiku, inherit (padrão: inherit) |
permissionMode |
Não | default, acceptEdits, delegate, dontAsk, bypassPermissions, plan |
maxTurns |
Não | Máximo de turnos agentic antes de o subagent parar |
memory |
Não | Escopo de memória persistente: user, project, local |
skills |
Não | Carrega automaticamente o conteúdo de skill no contexto do subagent na inicialização. A partir da v2.1.133, subagents também descobrem skills de projeto, usuário e plugin por meio da ferramenta Skill, da mesma forma que a sessão pai. Versões anteriores removiam isso silenciosamente do contexto do subagent.39 |
hooks |
Não | Lifecycle hooks com escopo limitado à execução deste subagent |
background |
Não | Sempre executar como tarefa em segundo plano |
isolation |
Não | Defina como worktree para uma cópia isolada em git worktree |
Isolamento com worktree
Subagents podem operar em git worktrees temporárias, fornecendo uma cópia completa e isolada do repositório:5
---
name: experimental-refactor
description: Attempt risky refactoring in isolation
isolation: worktree
tools: Read, Write, Edit, Bash, Grep, Glob
---
You have an isolated copy of the repository. Make changes freely.
If the refactoring succeeds, the changes can be merged back.
If it fails, the worktree is discarded with no impact on the main branch.
O isolamento com worktree é essencial para trabalho experimental que pode quebrar a codebase.
Subagents paralelos
Use subagents paralelos para tarefas de pesquisa independentes que não precisam se coordenar entre si:5
> Have three explore agents search in parallel:
> 1. Authentication code
> 2. Database models
> 3. API routes
Cada agent roda na própria janela de contexto, encontra código relevante e retorna um resumo. O contexto principal permanece limpo.
O recursion guard
Sem limites de spawn, agents delegam para agents que delegam para agents, cada um perdendo contexto e consumindo tokens. O padrão recursion guard impõe orçamentos:16
#!/bin/bash
# recursion-guard.sh — enforce spawn budget
CONFIG_FILE="${HOME}/.claude/configs/recursion-limits.json"
STATE_FILE="${HOME}/.claude/state/recursion-depth.json"
MAX_DEPTH=2
MAX_CHILDREN=5
DELIB_SPAWN_BUDGET=2
DELIB_MAX_AGENTS=12
# Read current depth
current_depth=$(jq -r '.depth // 0' "$STATE_FILE" 2>/dev/null)
if [[ "$current_depth" -ge "$MAX_DEPTH" ]]; then
echo "BLOCKED: Maximum recursion depth ($MAX_DEPTH) reached" >&2
exit 2
fi
# Increment depth using safe arithmetic (not ((VAR++)) with set -e)
new_depth=$((current_depth + 1))
jq --argjson d "$new_depth" '.depth = $d' "$STATE_FILE" > "${STATE_FILE}.tmp"
mv "${STATE_FILE}.tmp" "$STATE_FILE"
Lição crítica: Use orçamentos de spawn, não apenas limites de profundidade. Limites baseados em profundidade rastreiam cadeias pai-filho (bloqueadas na profundidade 3), mas deixam passar largura: 23 agents na profundidade 1 ainda é “profundidade 1”. Um orçamento de spawn rastreia o total de filhos ativos por pai, limitado a um máximo configurável. O modelo de orçamento mapeia para o modo de falha real (agents demais no total), em vez de uma métrica indireta (níveis de aninhamento demais).7
Delegação recursiva agora é uma profundidade de primeira classe. A partir do Claude Code v2.1.172 (10 de junho de 2026), sub-agents podem iniciar seus próprios sub-agents, aninhando até 5 níveis de profundidade — antes, a delegação era efetivamente limitada a um nível.62 Isso torna o recursion guard acima mais importante, não menos: a plataforma agora permite exatamente as cadeias de agents-delegando-para-agents que queimam contexto e tokens, então o orçamento de spawn e o limite de profundidade são o que impede uma árvore de 5 níveis de se expandir para centenas de agents ativos. Trate 5 níveis como um teto permitido pela plataforma, não como um padrão a perseguir.
O modo auto agora avalia spawns antes que eles sejam iniciados. O Claude Code v2.1.178 fechou a lacuna equivalente de governança: no modo auto, spawns de subagent são avaliados pelo classificador de permissão antes de o subagent iniciar, não apenas depois que ele começa a executar ações.63 Antes, um subagent podia ser iniciado para solicitar uma ação que a sessão pai teria sido impedida de executar — o próprio spawn era o bypass. A avaliação no momento do spawn significa que o recursion guard e o modelo de permissões finalmente se encontram: um filho não pode ser usado como etapa de lavagem para uma ação proibida pela policy.
Agent Teams (Research Preview)
Agent Teams coordenam várias instâncias de Claude Code que trabalham de forma independente, comunicam-se por uma caixa de entrada e uma lista de tarefas compartilhadas, e podem contestar as descobertas umas das outras:5
| Componente | Função |
|---|---|
| Team lead | Sessão principal que cria a equipe, inicia teammates e coordena o trabalho |
| Teammates | Instâncias separadas de Claude Code trabalhando em tarefas atribuídas |
| Task list | Itens de trabalho compartilhados que teammates assumem e concluem (com bloqueio de arquivo) |
| Mailbox | Sistema de mensagens para comunicação entre agents |
Ative com: export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
Quando usar agent teams vs subagents:
| Subagents | Agent Teams | |
|---|---|---|
| Comunicação | Apenas relatam resultados de volta | Teammates enviam mensagens diretamente entre si |
| Coordenação | O agent principal gerencia todo o trabalho | Lista de tarefas compartilhada com autocoordenação |
| Melhor para | Tarefas focadas em que apenas o resultado importa | Trabalho complexo que exige discussão e colaboração |
| Custo de tokens | Menor | Maior (cada teammate = janela de contexto separada) |
Agent View e goal loops (maio de 2026)
Claude Code v2.1.139 adicionou Agent View, uma interface em research-preview iniciada com claude agents que mostra sessões de Claude Code em execução, bloqueadas e concluídas em uma única tela.4243 A documentação oficial a apresenta como uma forma de despachar e gerenciar muitas sessões, ver o que cada sessão está fazendo e identificar quais precisam de intervenção do operador.43 Isso dá ao trabalho multi-agent uma visão operacional que resumos finais não conseguem fornecer.
Use Agent View ao promover um padrão de subagent ou equipe: inspecione quais sessões estão bloqueadas, quais ainda estão em execução e se a distribuição do trabalho corresponde à arquitetura pretendida. Não trate isso como prova de qualidade. É observabilidade; testes, review gates e relatórios de evidência ainda decidem se o trabalho é sólido.
A mesma versão adicionou /goal, que define uma condição de conclusão e permite que Claude continue entre turnos até que a condição seja atendida, incluindo uso interativo, -p e Remote Control.42 Trate /goal como um loop de conclusão com escopo de sessão, não como substituto para gates determinísticos. Ele é útil para manter um agent focado em um alvo, mas testes, verificações de citação, verificações de deploy e security hooks devem continuar apoiados por comandos ou scripts quando a falha precisa bloquear.
Workflow Tool (v2.1.147+)
Claude Code v2.1.147 adiciona uma ferramenta Workflow, desativada por padrão, para orquestração multi-agent determinística. Ative com CLAUDE_CODE_WORKFLOWS=1.52 Arquiteturalmente, isso é importante porque dá ao Claude Code um primitivo de orquestração de primeira classe para fluxos que antes exigiam scripts de dispatch personalizados, estado de mailbox e convenções de coordenação de subagents.
Não exclua o harness ao redor dela. Um Workflow pode estruturar a execução, mas não substitui seu modelo de segurança. Mantenha hooks PreToolUse e PostToolUse como camada de bloqueio, mantenha orçamentos de spawn ou orçamentos de etapas de workflow para evitar crescimento descontrolado em largura, mantenha o estado do filesystem auditável e mantenha relatórios finais de evidência fora da autoavaliação do modelo. Na prática: use Workflow para a forma da orquestração; use hooks, testes e review gates para a verdade.
Orquestração Multiagente
Sistemas de IA com agente único têm um ponto cego estrutural: não conseguem desafiar suas próprias suposições.7 A deliberação multiagente força avaliação independente a partir de múltiplas perspectivas antes que qualquer decisão seja travada.
Orquestração entre ferramentas (abril de 2026): O Google liberou o código do Scion em 7 de abril — um hipervisor multiagente que executa Claude Code, Gemini CLI e outros “deep agents” como processos concorrentes, cada um com container isolado, git worktree e credenciais. Roda local, em hub ou em Kubernetes. Filosofia explícita: “isolamento sobre restrições” — agentes operam com alta autonomia dentro de fronteiras impostas na camada de infraestrutura, não no prompt.25 Isso estende diretamente o argumento de isolamento de subagents para fornecedores de ferramentas distintos. Se seu workflow abrange Claude e modelos OpenAI, o Scion é a primeira implementação de referência real para subagents entre ferramentas com worktree + isolamento de credenciais por agente.
Debate não é uma bala de prata: O cluster de pesquisa M3MAD-Bench (início de 2026) descobriu que o debate multiagente atinge um platô e pode ser subvertido por consenso enganoso — argumentos válidos perdem quando outros agentes afirmam a resposta errada com confiança.26 O Tool-MAD melhora isso dando a cada agente acesso heterogêneo a ferramentas e usando pontuações de Faithfulness/Relevance no estágio de julgamento. Se você está construindo orquestração no estilo debate, invista em (a) heterogeneidade de ferramentas por agente e (b) pontuação quantitativa do juiz, em vez de assumir que mais agentes = melhores respostas.
Orquestração e Outcomes Multiagente Gerenciados (Public Beta)
Se você não quer construir a infraestrutura de deliberação descrita abaixo, a Multiagent Orchestration entrou em Public Beta em Claude Managed Agents em 6 de maio de 2026.35 Segundo a Anthropic: “Quando há trabalho demais para um único agente fazer bem, a orquestração multiagente permite que um agente líder divida o trabalho em partes e delegue cada uma a um especialista com seu próprio modelo, prompt e ferramentas.”35 Os especialistas “trabalham em paralelo em um sistema de arquivos compartilhado e contribuem para o contexto geral do agente líder.”35
O tracing já vem na caixa. Segundo a Anthropic: “você também pode rastrear cada passo no Claude Console: qual agente fez o quê, em que ordem e por quê, dando a você visibilidade total de como sua tarefa foi delegada e executada.”35
O recurso companheiro em Public Beta é Outcomes. Segundo a Anthropic: “você escreve uma rubrica descrevendo como é o sucesso e o agente trabalha em direção a ela. Um avaliador separado julga a saída contra seus critérios em sua própria janela de contexto, então não é influenciado pelo raciocínio do agente.”35 Esta é a versão gerenciada do padrão de validação de duas portas documentado mais adiante nesta seção: a rubrica substitui a porta escrita à mão, o avaliador separado substitui o validador de consenso.
| Deliberação auto-hospedada (esta seção) | Multiagent + Outcomes Gerenciado | |
|---|---|---|
| Roteamento de especialistas | Você escreve a lógica de spawn | Agente líder divide o trabalho em partes |
| Validação | Hooks de duas portas + pontuação por consenso | Rubrica + avaliador em contexto separado |
| Tracing | Você instrumenta | Claude Console |
| Melhor para | Padrões que precisam de controle total ou composição específica de ferramentas | Padrões padrão de delegação onde a rubrica de validação é o contrato |
| Preço | Apenas custo de tokens + harness | Tokens padrão mais a taxa por hora de sessão dos Managed Agents (base do lançamento de 8 de abril; veja 23) |
A deliberação auto-hospedada continua sendo a resposta certa quando a validação precisa se integrar com sua própria superfície de hooks (bloqueio PreToolUse, semântica de exit code, dispatchers customizados) ou quando o harness deve rodar sem dependências externas. A Multiagent Gerenciada é a resposta certa quando a delegação padrão mais avaliação por rubrica é o contrato que você realmente precisa.
Deliberação Mínima Viável
Comece com 2 agentes e 1 regra: os agentes devem avaliar de forma independente antes de ver o trabalho um do outro.7
Decision arrives
|
v
Confidence check: is this risky, ambiguous, or irreversible?
|
+-- NO -> Single agent decides (normal flow)
|
+-- YES -> Spawn 2 agents with different system prompts
Agent A: "Argue FOR this approach"
Agent B: "Argue AGAINST this approach"
|
v
Compare findings
|
+-- Agreement with different reasoning -> Proceed
+-- Genuine disagreement -> Investigate the conflict
+-- Agreement with same reasoning -> Suspect herding
Esse padrão cobre 80% do valor. Tudo o mais adiciona melhoria incremental.
O Gatilho de Confiança
Nem toda tarefa precisa de deliberação. Um módulo de pontuação de confiança avalia quatro dimensões:17
- Ambiguidade - A consulta tem múltiplas interpretações válidas?
- Complexidade do domínio - Requer conhecimento especializado?
- Impacto - A decisão é reversível?
- Dependência de contexto - Requer entendimento do sistema mais amplo?
A pontuação mapeia para três níveis:
| Nível | Limiar | Ação |
|---|---|---|
| ALTO | 0,85+ | Prosseguir sem deliberação |
| MÉDIO | 0,70-0,84 | Prosseguir com nota de confiança registrada |
| BAIXO | Abaixo de 0,70 | Disparar deliberação multiagente completa |
O limiar se adapta por tipo de tarefa. Decisões de segurança exigem consenso de 0,85. Mudanças de documentação precisam apenas de 0,50. Isso evita superengenharia em tarefas simples enquanto garante que decisões arriscadas recebam escrutínio.7
A Máquina de Estados
Sete fases, cada uma controlada pela anterior:7
IDLE -> RESEARCH -> DELIBERATION -> RANKING -> PRD_GENERATION -> COMPLETE
|
(or FAILED)
RESEARCH: Agentes independentes investigam o tópico. Cada agente recebe uma persona diferente (Technical Architect, Security Analyst, Performance Engineer e outras). O isolamento de contexto garante que os agentes não consigam ver as descobertas uns dos outros durante a pesquisa.
DELIBERATION: Os agentes veem todas as descobertas da pesquisa e geram alternativas. O agente Debate identifica conflitos. O agente Synthesis combina descobertas não contraditórias.
RANKING: Cada agente pontua cada abordagem proposta em 5 dimensões ponderadas:
| Dimensão | Peso |
|---|---|
| Impacto | 0,25 |
| Qualidade | 0,25 |
| Viabilidade | 0,20 |
| Reusabilidade | 0,15 |
| Risco | 0,15 |
A Arquitetura de Validação de Duas Portas
Duas portas de validação capturam problemas em estágios diferentes:7
Porta 1: Validação de Consenso (hook PostToolUse). Roda imediatamente após cada agente de deliberação concluir: 1. A fase deve ter chegado pelo menos a RANKING 2. Mínimo de 2 agentes concluídos (configurável) 3. A pontuação de consenso atinge o limiar adaptativo à tarefa 4. Se algum agente discordou, as preocupações devem ser documentadas
Porta 2: Pride Check (hook Stop). Roda antes que a sessão possa fechar: 1. Métodos diversos: múltiplas personas únicas representadas 2. Transparência de contradições: dissidências têm razões documentadas 3. Tratamento de complexidade: pelo menos 2 alternativas geradas 4. Confiança do consenso: classificada como forte (acima de 0,85) ou moderada (0,70-0,84) 5. Evidência de melhoria: a confiança final excede a confiança inicial
Dois hooks em diferentes pontos do ciclo de vida correspondem a como as falhas realmente ocorrem: algumas são instantâneas (pontuação ruim) e outras são graduais (baixa diversidade, documentação de dissidência ausente).7
Por Que a Concordância É Perigosa
Charlan Nemeth estudou a dissidência minoritária de 1986 até seu livro de 2018 In Defense of Troublemakers. Grupos com dissidentes tomam decisões melhores do que grupos que chegam a um acordo rápido. O dissidente não precisa estar certo. O ato de discordar força a maioria a examinar suposições que de outra forma seriam ignoradas.18
Wu et al. testaram se agentes LLM conseguem debater genuinamente e descobriram que, sem incentivos estruturais para discordância, os agentes convergem para a resposta inicial mais confiante, independentemente da correção.19 Liang et al. identificaram a causa raiz como “Degeneration-of-Thought”: uma vez que um LLM estabelece confiança em uma posição, a auto-reflexão não consegue gerar contra-argumentos novos, tornando a avaliação multiagente estruturalmente necessária.20
Independência é a restrição crítica de design. Dois agentes avaliando a mesma estratégia de deployment com visibilidade das descobertas um do outro produziram pontuações de 0,45 e 0,48. Os mesmos agentes sem visibilidade: 0,45 e 0,72. A diferença entre 0,48 e 0,72 é o custo do efeito manada.7
Detectando Concordância Falsa
Um módulo de detecção de conformidade rastreia padrões que sugerem que agentes estão concordando sem avaliação genuína:7
Agrupamento de pontuações: Cada agente pontuando dentro de 0,3 pontos em uma escala de 10 sinaliza contaminação de contexto compartilhado em vez de avaliação independente. Quando cinco agentes avaliando uma refatoração de autenticação pontuaram o risco de segurança entre 7,1 e 7,4, executar novamente com isolamento de contexto fresco espalhou as pontuações para 5,8-8,9.
Dissidência boilerplate: Agentes copiando a linguagem de preocupação uns dos outros em vez de gerar objeções independentes.
Perspectivas minoritárias ausentes: Aprovação unânime de personas com prioridades conflitantes (um Security Analyst e um Performance Engineer raramente concordam em tudo).
O detector de conformidade captura os casos óbvios (aproximadamente 10-15% das deliberações em que os agentes convergem rápido demais). Para os 85-90% restantes, as portas de consenso e pride check fornecem validação suficiente.
O Que Não Funcionou na Deliberação
Rodadas de debate em formato livre. Três rodadas de texto de vai e vem para uma discussão de indexação de banco de dados produziram 7.500 tokens de debate. Rodada 1: discordância genuína. Rodada 2: posições reformuladas. Rodada 3: argumentos idênticos com palavras diferentes. Pontuação dimensional estruturada substituiu o debate em formato livre, reduzindo o custo em 60% enquanto melhorava a qualidade do ranking.7
Porta de validação única. A primeira implementação rodava um único hook de validação no final da sessão. Um agente concluía a deliberação com pontuação de consenso de 0,52 (abaixo do limiar), depois continuava em tarefas não relacionadas por 20 minutos antes que o hook de fim de sessão sinalizasse a falha. Dividir em duas portas (uma na conclusão da tarefa, outra no fim da sessão) capturou os mesmos problemas em diferentes pontos do ciclo de vida.7
Custo da Deliberação
Cada agente de pesquisa processa aproximadamente 5.000 tokens de contexto e gera 2.000-3.000 tokens de descobertas. Com 3 agentes, isso são 15.000-24.000 tokens adicionais por decisão. Com 10 agentes, aproximadamente 50.000-80.000 tokens.7
Nos preços atuais do Opus, uma deliberação de 3 agentes custa aproximadamente US$ 0,68-0,90. Uma deliberação de 10 agentes custa US$ 2,25-3,00. O sistema dispara deliberação em aproximadamente 10% das decisões, então o custo amortizado em todas as decisões é de US$ 0,23-0,30 por sessão. Se isso vale a pena depende de quanto custa uma decisão ruim.
Quando Deliberar
| Deliberar | Pular |
|---|---|
| Arquitetura de segurança | Erros de digitação em documentação |
| Design de schema de banco de dados | Renomeação de variáveis |
| Mudanças de contrato de API | Atualizações de mensagens de log |
| Estratégias de deployment | Reformulação de comentários |
| Atualizações de dependências | Atualizações de fixtures de teste |
Design do CLAUDE.md
CLAUDE.md é uma política operacional para um AI agent, não um README para humanos.21 O agent não precisa entender por que você usa conventional commits. Ele precisa saber o comando exato para executar e como “done” se parece.
A hierarquia de precedência
| Local | Escopo | Compartilhado | Caso de uso |
|---|---|---|---|
| Enterprise managed settings | Organização | Todos os usuários | Padrões da empresa |
./CLAUDE.md ou ./.claude/CLAUDE.md |
Projeto | Via git | Contexto da equipe |
~/.claude/CLAUDE.md |
Usuário | Todos os projetos | Preferências pessoais |
./CLAUDE.local.md |
Local do projeto | Nunca | Notas pessoais do projeto |
.claude/rules/*.md |
Regras do projeto | Via git | Políticas categorizadas |
~/.claude/rules/*.md |
Regras do usuário | Todos os projetos | Políticas pessoais |
Arquivos de regras carregam automaticamente e fornecem contexto estruturado sem poluir o CLAUDE.md.6
O que é ignorado
Estes padrões não produzem nenhuma mudança observável no comportamento do agent de forma confiável:21
Parágrafos em prosa sem comandos. “Valorizamos código limpo e bem testado” é documentação, não operação. O agent lê isso e segue escrevendo código sem testes porque não há uma instrução acionável.
Diretivas ambíguas. “Tenha cuidado com migrações de banco de dados” não é uma restrição. “Execute alembic check antes de aplicar migrações. Interrompa se o caminho de downgrade estiver ausente.” é.
Prioridades contraditórias. “Avance rápido e entregue logo” junto com “Garanta cobertura de testes abrangente”, “Mantenha o runtime abaixo de 5 minutos” e “Execute testes de integração completos antes de cada commit.” O agent não consegue satisfazer as quatro ao mesmo tempo e, por padrão, acaba pulando a verificação.21
Guias de estilo sem enforcement. “Siga o Google Python Style Guide” sem ruff check --select D não dá ao agent nenhum mecanismo para verificar conformidade.
O que funciona
Instruções começando pelo comando:
## Build and Test Commands
- Install: `pip install -r requirements.txt`
- Lint: `ruff check . --fix`
- Format: `ruff format .`
- Test: `pytest -v --tb=short`
- Type check: `mypy app/ --strict`
- Full verify: `ruff check . && ruff format --check . && pytest -v`
Definições de conclusão:
## Definition of Done
A task is complete when ALL of the following pass:
1. `ruff check .` exits 0
2. `pytest -v` exits 0 with no failures
3. `mypy app/ --strict` exits 0
4. Changed files have been staged and committed
5. Commit message follows conventional format: `type(scope): description`
Seções organizadas por tarefa:
## When Writing Code
- Run `ruff check .` after every file change
- Add type hints to all new functions
## When Reviewing Code
- Check for security issues: `bandit -r app/`
- Verify test coverage: `pytest --cov=app --cov-fail-under=80`
## When Releasing
- Update version in `pyproject.toml`
- Run full suite: `pytest -v && ruff check . && mypy app/`
Regras de escalonamento:
## When Blocked
- If tests fail after 3 attempts: stop and report the failing test with full output
- If a dependency is missing: check `requirements.txt` first, then ask
- Never: delete files to resolve errors, force push, or skip tests
Ordem de escrita
Se estiver começando do zero, adicione seções nesta ordem de prioridade:21
- Comandos de build e teste (o agent precisa disso antes de conseguir fazer qualquer coisa útil)
- Definição de done (evita conclusões falsas)
- Regras de escalonamento (evita workarounds destrutivos)
- Seções organizadas por tarefa (reduz o processamento de instruções irrelevantes)
- Escopo por diretório (monorepos: mantém instruções de serviço isoladas)
Deixe preferências de estilo de lado até que os quatro primeiros itens estejam funcionando.
Imports de arquivos
Referencie outros arquivos dentro do CLAUDE.md:
See @README.md for project overview
Coding standards: @docs/STYLE_GUIDE.md
API documentation: @docs/API.md
Personal preferences: @~/.claude/preferences.md
Sintaxe de import: relativa (@docs/file.md), absoluta (@/absolute/path.md) ou diretório home (@~/.claude/file.md). Profundidade máxima: 5 níveis de imports.6
Compatibilidade de instruções entre ferramentas
AGENTS.md é um padrão aberto reconhecido por todas as principais ferramentas de AI coding.21 Se sua equipe usa várias ferramentas, escreva o AGENTS.md como a fonte canônica e espelhe as seções relevantes em arquivos específicos de cada ferramenta:
| Ferramenta | Arquivo nativo | Lê AGENTS.md? |
|---|---|---|
| Codex CLI | AGENTS.md | Sim (nativo) |
| Cursor | .cursor/rules |
Sim (nativo) |
| GitHub Copilot | .github/copilot-instructions.md |
Sim (nativo) |
| Amp | AGENTS.md | Sim (nativo) |
| Windsurf | .windsurfrules |
Sim (nativo) |
| Claude Code | CLAUDE.md | Não (formato separado) |
Os padrões em AGENTS.md (começar pelo comando, definir conclusão, organizar por tarefa) funcionam em qualquer arquivo de instruções, independentemente da ferramenta. Não mantenha conjuntos de instruções paralelos que se desviam com o tempo. Escreva uma fonte autoritativa e espelhe.
Notas de paridade do Codex
Codex agora tem equivalentes de primeira classe para as principais camadas de harness, mas a migração é uma tradução de padrões, não uma cópia de arquivos. Codex lê AGENTS.md antes do trabalho começar, combinando orientações globais de ~/.codex com instruções do projeto e de repositórios aninhados.31 Codex skills usam o mesmo modelo mental de SKILL.md com progressive disclosure: Codex começa com o nome, a descrição e o caminho do arquivo da skill, depois carrega a skill completa somente quando decide usá-la.32 Codex também tem hooks nativos, hooks empacotados em plugins, hooks gerenciados, suporte a MCP e workflows explícitos de subagent.3334
Codex v0.138.0–v0.139.0 reforçou essa descoberta de AGENTS.md para workspaces não triviais: o carregamento agora passa pela abstração de filesystem do ambiente e preserva caminhos lógicos durante a caminhada de descoberta, então o arquivo certo é selecionado mesmo quando o workspace é um filesystem remoto ou uma árvore com symlinks.61 Isso importa sempre que seu AGENTS.md canônico é a fonte autoritativa e o agent está operando sobre um checkout montado, materializado em container ou com symlinks — os casos em que uma caminhada ingênua por caminhos escolhe silenciosamente o arquivo de instruções errado ou nenhum arquivo. Se você espelha um AGENTS.md autoritativo entre serviços, trate isso como o mínimo para confiar que o arquivo que o agent realmente carregou é o que você escreveu.
Codex v0.141.0 então reforçou o próprio caminho de execução remota: executores remotos agora se conectam por canais Noise-relay autenticados e criptografados de ponta a ponta (o plano de controle e o executor não confiam mais no relay entre eles), a execução remota cross-platform preserva o diretório de trabalho e o shell nativos do executor, e o TLS aceita assinaturas de certificado P-521 para proxies empresariais.65 Se sua orquestração aciona executores Codex através de uma fronteira de rede, essa é a diferença entre uma premissa de relay confiável e uma de criptografia de ponta a ponta — trate isso como a baseline para qualquer topologia de executor remoto.
O mapeamento prático:
| Camada de harness do Claude Code | Equivalente no Codex | Regra de migração |
|---|---|---|
CLAUDE.md / .claude/rules/ |
AGENTS.md / AGENTS.override.md aninhado |
Mantenha comandos e regras de conclusão como canônicos; divida somente quando o escopo do diretório realmente for diferente |
.claude/skills/<name>/SKILL.md |
.agents/skills/<name>/SKILL.md ou plugin skill |
Porte workflows reutilizáveis, mas reescreva descrições para o texto de ativação e o budget do Codex |
hooks em .claude/settings.json |
config.toml do Codex, hooks de plugin ou hooks de requisitos gerenciados |
Porte gates determinísticos primeiro; teste cada hook com eventos reais de ferramenta antes de habilitar amplamente |
.claude/agents/*.md |
~/.codex/agents/*.toml, .codex/agents/*.toml ou worker / explorer integrados |
Porte somente agents com valor repetido; prefira delegação explícita porque subagents do Codex são explícitos |
| Plugins | Codex plugins | Use plugins como unidade de distribuição depois que hooks e skills locais estiverem comprovados |
A diferença importante: subagents do Claude podem ser selecionados automaticamente a partir de descrições, enquanto o Codex atualmente documenta workflows de subagent como explícitos. Isso torna skills e hooks o padrão certo para comportamento de harness sempre ativo no Codex; subagents são para trabalho paralelo deliberado, revisão e exploração.
Testando suas instruções
Verifique se o agent realmente lê e segue suas instruções:
# Check active instructions
claude --print "What instructions are you following for this project?"
# Verify specific rules are active
claude --print "What is your definition of done?"
O teste decisivo: Peça ao agent para explicar seus comandos de build. Se ele não conseguir reproduzi-los literalmente, as instruções são verbosas demais (conteúdo empurrado para fora do contexto), vagas demais (o agent não consegue extrair instruções acionáveis) ou não estão sendo descobertas. A análise da GitHub com 2.500 repositórios descobriu que a imprecisão causa a maioria das falhas.21
Padrões de produção
Padrões de longo horizonte do Opus 4.7 (abril de 2026)
Claude Opus 4.7 (16 de abril de 2026) foi lançado com capacidades específicas que mudam aquilo contra o qual um harness precisa se defender:29
- Resiliência a falhas de ferramentas: Opus 4.7 continua avançando mesmo após falhas de ferramentas que interrompiam sessões do Opus 4.6. Você pode reduzir, mas não eliminar, os wrappers defensivos de retry no código de subagent. Mantenha as proteções no nível de hook; reduza o scaffolding no prompt do tipo “se a ferramenta falhar, tente novamente três vezes”.
- Faixa de esforço
xhigh(somente Opus-4.7): Fica entrehighemax. É o padrão recomendado para workloads de coding e agentes. Em subagents de longa duração,xhighsuperahighde forma significativa com custo de tokens subproporcional.maxcontinua sendo a escolha certa para raciocínio difícil em single-shot;xhighé melhor para tarefas sustentadas. - Teto de orçamento de tokens: Configurável por execução de agente via
output_config.task_budget(beta headertask-budgets-2026-03-13). O modelo vê uma contagem regressiva em andamento e ajusta o escopo do trabalho ao orçamento, em vez de ficar sem tokens inesperadamente. Use em loops agentes quando você quer gasto previsível de tokens sem sacrificar a qualidade em prompts curtos. - Consciência de necessidade implícita: Primeiro modelo Claude a passar nos testes de “necessidade implícita”, reconhecendo quando o pedido literal do usuário especifica menos do que ele realmente precisa. Isso torna a seção de “regras de esclarecimento” do CLAUDE.md menos necessária. Se o seu CLAUDE.md tem 200 linhas de guardrails do tipo “considere também X quando o usuário pedir Y”, remova as que agora já são cobertas nativamente.
Base de worktree, caminhos de sandbox e configurações de admin (7 de maio de 2026)
Claude Code v2.1.133 adiciona quatro configurações de nível admin que vale conhecer para harnesses de produção:39
| Configuração | Valores | O que faz |
|---|---|---|
worktree.baseRef |
fresh (padrão) | head |
Novos worktrees voltam a criar branches a partir de origin/<default>. Reversão de padrão com breaking change em relação à v2.1.128, que usava o HEAD local. Defina worktree.baseRef: "head" se sua equipe depende de commits não enviados estarem disponíveis em novos worktrees. |
sandbox.bwrapPath |
caminho absoluto | Fixa a localização do binário Bubblewrap em hosts Linux/WSL onde ele não está no $PATH ou onde você distribui uma versão vendorizada. |
sandbox.socatPath |
caminho absoluto | Mesma ideia para o binário socat usado pela rede do sandbox. |
parentSettingsBehavior |
'first-wins' (padrão) | 'merge' |
Controle de nível admin sobre como managedSettings do SDK se compõem com configurações enterprise/equipe pai. 'merge' permite que uma sessão filha herde e estenda; 'first-wins' mantém o pai como autoridade. |
A reversão de worktree.baseRef é a que deve ser sinalizada aos usuários: agentes que dependiam do comportamento da v2.1.128-v2.1.132 (worktrees criando branches a partir do HEAD local) perdem acesso a trabalho não enviado em worktrees novos, a menos que optem por voltar a esse comportamento.
Pesquisa de feedback OTel para observabilidade enterprise (8 de maio de 2026)
Claude Code v2.1.136 adicionou CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL para reativar a pesquisa de qualidade dentro da sessão em empresas que capturam as respostas via OpenTelemetry.40 Se sua organização envia eventos OTel para uma stack central de observabilidade, essa env var recoloca a pesquisa no caminho dos dados, para que o sinal de qualidade flua pelo mesmo pipeline das métricas de latência e erro. Trate isso como opt-in: o padrão mantém a pesquisa suprimida, o que está correto para implantações sem OTel.
O Quality Loop
Um processo obrigatório de revisão para todas as mudanças não triviais:
- Implementar - Escreva o código
- Revisar - Releia cada linha. Encontre typos, erros de lógica e seções pouco claras
- Avaliar - Execute o evidence gate. Verifique padrões, edge cases e cobertura de testes
- Refinar - Corrija todos os problemas. Nunca empurre para “depois”
- Dar zoom out - Verifique pontos de integração, imports e código adjacente em busca de regressões
- Repetir - Se qualquer critério do evidence gate falhar, volte para a etapa 4
- Reportar - Liste o que mudou, como foi verificado e cite evidências específicas
O Evidence Gate
“Eu acredito” e “deveria” não são evidência. Cite caminhos de arquivos, saída de testes ou código específico.
| Critério | Evidência exigida |
|---|---|
| Segue os padrões do codebase | Nomeie o padrão e o arquivo onde ele existe |
| Solução funcional mais simples | Explique quais alternativas mais simples foram rejeitadas e por quê |
| Edge cases tratados | Liste edge cases específicos e como cada um é tratado |
| Testes passam | Cole a saída dos testes mostrando 0 falhas |
| Sem regressões | Nomeie os arquivos/recursos verificados |
| Resolve o problema real | Declare a necessidade do usuário e como isso a resolve |
Se você não conseguir produzir evidência para qualquer linha, volte para Refinar.22
Autoridade humana de merge
Um estudo arXiv de maio de 2026 com 29.585 ciclos de vida de pull requests de agentes de IA separa agência operacional de governança de merge.47 A lição útil de arquitetura é simples: agentes podem iniciar o trabalho, levar branches adiante, abrir PRs, revisar trabalho e resumir riscos, enquanto a autoridade de merge permanece como uma fronteira de governança separada.
Torne essa fronteira explícita no harness. Permita que agentes preparem PRs e coletem evidências; exija aprovação humana para merges, releases e operações destrutivas no repositório, a menos que a organização tenha uma política de automação auditada separadamente. Quando a automação executa um merge, preserve logs que diferenciem o executor da pessoa ou política que o autorizou.
Padrões de tratamento de erros
Escritas atômicas de arquivos. Vários agentes escrevendo simultaneamente no mesmo arquivo de estado corrompem JSON. Escreva em arquivos .tmp e depois use mv de forma atômica. O SO garante que mv é atômico no mesmo sistema de arquivos.17
# Atomic state update
jq --argjson d "$new_depth" '.depth = $d' "$STATE_FILE" > "${STATE_FILE}.tmp"
mv "${STATE_FILE}.tmp" "$STATE_FILE"
Recuperação de corrupção de estado. Se o estado for corrompido, o padrão de recuperação recria a partir de padrões seguros em vez de travar:16
if ! jq -e '.depth' "$RECURSION_STATE_FILE" &>/dev/null; then
# Corrupted state file, recreate with safe defaults
echo '{"depth": 0, "agent_id": "root", "parent_id": null}' > "$RECURSION_STATE_FILE"
echo "- Recursion state recovered (was corrupted)"
fi
A armadilha bash de ((VAR++)). ((VAR++)) retorna código de saída 1 quando VAR é 0 porque 0++ avalia para 0, que o bash trata como falso. Com set -e habilitado, isso mata o script. Use VAR=$((VAR + 1)) em vez disso.16
Classificação do raio de impacto
Classifique cada ação do agente pelo raio de impacto e aplique gates de acordo:2
| Classificação | Exemplos | Gate |
|---|---|---|
| Local | Escritas de arquivos, execuções de testes, linting | Aprovar automaticamente |
| Compartilhado | Commits git, criação de branch | Avisar + prosseguir |
| Externo | Git push, chamadas API, deployments | Exigir aprovação humana |
Remote Control (conectar ao Claude Code local a partir de qualquer navegador ou app mobile) transforma o gate “Externo” de uma espera bloqueante em uma notificação assíncrona. O agente continua trabalhando na próxima tarefa enquanto você revisa a anterior pelo celular.2
Especificação de tarefas para execuções autônomas
Tarefas autônomas eficazes incluem três elementos: objetivo, critérios de conclusão e ponteiros de contexto:16
OBJECTIVE: Implement multi-agent deliberation with consensus validation.
COMPLETION CRITERIA:
- All tests in tests/test_deliberation_lib.py pass (81 tests)
- post-deliberation.sh validates consensus above 70% threshold
- recursion-guard.sh enforces spawn budget (max 12 agents)
- No Python type errors (mypy clean)
CONTEXT:
- Follow patterns in lib/deliberation/state_machine.py
- Consensus thresholds in configs/deliberation-config.json
- Spawn budget model: agents inherit budget, not increment depth
Os critérios precisam ser verificáveis por máquina: aprovação/falha de testes, saída de linter, códigos de status HTTP, verificações de existência de arquivo. Uma tarefa inicial que pediu ao agente para “escrever testes que passam” produziu assert True e assert 1 == 1. Tecnicamente correto. Na prática, sem valor.16
| Qualidade dos critérios | Exemplo | Resultado |
|---|---|---|
| Vaga | “Testes passam” | O agente escreve testes triviais |
| Mensurável, mas incompleta | “Testes passam E cobertura >80%” | Os testes cobrem linhas, mas não testam nada significativo |
| Abrangente | “Todos os testes passam E cobertura >80% E sem erros de tipo E linter limpo E cada classe de teste testa um módulo distinto” | Saída com qualidade de produção |
Modos de falha para monitorar
| Modo de falha | Descrição | Prevenção |
|---|---|---|
| Espiral de atalhos | Pular etapas do quality loop para terminar mais rápido | Evidence gate exige prova para cada critério |
| Miragem de confiança | “Estou confiante” sem executar verificação | Proibir linguagem evasiva em relatórios de conclusão |
| Verificação fantasma | Afirmar que testes passam sem executá-los nesta sessão | Stop hook executa testes de forma independente |
| Dívida adiada | TODO/FIXME/HACK em código commitado | PreToolUse hook em git commit escaneia o diff |
| Poluição do sistema de arquivos | Artefatos sem saída de iterações abandonadas | Etapa de limpeza nos critérios de conclusão |
Um trace concreto de sessão
Um trace de sessão de uma execução autônoma processando um PRD com 5 stories:2
-
SessionStart dispara. Dispatcher injeta: data atual, detecção de projeto, restrições de filosofia, inicialização de rastreamento de custo. Cinco hooks, 180 ms no total.
-
O agente lê o PRD e planeja a primeira story.
UserPromptSubmitdispara. Dispatcher injeta: contexto ativo do projeto, baseline de drift da sessão. -
O agente chama Bash para executar testes.
PreToolUse:Bashdispara. Verificação de credenciais, validação de sandbox, detecção de projeto. 90 ms. Testes executam.PostToolUse:Bashdispara: heartbeat de atividade registrado, verificação de drift. -
O agente chama Write para criar um arquivo.
PreToolUse:Writedispara: verificação de escopo de arquivo.PostToolUse:Writedispara: verificação de lint, rastreamento de commit. -
O agente finaliza a story.
Stopdispara. Quality gate verifica: o agente citou evidências? Linguagem evasiva? Comentários TODO no diff? Se qualquer verificação falhar, sai com 2 e o agente continua. -
Verificação independente: Um agente novo executa a suíte de testes sem confiar no autorrelato do agente anterior.
-
Três agentes de code review são iniciados em paralelo. Cada um revisa o diff de forma independente. Se qualquer reviewer sinalizar CRITICAL, a story volta para a fila.
-
A story passa. A próxima story carrega. O ciclo se repete para todas as 5 stories.
Total de hooks disparados em 5 stories: ~340. Tempo total em hooks: ~12 segundos. Esse overhead evitou três vazamentos de credenciais, um comando destrutivo e duas implementações incompletas em uma única execução durante a noite.
Estudo de caso: processamento noturno de PRD
Um harness de produção processou 12 PRDs (47 stories) ao longo de 8 sessões noturnas. As métricas comparam os primeiros 4 PRDs (harness mínimo: apenas CLAUDE.md) com os últimos 8 (harness completo: hooks, skills, quality gates, revisão multiagente).
| Métrica | Mínimo (4 PRDs) | Harness completo (8 PRDs) | Mudança |
|---|---|---|---|
| Vazamentos de credenciais | 2 vazaram para o git | 7 bloqueados antes do commit | De reativo para preventivo |
| Comandos destrutivos | 1 force-push para main | 4 bloqueados | Aplicação por exit 2 |
| Taxa de falsa conclusão | 35% falharam nos testes | 4% | Evidence gate + Stop hook |
| Rodadas de revisão/story | 2,1 | 0,8 | Skills + quality loop |
| Degradação de contexto | 6 incidentes | 1 incidente | Memória no sistema de arquivos |
| Overhead de tokens | 0% | ~3,2% | Irrelevante |
| Tempo de hook/story | 0 s | ~2,4 s | Irrelevante |
Os dois vazamentos de credenciais exigiram rotacionar chaves API e auditar serviços downstream: cerca de 4 horas de resposta a incidente. O overhead do harness que evitou o equivalente foi de 2,4 segundos de bash por story. A taxa de falsa conclusão caiu de 35% para 4% porque o Stop hook executou testes de forma independente antes de permitir que o agente reportasse a tarefa como concluída.
Considerações de segurança
Os cinco princípios de agentes confiáveis (Anthropic, abril de 2026)
Anthropic publicou um framework formal para confiabilidade de agentes em 9 de abril de 2026.27 Os cinco princípios acompanham — e ampliam — o pensamento de Evidence Gate neste guia:
| Princípio | O que significa | Como este harness atende a isso |
|---|---|---|
| Controle humano | Intervenção humana significativa em cada ponto de decisão | Hooks controlam chamadas de ferramentas; bloqueio PreCompact; classificador do Auto Mode como camada de verificação |
| Alinhamento de valores | As ações do agente seguem a intenção do usuário, não objetivos adjacentes | CLAUDE.md como especificação explícita de intenção; skills como escopo de capacidades |
| Segurança | Resistência a entradas adversariais e prompt injection | Sandbox + regras de negação + validação de entrada na camada de hooks |
| Transparência | Registros auditáveis de decisões e ações | Logging de hooks; transcrições de sessão; rastros de invocação de skills |
| Privacidade | Tratamento e governança adequados de dados | Limpeza de credenciais em env-var; detecção de segredos na camada de hooks |
Anthropic também doou MCP para a Agentic AI Foundation da Linux Foundation, juntando-se ao AGENTS.md (agora mantido em conjunto com OpenAI, Google, Cursor, Factory, Sourcegraph). Os padrões de interoperabilidade de agentes agora são neutros em relação a fornecedores.27
Ferramentas de sandbox para skills: Para equipes que tratam skills como uma superfície de ataque, o SandyClaw da Permiso (lançado em 2 de abril de 2026) executa skills em um sandbox dedicado e entrega vereditos com evidências a partir de detecção Sigma/YARA/Nova/Snort. Primeiro produto na categoria de sandbox para skills.28
O Sandbox
Claude Code oferece suporte a um modo sandbox opcional (ativado via settings.json ou pelo comando /sandbox) que restringe o acesso à rede e operações no sistema de arquivos usando isolamento no nível do sistema operacional (seatbelt no macOS, bubblewrap no Linux). Quando ativado, o sandbox impede que o modelo faça solicitações de rede arbitrárias ou acesse arquivos fora do diretório do projeto. Sem sandboxing, Claude Code usa um modelo baseado em permissões em que você aprova ou nega chamadas individuais de ferramentas.13
Piso de segurança de maio de 2026. Claude Code v2.1.149 corrigiu um bypass de permissão de diretório de trabalho no PowerShell, várias lacunas de análise de permissão em regras de permissão e variáveis obsoletas no PowerShell, além de um bug de allowlist de escrita no sandbox de git-worktree que cobria toda a raiz do repositório principal em vez de apenas os componentes internos compartilhados do git.53 Se o seu harness permite PowerShell ou agentes isolados por worktree, trate v2.1.149+ como o piso e mantenha as regras de shell restritas. Exceções amplas como PowerShell(*) e permissões de escrita para todo o repositório são atalhos de orquestração, não limites de segurança.
Bloqueio de sandbox do OpenAI Agents SDK (v0.17.0, 8 de maio de 2026). No lado da OpenAI, openai-agents-python v0.17.0 apertou uma fronteira paralela: LocalFile.src e LocalDir.src agora ficam restritos ao base_dir de materialização (o diretório de trabalho atual do processo SDK quando o manifesto é aplicado), a menos que a origem seja concedida explicitamente via Manifest.extra_path_grants com SandboxPathGrant.41 Origens locais relativas são resolvidas a partir de base_dir; caminhos absolutos já precisam estar dentro dele ou ter uma concessão. Isso fecha um problema de fronteira de artefato local: versões anteriores permitiam que manifestos puxassem caminhos arbitrários do host para um workspace em sandbox. Migração: declare raízes confiáveis do host no nível do manifesto com SandboxPathGrant(path=..., read_only=True) para montagens somente leitura. Trate extra_path_grants como configuração de aplicação confiável; nunca preencha concessões a partir de saída do modelo ou entrada de manifesto não confiável.
Piso de acompanhamento do OpenAI Agents SDK (v0.17.3). A linha 0.17.1-0.17.3 adicionou mais endurecimento de sandbox e sessão: limites de extração de arquivos, validação de subpath em GitRepo, erros mais claros de provedores de sandbox, credenciais de mountpoint mantidas fora de comandos do sandbox, rejeição de raízes relativas de workspace do sandbox e tratamento de estado de terminal no Vercel-sandbox.54 Se você usa sandboxes hospedados pela OpenAI ou baseados em provedor, em vez de apenas hooks do Claude Code, trate 0.17.3 como o piso atual para os padrões desta seção.
Limites de permissão
O sistema de permissões controla operações em vários níveis:
| Nível | Controles | Exemplo |
|---|---|---|
| Permissões de ferramenta | Quais ferramentas podem ser usadas | Restringir subagent a Read, Grep, Glob |
| Permissões de arquivo | Quais arquivos podem ser modificados | Bloquear escritas em .env, credentials.json |
| Permissões de comando | Quais comandos bash podem ser executados | Bloquear rm -rf, git push --force |
| Permissões de rede | Quais domínios podem ser acessados | Allowlist para conexões do servidor MCP |
Regras de permissão em nível de parâmetro (junho de 2026)
Claude Code v2.1.178 estendeu regras de permissão do nível da ferramenta para o nível do parâmetro: Tool(param:value) compara com os parâmetros de entrada de uma ferramenta, com * como wildcard. O exemplo canônico é Agent(model:opus) — uma regra que bloqueia a criação de subagents em uma camada específica de modelo.63 Arquiteturalmente, isso fecha uma lacuna que a tabela de quatro níveis acima não conseguia expressar: antes, você permitia ou negava uma ferramenta por inteiro, mas não conseguia restringir como ela era chamada. Uma política de governança agora pode dizer “subagents podem ser criados, mas não na camada Fable 5” ou “Bash é permitido, mas não com esta flag” como uma regra determinística, em vez de uma solicitação em nível de prompt.
Uma configuração gerenciada complementar, enforceAvailableModels (v2.1.175), restringe a seleção de modelos de cima para baixo: ela fixa o modelo Default e impede que configurações no escopo do usuário ou do projeto ampliem a allowlist gerenciada availableModels.63 As duas se compõem — a allowlist define quais camadas existem para a sessão, e as regras em nível de parâmetro restringem como subagents as utilizam.
Guardrails de comando destrutivo no Auto Mode (junho de 2026)
Claude Code v2.1.183 reduziu o raio de impacto do auto mode para operações que perdem trabalho silenciosamente ou desmontam ambientes. O auto mode agora bloqueia de forma rígida, a menos que você tenha pedido explicitamente na sessão: operações git destrutivas (git reset --hard, git checkout -- ., git clean -fd, git stash drop); git commit --amend quando o commit não foi feito pelo agente nesta sessão; e desmontagem de infraestrutura (terraform destroy, pulumi destroy, cdk destroy), a menos que você tenha nomeado a stack específica.65 Arquiteturalmente, isso complementa a validação de spawn e as regras em nível de parâmetro acima: em vez de controlar qual ferramenta ou como ela é criada, controla um conjunto pequeno de comandos irreversíveis específicos por intenção — o agente ainda pode executá-los, mas apenas com instrução explícita, não por iniciativa própria. Para um harness autônomo, codifique o mesmo princípio nos seus próprios hooks PreToolUse: comandos que destroem estado merecem uma regra de negação por padrão que só um sinal explícito do operador remove.
Defesa contra prompt injection
Skills e hooks oferecem defesa em profundidade contra prompt injection:
Skills com restrições de ferramentas impedem que um prompt comprometido ganhe acesso de escrita:
allowed-tools: Read, Grep, Glob
Hooks PreToolUse validam cada chamada de ferramenta, independentemente de como o modelo foi instruído:
# Block credential file access regardless of prompt
if echo "$FILE_PATH" | grep -qE "\.(env|pem|key|credentials)$"; then
echo "BLOCKED: Sensitive file access" >&2
exit 2
fi
Isolamento de subagent limita o raio de impacto. Um subagent com permissionMode: plan não consegue fazer alterações mesmo se seu prompt for comprometido.
Logs de agente e guardrails são superfícies de segurança
Dois avisos de maio de 2026 reforçam um padrão: infraestrutura de agentes cria novos lugares onde conteúdo sensível e políticas executáveis podem vazar ou escapar. O Advisory GHSA-f3jg-756w-gm35 do GitHub cobre um problema de filtro de payload no Gryph Agents em que conteúdo sensível de payload de ferramenta podia permanecer em logs SQLite locais sob o comportamento padrão de logging.45 OSV GHSA-wxxx-gvqv-xp7p cobre uma fuga de sandbox em guardrail de código personalizado do LiteLLM em um endpoint de proxy protegido por admin.46
A regra de produção: trate transcrições de agente, payloads de ferramentas, logs SQLite e execução de guardrail como infraestrutura sensível. Redija antes de persistir, aplique limites de retenção e mantenha código personalizado de guardrail em sandbox e passível de revisão. Uma regra em nível de prompt como “não registre segredos” não basta; o caminho de logging e guardrail precisa de testes determinísticos.
Segurança de hooks
Hooks HTTP que interpolam variáveis de ambiente em headers exigem uma lista explícita allowedEnvVars para impedir a exfiltração arbitrária de variáveis de ambiente:13
{
"type": "http",
"url": "https://api.example.com/notify",
"headers": {
"Authorization": "Bearer $MY_TOKEN"
},
"allowedEnvVars": ["MY_TOKEN"]
}
A divisão de responsabilidade entre humano e agente
Segurança em arquiteturas de agentes exige uma divisão clara entre responsabilidades humanas e do agente:17
| Responsabilidade humana | Responsabilidade do agente |
|---|---|
| Definição do problema | Execução do pipeline |
| Limiares de confiança | Execução dentro dos limiares |
| Requisitos de consenso | Cálculo de consenso |
| Critérios de quality gate | Aplicação do quality gate |
| Análise de erro | Detecção de erro |
| Decisões de arquitetura | Opções de arquitetura |
| Injeção de contexto de domínio | Geração de documentação |
O padrão: humanos são donos de decisões que exigem contexto organizacional, julgamento ético ou direção estratégica. Agentes são donos de decisões que exigem busca computacional em grandes espaços de possibilidades. Hooks aplicam esse limite.
Aplicação recursiva de hooks
Hooks disparam também para ações de subagent.13 Se Claude cria um subagent via Agent tool, seus hooks PreToolUse e PostToolUse executam para cada ferramenta que o subagent usa. Sem aplicação recursiva de hooks, um subagent poderia contornar seus gates de segurança. O evento SubagentStop permite executar limpeza ou validação quando um subagent termina.
Isso não é opcional. Um agente que cria um subagent sem seus hooks de segurança é um agente que consegue fazer force-push para main, ler arquivos de credenciais ou executar comandos destrutivos enquanto seus gates observam a conversa principal sem fazer nada.
Custo como arquitetura
Custo é uma decisão arquitetural, não uma consideração operacional tardia.2 Três níveis:
Nível de tokens. Compressão de system prompt. Remova exemplos de código tutoriais (o modelo conhece os APIs), consolide regras duplicadas entre arquivos e substitua explicações por restrições. “Rejeite chamadas de ferramenta que correspondam a caminhos sensíveis” faz o mesmo trabalho que uma explicação de 15 linhas sobre por que credenciais não devem ser lidas.
Nível de agente. Novos spawns em vez de conversas longas. Cada story em uma execução autônoma recebe um novo agente com contexto limpo. O contexto nunca infla porque cada agente começa do zero. Briefing em vez de memória: modelos executam um briefing claro melhor do que navegam por 30 etapas de contexto acumulado.
Nível de arquitetura. CLI primeiro em vez de MCP quando a operação é sem estado. Uma chamada claude --print para uma avaliação única custa menos e não adiciona overhead de conexão. MCP faz sentido quando a ferramenta precisa de estado persistente ou streaming.
Estrutura de decisão
Quando usar cada mecanismo:
| Problema | Use | Por quê |
|---|---|---|
| Formatar código depois de cada edição | PostToolUse hook | Precisa acontecer sempre, de forma determinística |
| Bloquear comandos bash perigosos | PreToolUse hook | Precisa bloquear antes da execução, exit code 2 |
| Aplicar padrões de revisão de segurança | Skill | Conhecimento de domínio que ativa automaticamente pelo contexto |
| Explorar codebase sem poluir o contexto | Explore subagent | Contexto isolado, retorna apenas um resumo |
| Executar refatoração experimental com segurança | Worktree-isolated subagent | As alterações podem ser descartadas se falharem |
| Revisar código de várias perspectivas | Parallel subagents ou Agent Team | A avaliação independente evita pontos cegos |
| Decidir sobre arquitetura irreversível | Multi-agent deliberation | Acionador de confiança + validação por consenso |
| Persistir decisões entre sessões | MEMORY.md | O filesystem sobrevive aos limites de contexto |
| Compartilhar padrões da equipe | Project CLAUDE.md + .claude/rules/ | Distribuído via Git, carrega automaticamente |
| Definir comandos de build/test do projeto | CLAUDE.md | Instruções orientadas a comandos que o agente pode verificar |
| Executar desenvolvimento autônomo longo | Ralph loop (iteração com contexto novo) | Orçamento completo de contexto por iteração, estado no filesystem |
| Notificar o Slack quando a sessão termina | Async Stop hook | Não bloqueia e não deixa a sessão mais lenta |
| Validar qualidade antes do commit | PreToolUse hook on git commit | Bloqueia o commit se lint/tests falharem |
| Aplicar critérios de conclusão | Stop hook | Impede que o agente pare antes de a tarefa estar concluída |
Skills vs Hooks vs Subagents
| Dimensão | Skills | Hooks | Subagents |
|---|---|---|---|
| Invocação | Automática (raciocínio do LLM) | Determinística (orientada por eventos) | Explícita ou delegada automaticamente |
| Garantia | Probabilística (o modelo decide) | Determinística (sempre dispara) | Determinística (contexto isolado) |
| Custo de contexto | Injetado no contexto principal | Zero (executa fora do LLM) | Janela de contexto separada |
| Custo de tokens | Orçamento de descrição (1% da janela, fallback de 8.000 caracteres) | Zero | Contexto completo por subagent |
| Melhor para | Conhecimento de domínio | Aplicação de políticas | Trabalho focado, exploração |
FAQ
Quantos hooks são hooks demais?
O limite é performance, não quantidade. Cada hook executa de forma síncrona, então o tempo total de execução dos hooks é somado a cada chamada de ferramenta correspondente. 95 hooks entre configurações de nível de usuário e de projeto rodam sem latência perceptível quando cada hook termina em menos de 200ms. O ponto de atenção: se um PostToolUse hook adiciona mais de 500ms a cada edição de arquivo, a sessão começa a parecer lenta. Faça profile dos seus hooks com time antes de implantá-los.14
Hooks podem impedir o Claude Code de executar um comando?
Sim. PreToolUse hooks bloqueiam qualquer ação de ferramenta ao sair com código 2. O Claude Code cancela a ação pendente e mostra a saída stderr do hook ao modelo. O Claude vê o motivo da rejeição e sugere uma alternativa mais segura. Exit 1 é um aviso não bloqueante, em que a ação ainda prossegue.3
Onde devo colocar os arquivos de configuração de hooks?
As configurações de hooks ficam em .claude/settings.json para hooks em nível de projeto (commitadas no seu repositório, compartilhadas com sua equipe) ou em ~/.claude/settings.json para hooks em nível de usuário (pessoais, aplicadas a todos os projetos). Hooks em nível de projeto têm precedência quando ambos existem. Use caminhos absolutos para arquivos de script para evitar problemas com o diretório de trabalho.14
Toda decisão precisa de deliberação?
Não. O módulo de confiança pontua decisões em quatro dimensões (ambiguidade, complexidade, impacto, dependência de contexto). Apenas decisões com pontuação abaixo de 0,70 de confiança geral acionam deliberação, cerca de 10% do total de decisões. Correções de documentação, renomeações de variáveis e edições rotineiras pulam totalmente a deliberação. Arquitetura de segurança, alterações de schema de banco de dados e deploys irreversíveis a acionam de forma consistente.7
Como testar um sistema criado para produzir discordância?
Teste tanto os caminhos de sucesso quanto os caminhos de falha. Sucesso: agentes discordam de forma produtiva e chegam a consenso. Falha: agentes convergem rápido demais, nunca convergem ou excedem os orçamentos de spawn. Testes end-to-end simulam cada cenário com respostas determinísticas dos agentes, verificando se ambos os portões de validação capturam todos os modos de falha documentados. Um sistema de deliberação em produção roda 141 testes em três camadas: 48 testes de integração bash, 81 testes unitários Python e 12 simulações de pipeline end-to-end.7
Qual é o impacto de latência da deliberação?
Uma deliberação com 3 agentes adiciona 30-60 segundos de tempo real (os agentes rodam sequencialmente pela Agent tool). Uma deliberação com 10 agentes adiciona 2-4 minutos. Os hooks de consensus e pride check rodam em menos de 200ms cada. O principal gargalo é o tempo de inferência do LLM por agente, não o overhead de orquestração.7
Qual deve ser o tamanho de um arquivo CLAUDE.md?
Mantenha cada seção abaixo de 50 linhas e o arquivo total abaixo de 150 linhas. Arquivos longos são truncados pelas janelas de contexto, então coloque as instruções mais críticas no início: comandos e definições de encerramento antes de preferências de estilo.21
Isso pode funcionar com ferramentas diferentes do Claude Code?
Os princípios arquiteturais (hooks como portões determinísticos, skills como conhecimento de domínio, subagents como contextos isolados, filesystem como memória) se aplicam conceitualmente a qualquer sistema agentic. A implementação específica usa os eventos de ciclo de vida, padrões de matcher e Agent tool do Claude Code. AGENTS.md leva os mesmos padrões para Codex, Cursor, Copilot, Amp e Windsurf.21 O padrão de harness é agnóstico de ferramenta, mesmo que os detalhes de implementação sejam específicos da ferramenta.
Cartão de referência rápida
Configuração de hooks
{
"hooks": {
"PreToolUse": [{"matcher": "Bash", "hooks": [{"type": "command", "command": "script.sh"}]}],
"PostToolUse": [{"matcher": "Write|Edit", "hooks": [{"type": "command", "command": "format.sh"}]}],
"Stop": [{"matcher": "", "hooks": [{"type": "agent", "prompt": "Verify tests pass. $ARGUMENTS"}]}],
"SessionStart": [{"matcher": "", "hooks": [{"type": "command", "command": "setup.sh"}]}]
}
}
Frontmatter de skill
---
name: my-skill
description: What it does and when to use it. Include trigger phrases.
allowed-tools: Read, Grep, Glob
---
Definição de subagent
---
name: my-agent
description: When to invoke. Include PROACTIVELY for auto-delegation.
tools: Read, Grep, Glob, Bash
model: opus
permissionMode: plan
---
Instructions for the subagent.
Exit codes
| Código | Significado | Use para |
|---|---|---|
| 0 | Sucesso | Permitir a operação |
| 2 | Bloqueio | Portões de segurança, portões de qualidade |
| 1 | Aviso não bloqueante | Logging, mensagens consultivas |
Comandos principais
| Comando | Finalidade |
|---|---|
/compact |
Comprimir contexto, preservar decisões |
/context |
Ver alocação de contexto e skills ativas |
/agents |
Gerenciar subagents |
/goal <condition> |
Manter o Claude trabalhando em direção a uma condição de conclusão |
claude agents |
Abrir Agent View para sessões em execução, bloqueadas e concluídas |
CLAUDE_CODE_WORKFLOWS=1 |
Ativar a Workflow tool para orquestração multi-agent determinística |
claude -c |
Continuar a sessão mais recente |
claude --print |
Invocação única do CLI (sem conversa) |
# <note> |
Adicionar nota ao arquivo de memória |
/memory |
Ver e gerenciar auto-memory |
Locais dos arquivos
| Caminho | Finalidade |
|---|---|
~/.claude/CLAUDE.md |
Instruções globais pessoais |
.claude/CLAUDE.md |
Instruções do projeto (compartilhadas via Git) |
.claude/settings.json |
Hooks e permissões do projeto |
~/.claude/settings.json |
Hooks e permissões do usuário |
~/.claude/skills/<name>/SKILL.md |
Skills pessoais |
.claude/skills/<name>/SKILL.md |
Skills do projeto (compartilhadas via Git) |
~/.claude/agents/<name>.md |
Definições pessoais de subagent |
.claude/agents/<name>.md |
Definições de subagent do projeto |
.claude/rules/*.md |
Arquivos de regras do projeto |
~/.claude/rules/*.md |
Arquivos de regras do usuário |
~/.claude/projects/{path}/memory/MEMORY.md |
Auto-memory |
Registro de alterações
| Data | Alteração |
|---|---|
| 2026-06-20 | Guia v1.20: Claude Code v2.1.183 + Codex v0.141.0 — governança e segurança de execução remota. Adicionou guardrails para comandos destrutivos no modo automático (CC v2.1.183 bloqueia rigidamente git reset --hard/checkout -- ./clean -fd/stash drop, git commit --amend em commits que não são do agente, e terraform/pulumi/cdk destroy sem uma stack nomeada, a menos que você tenha pedido) às Considerações de segurança, enquadrados como o complemento em nível de intenção às regras em nível de parâmetro e à validação de spawn; e executores remotos criptografados por Noise-relay (Codex v0.141.0: canais de executor criptografados de ponta a ponta, preservação de cwd/shell entre plataformas, TLS P-521) às Notas de paridade do Codex. |
| 2026-06-16 | Guia v1.19: governança + primitivas de escopo do Claude Code v2.1.173–v2.1.179, além de importação entre ferramentas do Codex v0.140.0. Incorporou a versão v2.1.178 ao corpo: regras de permissão em nível de parâmetro Tool(param:value) com wildcard * (por exemplo, Agent(model:opus) para bloquear um tier de modelo) mais a configuração gerenciada enforceAvailableModels (v2.1.175), ambas em Segurança → Limites de permissão; o modo automático agora valida spawns de subagent antes do lançamento, fechando a brecha de spawn como bypass (Padrões de subagent); carregamento de .claude/skills aninhado + resolução closest-wins para skills/agents/workflows/output-styles em árvores .claude/ aninhadas (Sistema de skills); e a correção de correspondência de especificação de servidor MCP em disallowedTools (Campos de configuração de subagent). Adicionou a portabilidade entre ferramentas /import do Codex + exclusão permanente de sessão (v0.140.0) à nota de paridade do Codex. |
| 2026-06-10 | Guia v1.18: Sub-agents recursivos (Claude Code v2.1.172). Adicionou uma observação à subseção Proteção contra recursão: sub-agents do Claude Code agora podem criar seus próprios sub-agents, aninhando até 5 níveis de profundidade — antes, a delegação era efetivamente limitada a um nível (v2.1.172, 10 de junho). Reenquadrou o padrão de orçamento de spawn/limite de profundidade em userland como o controle que impede uma árvore de 5 níveis de se expandir demais, tratando 5 níveis como um teto da plataforma, não como padrão. |
| 2026-06-09 | Guia v1.17: Claude Code v2.1.169–v2.1.170 + Codex v0.138.0–v0.139.0, governança e hardening de multi-agent-v2. Incorporou cinco mudanças verificadas de arquitetura de harness ao corpo. O Sistema de skills ganhou a subseção “Ocultando a superfície incluída como governança”: a configuração disableBundledSkills (e a env var CLAUDE_CODE_DISABLE_BUNDLED_SKILLS) oculta skills, workflows e comandos slash integrados do modelo como uma redução deliberada da superfície de ataque (v2.1.169). A subseção Arquitetura de hooks de junho adicionou a flag --safe-mode (e CLAUDE_CODE_SAFE_MODE), que inicia uma sessão com todas as customizações desativadas — CLAUDE.md, plugins, skills, hooks, MCP — para troubleshooting e governança em ambiente limpo (v2.1.169), além de uma nota sobre tier de modelo: o Claude Fable 5 (claude-fable-5) da Anthropic foi lançado em 9 de junho como um tier Mythos acima do Opus, selecionável via /model claude-fable-5 na v2.1.170, com o Opus 4.8 permanecendo o padrão agentic do Claude Code. Memória e contexto adicionou o comando /cd (v2.1.169), que move uma sessão para um novo diretório de trabalho sem quebrar o cache de prompt no meio da sessão. Orquestração multi-agent / Paridade do Codex recebeu hardening para produção: close_agent renomeado para interrupt_agent (v0.139.0), payloads de mensagens entre agentes criptografados, um catálogo de config de agente v2, LRU de residência de agente e concorrência contada por execução ativa (v0.138.0), descoberta de AGENTS.md roteada por filesystems de ambiente com caminhos lógicos preservados para seleção correta de arquivos em workspaces remotos/com symlink (v0.138.0/v0.139.0), e avisos de inicialização de MCP em subagent escopados à thread proprietária em vez de duplicarem no pai (v0.139.0). |
| 2026-06-08 | Guia v1.16: Padrões de arquitetura de agente de junho do Claude Code v2.1.162–v2.1.166 + Codex v0.137.0. Adicionou a subseção “Direcionamento por stop-hook, autoridade entre sessões e multi-agent v2”, cobrindo quatro mudanças relevantes para harness: (1) hooks Stop/SubagentStop podem retornar hookSpecificOutput.additionalContext para injetar feedback de “ainda não terminou, aqui está o motivo” e continuar o turno sem um bloco de erro de hook (v2.1.163); (2) mensagens entre sessões receberam hardening para que mensagens retransmitidas por SendMessage vindas de outra sessão não carreguem mais a autoridade do usuário de origem — trate mensagens recebidas entre agentes como dados não confiáveis (v2.1.166); (3) a configuração fallbackModel encadeia até três modelos de backup com uma nova tentativa única de fallback em erros API não retentáveis, e claude agents --json adiciona um campo waitingFor para observabilidade de frotas (v2.1.162/166); (4) Codex multi-agent v2 (v0.137.0) mantém o runtime com cada thread, define hide_spawn_agent_metadata como true por padrão, propaga eventos pai para listeners filhos e adiciona uma extensão de skills v1 com resolução de catálogo por turno e eventos de contributor no ciclo de vida de início de thread/erro de turno. Sem mudança de especificação em AGENTS.md (ainda mantido pela Agentic-AI-Foundation, sem changelog versionado). |
| 2026-05-31 | Guia v1.15: Claude Code v2.1.157 + patches do Hermes v0.15.1/v0.15.2. Adicionou a subseção “Convergência de plugin e skill em .claude/skills/“: o Claude Code v2.1.157 faz qualquer pasta no diretório .claude/skills/ de um projeto carregar automaticamente como plugin sem registro no marketplace, e claude plugin init <name> cria o scaffold de um plugin novo com manifest + SKILL.md ali. A implicação para harness é real — tooling de projeto de escopo pequeno não paga mais o custo de manifest para viver no controle de versão; plugins ainda são donos do formato ZIP instalável empacotado. A mesma versão entrega EnterWorktree para troca no meio da sessão entre worktrees gerenciadas por Claude e deixa worktrees em segundo plano desbloqueadas depois que o agente termina, para que git worktree remove/prune funcionem corretamente. Hermes Agent v0.15.1 (29 de maio) é o hotfix Velocity do mesmo dia: correção de loop de recarregamento 401 do dashboard em modo loopback, Docker agora exige HERMES_DASHBOARD_INSECURE=1 explícito, comandos bare de MCP (npx, npm, node) resolvem em Docker, página de Skills restaurada, workers Kanban respondem a SIGTERM corretamente, catálogo Skills.sh cresceu de 858 para 19.932 entradas via sitemap. Hermes v0.15.2 (29 de maio) é um hotfix apenas de empacotamento que inclui manifests plugin.yaml nas distribuições wheel e sdist. |
| 2026-05-28 | Guia v1.14: Passada de padrões de arquitetura do Claude Code v2.1.152-v2.1.154 + Codex v0.134.0-v0.135.0 + Hermes v0.15.0. O Claude Code mudou padrões e adicionou primitivas de orquestração: Opus 4.8 agora é o padrão com esforço alto por padrão e um novo /effort xhigh; workflows dinâmicos orquestram dezenas a centenas de agentes em segundo plano via /workflows; prompt de sistema enxuto agora é padrão para todos os modelos, exceto Haiku/Sonnet/Opus 4.7 e anteriores; o novo evento de hook MessageDisplay permite que hooks transformem ou ocultem texto do assistente enquanto ele é exibido; disallowed-tools no frontmatter de skill/comando remove ferramentas enquanto a skill está ativa; /reload-skills reescaneia diretórios de skill sem reiniciar; hooks SessionStart podem retornar reloadSkills: true e definir hookSpecificOutput.sessionTitle; --fallback-model troca no meio da sessão quando o primário está ausente; o modo automático não exige mais consentimento opt-in; a configuração gerenciada pluginSuggestionMarketplaces permite marketplaces da organização para sugestões contextuais; claude agents aceita sessões de shell em segundo plano com ! <command>; plugins podem declarar defaultEnabled: false; o env de subprocessos stdio MCP agora inclui CLAUDE_CODE_SESSION_ID e CLAUDECODE=1. O Codex v0.134.0 tornou --profile o seletor de perfil principal em fluxos de CLI, permissões da TUI e sandbox (configs legadas rejeitadas com orientação de migração), adicionou busca local em histórico de conversas, melhorou setup de MCP com direcionamento de ambiente por servidor e OAuth para servidores HTTP streamable, e permitiu que ferramentas MCP read-only rodem concorrentemente quando anunciam readOnlyHint; v0.135.0 adicionou diagnósticos mais ricos em codex doctor, detalhes remotos em /status, edição de text-object vim, perfis de permissão nomeados em /permissions e presets Sandbox no SDK Python. Hermes Agent v0.15.0 (28 de maio) entrega a versão Velocity: run_agent.py refatorado 76% em 14 módulos, Kanban multi-agent v2 com autodecomposição e topologia swarm, Bitwarden Secrets Manager substituindo chaves por provedor por um único token bootstrap, defesa Promptware contra prompt injection da classe Brainworm em três pontos de controle de segurança, bundles de skill, um orquestrador de sessão TUI para gestão multi-sessão em um terminal, e session_search 4.500× mais rápido com a dependência LLM removida. Implicações de arquitetura de harness: o padrão de perfil nomeado (Codex --profile, Claude Code pluginSuggestionMarketplaces) está se tornando a primitiva de configuração padrão para runtimes de agente multi-tenant; ferramentas MCP read-only concorrentes (Codex readOnlyHint) são o padrão correto para fan out de buscas de contexto não mutantes; o hook MessageDisplay dá aos operadores uma superfície de transformação de primeira classe que não era acessível por PostToolUse ou Stop; e o padrão de prompt de sistema enxuto remove a troca antiga entre contexto definido pelo operador e scaffolding do provedor. |
| 2026-05-24 | Guia v1.13: Passe de segurança/atualidade do Claude Code v2.1.150 + OpenAI Agents SDK v0.17.3. O claude --version local retornou 2.1.144 (Claude Code), enquanto o npm latest para @anthropic-ai/claude-code retornou 2.1.150 e a versão mais recente de GitHub retornou v2.1.150. Adicionou orientação de harness da v2.1.149 para correções de bypass de permissão no PowerShell, correções de análise de permissão para regras allow/variáveis obsoletas no PowerShell e a correção de allowlist de escrita do sandbox de git-worktree; observou que a v2.1.150 é apenas infraestrutura interna, sem mudanças anunciadas voltadas ao usuário. O PyPI latest para openai-agents retornou 0.17.3, então a seção de sandbox da OpenAI agora observa o hardening de acompanhamento 0.17.1-0.17.3 para extração de arquivos compactados, subpaths de GitRepo, credenciais de sandbox, raízes relativas de workspace e tratamento de estado terminal de provider.5354 |
| 2026-05-21 | Guia v1.12: Passe de Workflow do Claude Code v2.1.147. O claude --version local retornou 2.1.144 (Claude Code), enquanto o npm latest para @anthropic-ai/claude-code retornou 2.1.147. Adicionou a ferramenta Workflow, desativada por padrão, como primitiva determinística first-party de orquestração multi-agent e esclareceu que hooks, testes, gates de revisão, orçamentos de spawn e relatórios de evidência continuam sendo o limite de correção.52 |
| 2026-05-15 | Guia v1.11: Passe de confiabilidade de sessão em segundo plano e plugin do Claude Code v2.1.142. O claude --version local retornou 2.1.141 (Claude Code), enquanto o npm latest para @anthropic-ai/claude-code retornou 2.1.142. Adicionou orientação para operadores sobre novas flags de dispatch de claude agents, padrão Fast-mode do Opus 4.7, descoberta de SKILL.md de plugin em nível raiz, visibilidade de plugin no LSP, comportamento de HTTP/SSE remoto de MCP_TOOL_TIMEOUT e correções de confiabilidade de sessão em segundo plano / daemon / cache de plugin.51 |
| 2026-05-14 | Guia v1.10: Passe de sinalização de operador e escopo do Claude Code v2.1.141. O claude --version local retornou 2.1.141 (Claude Code) e o npm latest para @anthropic-ai/claude-code retornou 2.1.141. Adicionou orientação de hook para terminalSequence como sinalização ao operador, não enforcement, observou claude agents --cwd <path> para Agent View com escopo de diretório e documentou o impacto arquitetural de CLAUDE_CODE_PLUGIN_PREFER_HTTPS mais ANTHROPIC_WORKSPACE_ID para instalação de plugin e escopo de federação de identidade de workload.50 |
| 2026-05-13 | Guia v1.9: Passe de confiabilidade do Claude Code v2.1.140. O claude --version local retornou 2.1.140 (Claude Code). Adicionou subagent_type à orientação de agent-hook e atualizou a seção de governança de hooks para correções da v2.1.140 em ConfigChange, disableAllHooks, allowManagedHooksOnly, exibição de env-var no diálogo de permissão, reset de estilo customizado após sincronização de configurações, fallback de pacote nativo no Windows Git Bash e comportamento de /scroll-speed.49 |
| 2026-05-11 | Guia v1.8: Passe de atualidade do Claude Code v2.1.139 + varredura focada de segurança/memória de agente. Verificou claude --version local como 2.1.139 e adicionou mudanças operacionais da v2.1.139: Agent View via claude agents, loops de conclusão /goal, args em command-hook, continueOnBlock em PostToolUse, CLAUDE_PROJECT_DIR de MCP e correção de tempo ativo no OpenTelemetry.424344 Adicionou aviso de curadoria de memória do preprint arXiv “The Memory Curse”, orientação de autoridade humana de merge do preprint arXiv sobre ciclo de vida de PR e orientação de segurança de logs/guardrails de agente dos avisos Gryph Agents e LiteLLM.45464748 Corrigiu a linha obsoleta de orçamento de tokens Skills vs Hooks vs Subagents de 2% para o orçamento atual de 1% / 8.000 caracteres de descrição de skill. |
| 2026-05-09 | Guia v1.7: Acompanhamento do dia 3 sobre Claude Code v2.1.136 + openai-agents-python v0.17.0. Adicionou a subseção autoMode.hard_deny e correções de hook/plugin da v2.1.136 à Arquitetura de hooks, cobrindo o novo tier de bloqueio incondicional, correção de MCP que desaparece após /clear em VS Code/JetBrains/Agent SDK, perda de refresh-token de OAuth de MCP em refresh concorrente, correção de bloqueio de escrita em plan-mode quando a regra allow Edit(...) correspondia, race de limpeza de cache de plugin em Stop/UserPromptSubmit, entrada skills ocultando o diretório padrão skills/ e env vars de hook SessionStart de CLAUDE_ENV_FILE ficando obsoletas após /resume//clear.40 Adicionou a subseção Pesquisa de feedback OTel a Padrões de produção, cobrindo CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL.40 Estendeu a subseção O sandbox com o lockdown do openai-agents-python v0.17.0: LocalFile.src / LocalDir.src restritos a dentro de base_dir, a menos que sejam concedidos via Manifest.extra_path_grants com SandboxPathGrant.41 Adicionou nota de modelo padrão do RealtimeAgent (gpt-realtime-2) a Harnesses gerenciados vs. self-hosted.41 Apenas changelog: Claude Code v2.1.137 (correção de ativação do Win VSCode), v2.1.138 (correções internas); claude-agent-sdk-python v0.1.78 (bundle de CLI v2.1.136), v0.1.79 (bundle de CLI v2.1.137), v0.1.80 (bundle de CLI v2.1.138). |
| 2026-05-08 | Guia v1.6: Acompanhamento do dia 2 sobre Claude Code v2.1.132/v2.1.133 + SDK v0.1.77. Adicionou a subseção Superfície de Skills do SDK ao Sistema de skills, cobrindo a opção skills em ClaudeAgentOptions e a depreciação de "Skill" em allowed_tools.37 Adicionou a subseção Esforço e proveniência de sessão à Arquitetura de hooks, cobrindo o novo campo JSON effort.level + env var $CLAUDE_EFFORT na entrada de hook, e a env var CLAUDE_CODE_SESSION_ID em subprocessos Bash.3839 Adicionou a correção de descoberta de skill por subagent à tabela Campos de configuração de subagent (subagents agora descobrem skills de projeto, usuário e plugin via ferramenta Skill; antes da v2.1.133, eram descartadas silenciosamente).39 Adicionou a subseção Base de worktree, caminhos de sandbox e configurações de admin a Padrões de produção, cobrindo worktree.baseRef (reversão de padrão com breaking change de volta para origin/<default> a partir do HEAD local), sandbox.bwrapPath, sandbox.socatPath e parentSettingsBehavior.39 |
| 2026-05-07 | Guia v1.5: Agentes gerenciados por Claude, expansão de 6 de maio em SF. Adicionou a Estratégia 5 (Curadoria de memória gerenciada: Dreaming, Research Preview) a Memória e contexto, com tabela comparando filesystem-as-memory vs. Dreaming.35 Adicionou Orquestração multiagent gerenciada (Public Beta) e Outcomes (Public Beta) no topo de Orquestração multi-agent, com citações literais da Anthropic sobre especialistas em filesystem compartilhado e tracing no Console do Claude, além de uma tabela de comparação vs. deliberação self-hosted. Adicionou subseção de streaming de eventos de hook no lado do SDK, cobrindo include_hook_events e HookEventMessage do claude-agent-sdk-python v0.1.74.36 Apenas changelog: Claude Code v2.1.124-v2.1.131 (claude project purge, --dangerously-skip-permissions para diretórios de projeto, invocation_trigger de skill_activated, correção de format-on-save em PostToolUse, correção de bloqueio de JSON+exit-2 em PreToolUse, configurações skillOverrides); claude-agent-sdk-python v0.1.72 (CLI 2.1.126), v0.1.73 (session_store_flush), v0.1.75 (CLI 2.1.131), v0.1.76 (api_error_status); openai-agents-python v0.15.0-v0.16.1, com v0.16.0 (7 de maio) definindo gpt-5.4-mini como padrão, removendo o teto implícito de max_turns e adicionando concorrência de execução de ferramentas no lado do SDK. |
| 2026-05-07 | Guia v1.4: Atualizou mecânicas de hooks e skills do Claude Code contra a documentação oficial atual e evidência de runtime local (claude --version 2.1.132, codex --version retornou codex-cli 0.128.0). Atualizou a superfície de hooks de 22/26+ para 29 eventos documentados, corrigiu o orçamento de descrição de skill de 2%/16.000 para 1%/8.000, mudou a contagem de tipos de hook de quatro para cinco com mcp_tool, removeu a afirmação sem suporte de “10 subagents paralelos” fixos e adicionou uma seção de paridade pública segura do Codex cobrindo AGENTS.md, skills, hooks, plugins e workflows explícitos de subagent. |
| 2026-04-29 | Guia v1.3: Expandiu a cobertura do OpenAI Agents SDK na seção Harnesses gerenciados vs. self-hosted com a superfície nomeada de SDK do openai-agents Python v0.14.0 (15 de abril) — SandboxAgent, Manifest, SandboxRunConfig, memória de sandbox com divulgação progressiva, mounts de workspace (S3/R2/GCS/Azure), snapshots portáteis e os backends de cliente local/Docker/hosted (Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, Vercel). Substituiu a citação secundária da Help Net Security pela citação primária das notas de versão v0.14.0. Adicionou uma nota curta sobre claude-agent-sdk-python v0.1.69-v0.1.71 (28-29 de abril) como a terceira opção self-hosted (incorporar o runtime do Claude Code como uma biblioteca Python): CLI de Claude incluído atualizado para v2.1.123, piso da dependência mcp elevado para >=1.19.0 (versões mais antigas descartavam silenciosamente CallToolResult de ferramentas MCP in-process), correção de cancelamento de nursery Trio e paridade do campo allowlist de SandboxNetworkConfig com o SDK TS. Refinamentos do SDK v0.14.7-v0.14.8 documentados em [^58]. |
| 2026-04-25 | Guia v1.2: Google Cloud Next 2026 (22-24 de abril) — Vertex AI renomeado para Gemini Enterprise Agent Platform; Agentspace absorvido no Gemini Enterprise unificado; Workspace Studio (criador de agentes no-code); mais de 200 modelos no Model Garden, incluindo Claude da Anthropic; agentes parceiros da Box, Workday, Salesforce, ServiceNow; ADK v1.0 estável em quatro linguagens; Project Mariner (agente de navegação web); servidores MCP gerenciados com Apigee como ponte API-para-agente; protocolo A2A v1.0 em produção em 150 organizações. Microsoft Agent Framework 1.0 (abril de 2026): APIs estáveis, compromisso LTS, suporte completo a MCP, .NET + Python. A DevUI baseada em navegador que visualiza execução de agente e chamadas de ferramenta em tempo real é lançada como preview junto da superfície estável 1.0. Salesforce Headless 360 (15 de abril, TDX): toda capacidade do Salesforce (CRM, atendimento, marketing, ecommerce) exposta como comando de ferramenta/CLI API/MCP, para que agentes como Claude Code, Cursor e Codex possam construir sobre a plataforma sem navegador. (O TDX 2026 ocorreu em 15-16 de abril; o anúncio do Headless 360 é datado de 15 de abril.) MetaComp StableX KYA (21 de abril): framework de governança Know Your Agent para serviços financeiros regulados (pagamentos, compliance, patrimônio) — o primeiro do tipo vindo de uma instituição financeira licenciada; disponível em Claude, Claude Code, OpenClaw e outras plataformas de IA compatíveis. Preços de Claude Managed Agents: US$ 0,08 por hora de sessão enquanto uma sessão está em execução, sem cobrança de runtime enquanto estiver ociosa — além das tarifas normais de token do modelo Claude. (Segundo a página de preços de Claude da Anthropic; o lançamento em public beta foi em 8 de abril de 2026.) Memória para Managed Agents entrou em public beta em 23 de abril de 2026 sob o header beta managed-agents-2026-04-01. Todos os endpoints de Managed Agents agora exigem esse header beta. |
| 2026-04-16 | Guia v1.1: Adicionou a seção Harnesses gerenciados vs. self-hosted, cobrindo Claude Managed Agents (beta de 8 de abril) e separação harness/compute do OpenAI Agents SDK (16 de abril). Adicionou Scion, hypervisor multi-agent entre ferramentas (7 de abril, Google). Documentou a descoberta de plateau de debate do M3MAD-Bench. Adicionou The Five Principles of Trustworthy Agents (Anthropic, 9 de abril) + governança MCP/AGENTS.md da Linux Foundation. Referência ao sandbox de skills SandyClaw da Permiso. Novos padrões de longo horizonte do Opus 4.7: resiliência a falhas de ferramenta, tier de esforço xhigh, teto de orçamento de tokens (task_budget beta), consciência de necessidade implícita reduzindo scaffolding de CLAUDE.md. |
| 2026-03-24 | Publicação inicial |
Referências
-
Andrej Karpathy sobre “claws” como uma nova camada sobre agentes LLM. Discussão no HN (406 pontos, 917 comentários). ↩
-
Implementação do autor. 84 hooks, 48 skills, 19 agentes, ~15.000 linhas de orquestração. Documentado em Claude Code as Infrastructure. ↩↩↩↩↩↩↩↩
-
Anthropic, “Claude Code Hooks: Exit Codes.” code.claude.com/docs/en/hooks. Exit 0 permite, exit 2 bloqueia, exit 1 avisa para a maioria dos eventos;
WorktreeCreateé mais rigoroso. ↩↩↩↩↩ -
Anthropic, “Extend Claude with Skills.” code.claude.com/docs/en/skills. Estrutura de skill, campos de frontmatter, correspondência baseada em LLM e orçamento de descrição de 1% / 8.000 caracteres. ↩↩↩↩↩↩↩
-
Anthropic, “Claude Code Sub-agents.” code.claude.com/docs/en/sub-agents. Contexto isolado, suporte a worktree, equipes de agentes. ↩↩↩↩↩
-
Anthropic, “Claude Code Documentation.” docs.anthropic.com/en/docs/claude-code. Arquivos de memória, CLAUDE.md, auto-memory. ↩↩↩↩↩
-
Sistema de deliberação multi-agent do autor. 10 personas de pesquisa, máquina de estados de 7 fases, 141 testes. Documentado em Multi-Agent Deliberation. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩
-
Simon Willison, “Writing code is cheap now.” Agentic Engineering Patterns. ↩
-
Laban, Philippe, et al., “LLMs Get Lost In Multi-Turn Conversation,” arXiv:2505.06120, maio de 2025. Microsoft Research e Salesforce. 15 LLMs, mais de 200.000 conversas, queda média de desempenho de 39%. ↩↩↩
-
Mikhail Shilkov, “Inside Claude Code Skills: Structure, Prompts, Invocation.” mikhail.io. Análise independente da descoberta de skills, injeção de contexto e seção de prompt
available_skills. ↩ -
Claude Code Source,
SLASH_COMMAND_TOOL_CHAR_BUDGET. github.com/anthropics/claude-code. ↩ -
Anthropic, “Skill Authoring Best Practices.” platform.claude.com. Limite de 500 linhas, arquivos de apoio, convenções de nomenclatura. ↩
-
Anthropic, “Claude Code Hooks: Lifecycle Events.” code.claude.com/docs/en/hooks. 29 eventos de ciclo de vida documentados, tipos de hook, comportamento de matcher, hooks assíncronos, hooks HTTP, hooks de prompt, hooks de agente e hooks da ferramenta MCP. ↩↩↩↩↩↩↩
-
Tutorial de hooks Claude Code do autor. 5 hooks de produção criados do zero. Documentado em Claude Code Hooks Tutorial. ↩↩↩↩↩
-
Gerenciamento de janela de contexto do autor em 50 sessões. Documentado em Context Window Management. ↩↩↩↩↩
-
Implementação do Ralph Loop do autor. Iteração com contexto novo usando estado do filesystem, orçamentos de spawn. Documentado em The Ralph Loop. ↩↩↩↩↩↩↩
-
Arquitetura do sistema de deliberação do autor. 3.500 linhas de Python, 12 módulos, gatilho de confiança, validação de consenso. Documentado em Building AI Systems: From RAG to Agents. ↩↩↩
-
Nemeth, Charlan, In Defense of Troublemakers: The Power of Dissent in Life and Business, Basic Books, 2018. ↩
-
Wu, H., Li, Z., and Li, L., “Can LLM Agents Really Debate?” arXiv:2511.07784, 2025. ↩
-
Liang, T. et al., “Encouraging Divergent Thinking in Large Language Models through Multi-Agent Debate,” EMNLP 2024. ↩
-
Análise de AGENTS.md do autor em repositórios reais. Documentado em AGENTS.md Patterns. Veja também: GitHub Blog, “How to Write a Great agents.md: Lessons from Over 2,500 Repositories.” ↩↩↩↩↩↩↩↩
-
Metodologia de quality loop e evidence gate do autor. Parte do sistema Jiro Craftsmanship. ↩
-
Anthropic, “Claude Managed Agents Overview”. Beta público lançado em 8 de abril de 2026. Harness-as-a-service com checkpointing de sessão, sandbox incluído, API REST. Preço: tokens padrão + US$ 0,08 por hora de sessão. Header beta
managed-agents-2026-04-01. ↩↩ -
OpenAI, “openai-agents Python v0.14.0 release notes”. Lançado em 15 de abril de 2026; anúncio publicado em 16 de abril. Introduz a superfície SDK Sandbox Agents como uma camada beta sobre o fluxo existente
Agent/Runner:SandboxAgent,Manifest(contrato de workspace),SandboxRunConfig, capabilities (shell, edição de filesystem, inspeção de imagem, skills, sandbox memory, compaction), montagens de workspace (local, Git, remoto: S3, R2, GCS, Azure Blob, S3 Files), snapshots portáteis com normalização de caminhos e preservação de symlinks, além de serialização de estado de execução para retomar. Backends:UnixLocalSandboxClient,DockerSandboxCliente clientes hospedados para Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, Vercel via extras opcionais. O anúncio de 16 de abril foi resumido em Help Net Security. ↩↩ -
Google Cloud, “Scion: Multi-Agent Hypervisor”. Tornado open source em 7 de abril de 2026. Orquestra Claude Code, Gemini CLI e outros deep agents como processos isolados com container, git worktree e credenciais por agente. Modos de implantação local/hub/Kubernetes. Cobertura da InfoQ. ↩
-
Cluster de pesquisa sobre debate multi-agent, 1º a 2º trimestre de 2026. Wu et al., “Can LLM Agents Really Debate?” (arXiv 2511.07784); M3MAD-Bench — benchmark de debate multi-model multi-agent mostrando platôs de desempenho e suscetibilidade a consenso enganoso; Tool-MAD — atribuição heterogênea de ferramentas por agente + pontuações de juízes para Faithfulness/Relevance. ↩
-
Anthropic, “Our framework for developing safe and trustworthy agents”. 9 de abril de 2026. Cinco princípios: controle humano, alinhamento de valores, segurança, transparência, privacidade. Doação de MCP para a Agentic AI Foundation da Linux Foundation. ↩↩
-
Permiso Security, “SandyClaw: First Dynamic Sandbox for AI Agent Skills”. 2 de abril de 2026. Sandbox de execução de skills com detecção Sigma/YARA/Nova/Snort e vereditos sustentados por evidências. ↩
-
Anthropic, “Introducing Claude Opus 4.7”. 16 de abril de 2026. Melhorias para agentes de longo horizonte: resolução de tarefas de produção SWE-Bench 3× maior em comparação com Opus 4.6, resiliência a falhas de ferramentas, tier de esforço
xhigh, orçamentos de tarefa (beta), percepção de necessidades implícitas. Veja também What’s new in Opus 4.7 para mudanças incompatíveis na API Messages. ↩ -
Referência composta — OpenAI
openai-agents-pythonv0.14.7 (28 de abril de 2026) e v0.14.8 (29 de abril de 2026); Anthropicclaude-agent-sdk-pythonv0.1.69 (28 de abril), v0.1.70 (28 de abril) e v0.1.71 (29 de abril). Destaques da v0.14.7: propriedades de conveniênciatool_name/call_idem itens de ferramenta, aumento do limite de turnos da consolidação de memória da Fase 2, aliases GPT-5.5 para compactação de sandbox, validação mais rígida de membros tar/zip, rejeição de symlinks em fontesLocalFile, remoção de campos não definidos de chamadas Responses API. Destaques da v0.14.8: preserva erros de importação de reexportação de MCP, delimita seções de instruções de prompt do sandbox. claude-agent-sdk-python v0.1.69 adicionou docstrings aos campos deClaudeAgentOptionse atualizou o CLI incluído para v2.1.121; v0.1.70 elevou o piso da dependênciamcppara>=1.19.0(versões mais antigas descartavam silenciosamente retornosCallToolResultde handlers de ferramentas MCP em processo), corrigiu corrupção de nursery do Trio em cancelamento antecipado ao iterarquery()comoptions.stderrdefinido (spawn_detached()agora é usado para o leitor stderr) e atualizou o CLI incluído para v2.1.122; v0.1.71 adicionou campos de allowlist de domínio (allowedDomains,deniedDomains,allowManagedDomainsOnly,allowMachLookup) aSandboxNetworkConfigpara paridade com o schema TypeScript, e atualizou o CLI incluído para v2.1.123. ↩ -
OpenAI, “Instruções personalizadas com AGENTS.md”. Codex lê arquivos globais e de projeto
AGENTS.md/AGENTS.override.mdantes do trabalho, mescla orientações da raiz até o diretório atual e limita docs de projeto porproject_doc_max_bytes. ↩ -
OpenAI, “Agent Skills”. Skills do Codex usam
SKILL.md, divulgação progressiva, invocação explícita com$skille ativação implícita a partir de descrições. ↩ -
OpenAI, “Codex Hooks”. Codex hooks oferecem suporte a hooks de comando na configuração, plugin hooks, hooks gerenciados, matchers para eventos compatíveis, entrada JSON via stdin e campos de saída JSON. ↩
-
OpenAI, “Codex Subagents” e “changelog do Codex CLI 0.128.0”. Codex oferece suporte a workflows explícitos de subagents paralelos, agentes integrados
default,workereexplorer, agentes TOML personalizados, política de sandbox herdada, hooks empacotados em plugins, estado de ativação de hooks e workflows/goalpersistidos na versão 0.128.0. ↩ -
Anthropic, “Novidades em Claude Managed Agents”. 6 de maio de 2026. Dreaming (Research Preview): processo em segundo plano agendado que revisa sessões de agentes e armazenamentos de memória, extrai padrões e seleciona memórias. Outcomes (Public Beta): avaliação baseada em rubrica na qual um avaliador separado pontua a saída em relação à rubrica em sua própria janela de contexto, para não ser influenciado pelo raciocínio do agente. Multiagent Orchestration (Public Beta): o agente líder delega partes de um trabalho a especialistas, cada um com seu próprio modelo, prompt e ferramentas; especialistas trabalham em paralelo em um sistema de arquivos compartilhado e contribuem para o contexto geral do agente líder, com rastreamento completo por etapa no Claude Console. ↩↩↩↩↩↩↩↩
-
Anthropic,
claude-agent-sdk-pythonv0.1.74. 6 de maio de 2026. Adicionainclude_hook_eventsaClaudeAgentOptions; quando definido, eventos de hook (PreToolUse, PostToolUse, Stop, outros) são emitidos pelo CLI e retornados do fluxo de mensagens comoHookEventMessage, espelhando oincludeHookEventsdo SDK TypeScript. Claude CLI incluído atualizado para v2.1.129. ↩↩ -
Anthropic,
claude-agent-sdk-pythonv0.1.77. 8 de maio de 2026. Deprecia o valor"Skill"emallowed_toolsem favor de uma opção dedicadaskillsemClaudeAgentOptions, dá a Claude Code um sinal mais estruturado sobre skills disponíveis, melhora mensagens de erro em exceçõesCommand failede inclui Claude CLI v2.1.133. ↩↩ -
Anthropic, Claude Code v2.1.132. 6 de maio de 2026. Adiciona a env var
CLAUDE_CODE_SESSION_IDem subprocessos da ferramenta Bash (corresponde aosession_idque hooks já veem),CLAUDE_CODE_DISABLE_ALTERNATE_SCREENpara manter a conversa no scrollback nativo, banner de inicialização/tui fullscreenatualizado (menos memória, suporte a mouse, cópia automática na seleção) e cerca de vinte correções de bugs abrangendo encerramento gracioso por SIGINT, corrupção de--resumecom emoji substituto, flag--permission-modeno modo plano, tratamento de cursor em Indic e ZWJ, operações vim em NFD, engolir colagem que começa com/, memória ilimitada de MCP, nova tentativa detools/listde MCP, erro 400 de Bedrock + VertexENABLE_PROMPT_CACHING_1Hecontext_windowda statusline mostrando tokens cumulativos. ↩↩ -
Anthropic, Claude Code v2.1.133. 7 de maio de 2026. Hooks agora recebem entrada JSON
effort.level+ env var$CLAUDE_EFFORT(também legível a partir de comandos Bash). Subagents descobrem skills de projeto, usuário e plugin via ferramentaSkill(correção de regressão). Novas configurações de administrador:worktree.baseRef(fresh|head) reverte a base do worktree de volta paraorigin/<default>depois da mudança da v2.1.128 paraHEADlocal;sandbox.bwrapPathesandbox.socatPathfixam binários de sandbox no Linux/WSL;parentSettingsBehavior('first-wins' | 'merge') controla comomanagedSettingsdo SDK se compõem com configurações pai. Outras correções: 401 em sessão paralela após corrida de refresh token, escopo de regra de permissão da raiz do drive, suporte a proxy/mTLS de OAuth MCP, stop/interrupt do Remote Control concluindo cancelamento, vazamento de/effortentre sessões,--remote-controllistado em--help. ↩↩↩↩↩↩ -
Anthropic, Claude Code v2.1.136. 8 de maio de 2026. Adiciona
settings.autoMode.hard_denypara regras do classificador de modo automático que bloqueiam incondicionalmente, independentemente da intenção do usuário ou de exceções de permissão, eCLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTELpara reativar a pesquisa de qualidade na sessão para empresas que capturam respostas via OpenTelemetry. Correções com impacto operacional: servidores MCP de.mcp.json, plugins e conectores claude.ai desaparecendo silenciosamente depois de/clearno VS Code, JetBrains e Agent SDK; refresh tokens de OAuth MCP sendo perdidos em refresh simultâneo; modo plano não bloqueando gravações em arquivos quando existia uma regra de permissãoEdit(...)correspondente; hooksStop/UserPromptSubmitde plugin falhando quando a limpeza de cache excluía uma versão ainda em execução; entradaskillsemplugin.jsonocultando o diretórioskills/padrão do plugin; env vars de hook SessionStart deCLAUDE_ENV_FILEficando obsoletas depois de/resumeou/clear. Além de cerca de trinta correções adicionais de polimento e confiabilidade abrangendo a TUI, autocomplete e renderização de terminal. Versões complementares: v2.1.137 (9 de maio, correção de ativação da extensão VSCode no Windows), v2.1.138 (9 de maio, correções internas);claude-agent-sdk-pythonv0.1.78, v0.1.79 e v0.1.80 atualizaram o Claude CLI incluído para v2.1.136, v2.1.137 e v2.1.138, respectivamente. ↩↩↩↩ -
OpenAI,
openai-agents-pythonv0.17.0. 8 de maio de 2026.RealtimeAgentusagpt-realtime-2por padrão. A materialização de fonte local do sandbox agora restringeLocalFile.srceLocalDir.srcaobase_dirdo manifesto (o diretório de trabalho atual do processo SDK quando o manifesto é aplicado), a menos que a fonte receba permissão explícita viaManifest.extra_path_grantscomSandboxPathGrant. Fontes locais relativas são resolvidas a partir debase_dir; fontes absolutas já devem estar dentro dele ou sob uma permissão explícita. Migração: declare raízes confiáveis do host no nível do manifesto, de preferência somente leitura. Trateextra_path_grantscomo configuração confiável da aplicação; não preencha a partir da saída do modelo nem de entrada de manifesto não confiável. Também inclui uma correção de colisão deextra_argsno gerenciamento de contexto de Responses. ↩↩↩↩ -
Anthropic, Claude Code v2.1.139. Maio de 2026. Evidência local da sessão atual em 11 de maio de 2026:
claude --versionretornou2.1.139 (Claude Code). As notas de lançamento adicionam Agent View (claude agents),/goal, hookargs: string[],continueOnBlockparaPostToolUse,CLAUDE_PROJECT_DIRpara servidores stdio MCP, interpolação de comandos de plugin para${CLAUDE_PROJECT_DIR}e correções, incluindo a emissão declaude_code.active_time.totaldo OpenTelemetry no modo--print. ↩↩↩↩↩ -
Anthropic, “Gerencie vários agents com agent view”. A documentação do Agent View descreve como despachar e gerenciar muitas sessões do Claude Code em uma única tela, ver o que cada sessão está fazendo e identificar sessões que precisam de intervenção do operador. A página identifica o Agent View como Research Preview e documenta limitações de sessões locais. ↩↩↩
-
Anthropic, “Claude Code Hooks”. Documentação de hooks cobrindo campos de command-hook,
PreToolUse,PostToolUse, comportamento de código de saída, entrada/saída de hook e caminhos de expansão direta de slash-command. ↩↩ -
GitHub Advisory Database, GHSA-f3jg-756w-gm35 / CVE-2026-45046. “Gryph Agents Payload Filter Fails to Strip Tool Payload for Sensitive Content.” Publicado em maio de 2026; descreve conteúdo sensível de payload
file-writepermanecendo em logs SQLite locais no comportamento padrão de logging e corrigido no Gryph v0.7.0. ↩↩ -
OSV, GHSA-wxxx-gvqv-xp7p / CVE-2026-40217. “LiteLLM has a sandbox escape in custom-code guardrail.” Publicado em 11 de maio de 2026; descreve um endpoint
POST /guardrails/test_custom_codeprotegido por admin que executa Python fornecido pelo usuário em um sandbox feito manualmente e recomenda atualizar ou bloquear o endpoint se não for possível atualizar. ↩↩ -
Young Jo (seph) Chung e Safwat Hassan, “Collaborator or Assistnat? How AI Coding Agents Partition Work Across Pull Request Lifecycles”, arXiv:2605.08017v1, maio de 2026. O resumo relata a análise de 29.585 ciclos de vida de PRs em OpenAI, Copilot, Devin, Cursor e Claude Code, distinguindo agência operacional de governança de merge. ↩↩
-
Jiayuan Liu et al., “The Memory Curse: How Expanded Recall Erodes Cooperative Intent in LLM Agents”, arXiv:2605.08060v1, maio de 2026. O resumo relata experimentos com 7 LLMs e 4 jogos ao longo de 500 rodadas, nos quais o histórico acessível expandido degradou a cooperação em 18 de 28 configurações modelo-jogo. ↩↩
-
Anthropic, Claude Code v2.1.140. 12 de maio de 2026. Adiciona
subagent_typeà entrada de hook de agent e corrige hooksConfigChange,disableAllHooks,allowManagedHooksOnly, exibição de env-var de diálogo de permissões a partir de resultados de hook, redefinições de estilo personalizado após atualizações de configurações, fallback de resolução de pacote nativo no Windows Git Bash e/scroll-speed. ↩↩↩ -
Anthropic, Claude Code v2.1.141. 13 de maio de 2026. Adiciona
terminalSequenceà saída JSON de hook para notificações de desktop, títulos de janela e sons;CLAUDE_CODE_PLUGIN_PREFER_HTTPSpara clonagem de fonte de plugin HTTPS;ANTHROPIC_WORKSPACE_IDpara escopo de workspace em federação de identidade de workload;claude agents --cwd <path>para filtragem de diretório no Agent View; opções de anexo de sessão em/feedbackpara as últimas 24 horas ou 7 dias; e correções relacionadas a agent, job em segundo plano, hook, MCP, Remote Control, diálogo de permissões e renderização de terminal. Verificação da sessão atual em 14 de maio de 2026:claude --versionretornou2.1.141 (Claude Code)enpm view @anthropic-ai/claude-code version dist-tags.latest time.modified --jsonretornou a versão mais recente2.1.141. ↩↩↩ -
Anthropic, Claude Code v2.1.142. 14 de maio de 2026. Adiciona flags de despacho de
claude agentspara sessões em segundo plano (--add-dir,--settings,--mcp-config,--plugin-dir,--permission-mode,--model,--effort,--dangerously-skip-permissions), muda o Fast mode para Opus 4.7 por padrão comCLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1como override de fixação, expõe arquivosSKILL.mdde plugin no nível raiz como skills quando não existe diretórioskills/, mostra servidores LSP fornecidos por plugin nos detalhes do plugin, avisa antes de substituir uma conexão existente do GitHub App e corrige problemas deMCP_TOOL_TIMEOUT, worktree de sessão em segundo plano, sleep/wake do daemon, limpeza do daemon pós-upgrade, cache de plugin e confiabilidade do Agent View. Verificação da sessão atual em 15 de maio de 2026:claude --versionretornou2.1.141 (Claude Code)e a versão mais recente no npm retornou2.1.142. ↩↩ -
Anthropic, Claude Code v2.1.147. 21 de maio de 2026. Adiciona a ferramenta
Workflow, desativada por padrão, para orquestração multi-agent determinística (CLAUDE_CODE_WORKFLOWS=1), sessões em segundo plano fixadas,/code-review [effort] --commentsubstituindo/simplify, reforço do sandbox de REPL e Workflow, diagnósticos do auto-updater, melhorias de renderização de diffs grandes, deduplicação de histórico de prompts e correções para restrições de login enterprise, comportamento do PowerShell, paginação de MCP, Agent View, plugins, condições de hook, texto colado e loops de imagem removida. Verificação da sessão atual em 21 de maio de 2026:claude --versionretornou2.1.144 (Claude Code)enpm view @anthropic-ai/claude-code version dist-tags.latest time.modified --jsonretornou a versão mais recente2.1.147comtime.modified2026-05-21T20:38:35.053Z. ↩↩↩ -
Anthropic, Claude Code v2.1.148, v2.1.149, v2.1.150, e Claude Code CHANGELOG. v2.1.148 corrige uma regressão de código de saída do Bash introduzida na v2.1.147. v2.1.149 adiciona uso de limites por categoria em
/usage, rolagem por teclado em/diff, renderização de listas de tarefas GFM e EnterpriseallowAllClaudeAiMcps; correções relevantes para harness incluem bypasses de permissão decdno PowerShell, análise de permissões de prefixo/curinga e variável obsoleta no PowerShell, escopo da allowlist de escrita do sandbox de git-worktree, esgotamento de vnode do Bashfindno macOS, travamentos de aprovação de configurações gerenciadas, diagnósticos de espaço em caminho paraotelHeadersHelpere sincronização de renomeação de sessão do Remote Control. v2.1.150 é apenas infraestrutura interna. Verificação da sessão atual em 24 de maio de 2026:claude --versionlocal retornou2.1.144 (Claude Code), enquanto a versão mais recente no npm retornou2.1.150comtime.modified2026-05-23T04:03:10.243Z; a versão mais recente do GitHub retornouv2.1.150, publicada em2026-05-23T04:03:51Z. ↩↩↩ -
OpenAI,
openai-agents-pythonv0.17.1, v0.17.2, e v0.17.3. v0.17.1 adiciona detalhes de erro do provedor de sandbox, limites de extração de arquivos, validação de subpath de GitRepo e correções de tracing/sessão/realtime. v0.17.2 corrige persistência de raciocínio em Conversations, motivos de rejeição de aprovação local, configurações de AsyncSQLiteSession e comportamento de ferramenta desconhecida em realtime. v0.17.3 mantém credenciais de mountpoint fora de comandos de sandbox, rejeita raízes relativas de workspace de sandbox, lida com estados terminais de sandbox da Vercel e corrige casos extremos de output-schema, guardrail, runtime e importação de memória. Verificação da sessão atual em 24 de maio de 2026:python3 -m pip index versions openai-agentsretornou a versão mais recente0.17.3; a versão mais recente do GitHub retornouv0.17.3, publicada em2026-05-19T01:27:36Z. ↩↩ -
Claude Code Changelog (canônico), notas da versão v2.1.152, notas da versão v2.1.153, notas da versão v2.1.154. A v2.1.152 (27 de maio) adiciona o evento de hook
MessageDisplay,disallowed-toolsno frontmatter de skills/comandos,/reload-skills, saídasreloadSkillsesessionTitledo hookSessionStart, aplicação de/code-review --fixna working tree, a configuração gerenciadapluginSuggestionMarketplaces, remoção da adesão ao auto-mode e troca no meio da sessão com--fallback-model. A v2.1.153 (28 de maio) faz/modelser salvo como o padrão para novas sessões, comsapenas para a sessão, adicionaskipLfsaos marketplaces de plugins, expõeCOLUMNS/LINESno env da linha de status e persiste concessões de Privacidade e Segurança do agente em segundo plano no macOS. A v2.1.154 (28 de maio) torna o Opus 4.8 o padrão com alto esforço por padrão e um novo/effort xhigh, introduz workflows dinâmicos via/workflows, disponibiliza o Fast mode no Opus 4.8 a uma taxa 2× para velocidade 2,5×, usa por padrão o prompt de sistema enxuto para todos os modelos exceto Haiku/Sonnet/Opus 4.7 e anteriores, permite queclaude agentsaceite! <command>para sessões de shell em segundo plano, permite que plugins declaremdefaultEnabled: false, passaCLAUDE_CODE_SESSION_IDeCLAUDECODE=1para o env de subprocessos stdio MCP e descontinuaCLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE(removido em 1º de junho). ↩ -
Codex Changelog (OpenAI Developers) e releases openai/codex. O Codex CLI 0.134.0 (26 de maio de 2026) adicionou busca local no histórico de conversas, tornou
--profileo seletor principal de perfil nos fluxos CLI/TUI/sandbox com migração da configuração legada, melhorou a configuração de MCP com direcionamento de ambiente por servidor mais OAuth para servidores HTTP streamable, tornou os schemas de ferramentas de conectores mais confiáveis ao preservar$ref/$defslocais e compactar schemas grandes demais antes da exposição, e habilitou execução concorrente de ferramentas MCP somente leitura que anunciamreadOnlyHint. O Codex CLI 0.135.0 (28 de maio de 2026) adicionou diagnósticos mais ricos aocodex doctor, expôs detalhes da conexão remota e a versão do servidor em/status, adicionou edição de objetos de texto do vim com melhor comportamento de palavras/fim de linha e interrupt-turn configurável, fez/permissionsentender perfis de permissão nomeados, empacotou um helper zsh corrigido e embutido nos macOS e Linux compatíveis, e adicionou presets amigáveis deSandboxao Python SDK para APIs de thread e turno. ↩ -
notas da versão Hermes Agent v0.15.0. “A release Velocity.” 1.302 commits, 747 PRs mesclados, 321 colaboradores da comunidade.
run_agent.pyrefatorado em 76% (16.083 → 3.821 linhas em 14 módulos). Plataforma Kanban multi-agent com autodecomposição, topologia de swarm, substituições de modelo por tarefa, tarefas agendadas e gerenciamento de worktree.session_searchredesenhado, 4.500× mais rápido, com a dependência LLM removida. Defesa de promptware contra prompt injection da classe Brainworm em três gargalos de segurança. Integração com Bitwarden Secrets Manager, substituindo chaves por provedor por um único token de bootstrap. Pacotes de skills para carregar várias skills com um comando slash. Orquestrador de sessões TUI para gerenciamento de várias sessões em um terminal. Provedores de geração de imagem Krea 2 e FAL; rodada de integração xAI (plugin de busca na web, OAuth upstream, detecção de modelos aposentados, pausas naturais em TTS). ↩ -
notas da versão Claude Code v2.1.157 e o Claude Code Changelog (canônico). 29 de maio de 2026. Plugins colocados no diretório
.claude/skills/de um projeto agora carregam automaticamente sem exigir um marketplace;claude plugin init <name>cria o scaffold de um novo plugin nesse diretório;/pluginganhou autocompletar de argumentos. Também:EnterWorktreepode alternar entre worktrees gerenciadas por Claude no meio da sessão, worktrees em segundo plano ficam desbloqueadas depois que o agente termina para quegit worktree remove/prunefuncionem corretamente, e eventos de telemetriatool_decisionincluemtool_parametersquandoOTEL_LOG_TOOL_DETAILS=1. Também inclui correções de bugs para imagens não processáveis (agora degradam para placeholders de texto), prompts de permissão de rede no sandbox em modo auto/bypass, aposentadoria de sessão em segundo plano ao estacionar e renderização de terminal em tmux / VS Code / Cursor / Windsurf. ↩ -
Claude Code Changelog (canônico) e notas da versão Codex CLI v0.137.0, junho de 2026. Claude Code v2.1.162 (3 de junho) adicionou
waitingForaclaude agents --json; v2.1.163 (4 de junho) adicionouhookSpecificOutput.additionalContextpara feedback sem erro deStop/SubagentStop; v2.1.166 (6 de junho) endureceu a autoridade deSendMessageentre sessões (mensagens retransmitidas não carregam mais autoridade de usuário) e adicionou a configuraçãofallbackModel(até três fallbacks, uma nova tentativa única em erros não repetíveis). O Codex CLI v0.137.0 (4 de junho) lançou multi-agent v2 (runtime-with-thread,hide_spawn_agent_metadatatrue por padrão, propagação de eventos pai→filho), uma extensão de skills v1 com resolução de catálogo por turno, e eventos de contributor do ciclo de vida de início de thread/erro de turno; a documentação de subagents do Codex confirma os tipos de agente default/worker/explorer e controles de concorrênciaagents.max_threads/max_depth. AGENTS.md (agents.md) não publica nenhuma alteração de spec versionada. Verificação da sessão atual em 8 de junho de 2026. ↩ -
Anthropic, notas da versão Claude Code v2.1.169 e notas da versão v2.1.170, 8–9 de junho de 2026. A v2.1.169 adiciona a configuração
disableBundledSkillsmaisCLAUDE_CODE_DISABLE_BUNDLED_SKILLS(oculta skills, workflows e comandos slash integrados do modelo); a flag--safe-modemaisCLAUDE_CODE_SAFE_MODE(inicia uma sessão com todas as customizações desabilitadas: CLAUDE.md, plugins, skills, hooks e servidores MCP); e o comando/cd(move uma sessão para um novo diretório de trabalho sem quebrar o cache do prompt). A v2.1.170 torna Claude Fable 5 (claude-fable-5) selecionável via/model claude-fable-5, com Opus 4.8 permanecendo o padrão agêntico do Claude Code. Lançamento de nível de modelo: Anthropic, “Claude Fable 5”, 9 de junho de 2026 — uma camada “Mythos-class” acima do Opus, descrita como o modelo mais poderoso da Anthropic tornado seguro para uso geral. ↩↩↩↩ -
OpenAI, notas da versão Codex CLI rust-v0.138.0 (8 de junho de 2026) e notas da versão rust-v0.139.0 (9 de junho de 2026). A v0.138.0 endurece o multi-agent v2 com payloads de mensagens entre agentes criptografados, um catálogo de configuração de agentes v2, um LRU de residência de agente e concorrência contada por execução ativa, não por threads geradas. A v0.139.0 renomeia o API de ciclo de vida
close_agentparainterrupt_agente limita os avisos de inicialização de MCP do subagent à thread proprietária para que eles não sejam mais duplicados no pai. A descoberta de AGENTS.md é endurecida nas duas versões: o carregamento passa por sistemas de arquivos de ambiente e preserva caminhos lógicos durante a descoberta, garantindo a seleção correta de arquivos para workspaces remotos e com symlinks. ↩↩↩ -
Anthropic, notas de lançamento do Claude Code v2.1.172 (10 de junho de 2026). Agora os sub-agents podem iniciar seus próprios sub-agents, com delegação recursiva compatível até 5 níveis de profundidade; antes, a delegação era efetivamente de 1 nível. ↩
-
Anthropic, notas de lançamento do Claude Code v2.1.175 e notas de lançamento da v2.1.178, 12–15 de junho de 2026. A v2.1.175 adiciona a configuração gerenciada
enforceAvailableModels(fixa o modelo Default e impede que configurações de usuário/projeto ampliem a allowlist gerenciadaavailableModels). A v2.1.178 adiciona a sintaxe de regra de permissãoTool(param:value), que corresponde aos parâmetros de entrada de uma ferramenta com um curinga*(por exemplo,Agent(model:opus)); carrega skills de diretórios.claude/skillsaninhados com desambiguação<dir>:<name>em caso de conflito de nome; resolve agents, workflows e output-styles aninhados em.claude/mais próximos do cwd em caso de colisão (salvamentos de workflow no escopo do projeto miram o.claude/workflows/existente mais próximo); avalia inícios de subagent com o classificador de auto-mode antes do lançamento; e corrige especificações de nível de servidor MCP (mcp__server,mcp__server__*,mcp__*) emdisallowedToolsde subagent que eram ignoradas silenciosamente. ↩↩↩↩↩↩ -
OpenAI, notas de lançamento do Codex CLI rust-v0.140.0, 15 de junho de 2026 (promovido para estável a partir da linha v0.140.0-alpha). Adiciona
/importpara importar seletivamente setup, configuração do projeto e chats recentes do Claude Code; exclusão permanente de sessão viacodex delete,/deleteethread/deletedo app-server, com proteções de confirmação; um menu unificado de menções@para arquivos, plugins e skills; e visualizações de atividade de tokens em/usage. ↩ -
Anthropic, notas de lançamento do Claude Code v2.1.183, 19 de junho de 2026 — o auto mode bloqueia comandos git destrutivos (
git reset --hard,git checkout -- .,git clean -fd,git stash drop) quando você não pediu para descartar trabalho,git commit --amendem commits não feitos pelo agent nesta sessão, eterraform destroy/pulumi destroy/cdk destroy, a menos que você tenha pedido a stack específica. OpenAI, notas de lançamento do Codex CLI rust-v0.141.0, 18 de junho de 2026 (promovido para estável a partir da linha v0.141.0-alpha) — executores remotos usam canais Noise-relay autenticados e criptografados de ponta a ponta; a execução remota multiplataforma preserva diretórios de trabalho e shells nativos do executor; TLS oferece suporte a assinaturas de certificado P-521 para proxies corporativos. ↩↩