Arquitetura de agentes: como criar ambientes de desenvolvimento com IA
# O sistema completo para criar ambientes de agentes de IA prontos para produção: skills, hooks, memória, subagentes e os padrões de orquestração que tornam os agentes confiáveis.
TL;DR: Claude Code não é uma caixa de chat com acesso a arquivos. É um runtime programável com 31 eventos de ciclo de vida documentados, cada um podendo receber hooks com scripts shell que o modelo não consegue ignorar. Organize hooks em dispatchers, dispatchers em skills, skills em agentes, agentes em workflows, e você terá um harness de desenvolvimento autônomo que impõe restrições, delega trabalho, mantém memória entre sessões e orquestra deliberação multiagente. Os workflows dinâmicos do Claude Code (v2.1.154+) tornaram a orquestração multiagente determinística um recurso nativo — de dezenas a centenas de agentes em segundo plano via
/workflows— e a plataforma agora executa subagents em segundo plano por padrão (20 simultâneos, aninhamento de profundidade 3), permite que suas sessões enviem mensagens entre si como pares (v2.1.224) e executa sessões na nuvem em runners auto-hospedados. Hooks e evidence gates continuam responsáveis pela correção.525387 Este guia aborda todas as camadas dessa stack: de um único hook a um sistema de consenso com 10 agentes. Nenhum framework necessário. Tudo em Bash e JSON.
Andrej Karpathy cunhou um termo para o que cresce em torno de um agente LLM: claws. Os hooks, scripts e a orquestração que permitem ao agente alcançar o mundo fora de sua janela de contexto.1 A maioria dos desenvolvedores trata agentes de programação com IA como assistentes interativos. Eles digitam um prompt, observam o agente 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 agente de programação com IA é um runtime programável com um kernel LLM. Toda ação que o modelo realiza passa por hooks que você controla. Você define políticas, não prompts. O modelo opera dentro da sua infraestrutura da mesma forma que um servidor web opera dentro das regras do nginx. Você não fica no nginx digitando requisições. Você o configura, faz o deploy e o monitora.
A distinção importa porque a infraestrutura se multiplica. Um hook que bloqueia credenciais em comandos Bash protege todas as sessões, todos os agentes e todas as execuções autônomas. Uma skill que codifica seus critérios de avaliação é aplicada de forma consistente, seja quando você a invoca ou quando um agente a invoca. Um agente que revisa código em busca de segurança executa as mesmas verificações, independentemente de você estar acompanhando ou não.2
Principais conclusões
- Hooks garantem a execução; prompts não. Use hooks para linting, formatação, verificações de segurança e tudo o que precisar ser executado 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 conhecimento especializado que é ativado 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 o excesso 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 agentes quando os workers precisarem de coordenação contínua.5
- A memória fica no sistema de arquivos. Os arquivos persistem entre janelas de contexto. CLAUDE.md, MEMORY.md, diretórios de regras e documentos de handoff formam um sistema estruturado de memória externa.6
- A deliberação multiagente identifica pontos cegos. Agentes individuais não conseguem desafiar as próprias suposições. Dois agentes independentes com prioridades de avaliação diferentes identificam falhas estruturais que os quality gates não conseguem abordar.7
- O padrão de harness é o sistema. CLAUDE.md, hooks, skills, agentes e memória não são recursos independentes. Eles se combinam em uma camada determinística entre você e o modelo, que escala com a 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 multiagente, Padrões de produção |
| Avalia arquitetura de agentes | Por que a arquitetura de agentes importa | Framework de decisão, Considerações de segurança |
| Configura um harness para uma 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, oferece 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 de Harness
O harness não é um framework. É um padrão: um conjunto combinável de arquivos, scripts e convenções que envolve um agente de programação com IA em 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ções: os arquivos CLAUDE.md e os diretórios de regras definem o que o agente sabe sobre 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: skills fornecem conhecimento especializado de domínio e são ativadas automaticamente com base no contexto. Hooks fornecem gates determinísticos que são acionados em cada chamada de ferramenta correspondente. Arquivos de memória preservam o estado entre sessões. Agentes personalizados fornecem configurações especializadas de subagents.
Camada de orquestração: padrões multiagente coordenam agentes independentes para pesquisa, revisão e deliberação. Orçamentos de spawn impedem recursão descontrolada. A validação por consenso garante a qualidade.
A principal percepção: a maioria dos usuários trabalha inteiramente na Core Layer, vendo o contexto inchar e os custos aumentarem. Usuários avançados configuram as camadas de instruções e extensões e, então, usam a Core Layer 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 “criar 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 + contêiner de sandbox + persistência de estado como uma REST API, cobrados com tokens padrão mais US$ 0,08/hora de sessão. A atualização Agents SDK da OpenAI (16 de abril) formalizou a mesma divisão — harness e computação como camadas separadas, com provedores de sandbox nativos (Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, Vercel) e snapshot/rehydrate para sobreviver à perda de contêiner.2324
A superfície mais profunda de SDK para o 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 e capacidades de sandbox; um Manifest que descreve o contrato de workspace novo (arquivos, diretórios, arquivos locais, repositórios Git, env, usuários, mounts); um SandboxRunConfig para a configuração por execução do cliente de sandbox, injeção de sessão ativa, substituições de manifesto, snapshots e limites de concorrência de materialização. As capacidades integradas incluem acesso ao shell, edição do sistema de arquivos, inspeção de imagens, skills, memória de sandbox e compactação. A memória de sandbox preserva lições extraídas entre execuções e as revela progressivamente; os workspaces oferecem suporte a arquivos locais, entradas de repositórios 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 por meio de extras opcionais.24
Para projetos Python que querem incorporar o runtime Claude Code como uma biblioteca — entre “executar claude pelo shell” e “REST API para Managed Agents” — claude-agent-sdk-python é a terceira opção. A série de 28 a 29 de abril (v0.1.69 → v0.1.71) atualizou o CLI incluído para v2.1.123, elevou o requisito mínimo da dependência mcp para >=1.19.0 (versões mais antigas descartavam silenciosamente retornos CallToolResult de ferramentas MCP em processo, deixando o modelo com um blob de erro de validação) e trouxe SandboxNetworkConfig para a paridade de schema com o TypeScript SDK (allowedDomains, deniedDomains, allowManagedDomainsOnly, allowMachLookup).30 Em 2026-08-12, o pacote está em v0.2.137 no PyPI e o TypeScript SDK em v0.3.229 (ambos verificados nos registros ativos); a linha 0.2.x é incremental em relação à superfície 0.1.x descrita aqui — as opções include_hook_events, skills e de configuração de sandbox abaixo continuam atuais — com lançamentos recentes focados na limpeza de subprocessos e na confiabilidade do stream NDJSON.9086
Se seu harness inclui uma camada de voz ou realtime, openai-agents-python v0.17.0 (8 de maio de 2026) atualizou RealtimeAgent para usar gpt-realtime-2 por padrão.41 Sessões realtime existentes adotam automaticamente o novo padrão; fixe explicitamente o modelo anterior se precisar manter o comportamento antigo para avaliação.
Em julho de 2026, a coluna gerenciada também ganhou uma abordagem multiagente do lado da OpenAI: openai-agents-python v0.18.2 (11 de julho) e openai-agents-js v0.13.2 (10 de julho) adicionam suporte hospedado a múltiplos agentes em beta — orquestração de múltiplos agentes gerenciada pela OpenAI como um serviço hospedado, a contraparte direta do beta público de Managed Multiagent Orchestration da Anthropic abordado na seção Orquestração multiagente.73 Ambos os fornecedores agora oferecem, na camada multiagente, a mesma troca que a tabela abaixo descreve para agentes individuais: o fornecedor executa o loop de delegação, e você abre mão da superfície de hooks.
A bifurcação arquitetural agora é real:
| Dimensão | Harness auto-hospedado (padrão deste guia) | Harness gerenciado (Claude Managed Agents / OpenAI Agents SDK) |
|---|---|---|
| Carga operacional | Você executa tudo | O fornecedor executa o loop, sandbox e 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 + adicional por hora de runtime |
| Durabilidade do estado | Você a projeta | O fornecedor cria checkpoints entre desconexões |
| Orquestração de equipes de agentes | Crie a sua própria | Coordenação multiagente fornecida pelo fornecedor |
Quando escolher cada opção: o auto-hospedado continua sendo adequado para equipes que já têm capacidade de infraestrutura, querem skills/hooks sob seu controle ou estão otimizando profundamente um fluxo de trabalho específico. O gerenciado é adequado para equipes sem engenheiros de plataforma dedicados, quando o tempo para gerar valor importa mais do que a personalização, ou quando execuções de agentes precisam sobreviver de forma confiável ao fechamento de laptops sem que você construa essa camada de persistência. Os dois são compatíveis — você pode executar um harness auto-hospedado que delega tarefas específicas de longa duração para Managed Agents via sua REST API.
Como o Harness aparece no 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 nessa estrutura tem uma finalidade. A árvore ~/.claude/ é uma 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 que você precise chamá-las explicitamente.4 No momento em que você perceber que está reexplicando o mesmo contexto entre sessões, é hora de criar uma skill.
Quando criar uma skill
| Situação | Crie uma… | Por quê |
|---|---|---|
| Você cola a mesma checklist em todas as sessões | 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 | Basta digitar. Nem tudo precisa de abstração. |
Skills são para conhecimento que o Claude sempre tem disponível. Slash commands são para ações que você aciona explicitamente. Se estiver decidindo entre os dois, pergunte: “O Claude deve aplicar isso automaticamente ou eu devo decidir quando executá-lo?”
Criando uma skill
As skills podem ficar em quatro locais, do escopo mais amplo ao mais restrito:4
| Escopo | Localização | Aplica-se a |
|---|---|---|
| Empresa | Configurações gerenciadas | Todos os usuários da 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 estiver 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 1.024 caracteres). O Claude usa isso para decidir quando aplicar a skill |
allowed-tools |
Não | Restringe as capacidades do Claude (por exemplo, Read, Grep, Glob para somente leitura) |
disable-model-invocation |
Não | Impede a ativação automática; a skill só é ativada por meio de /skill-name |
user-invocable |
Não | Defina como false para ocultar completamente do menu / |
model |
Não | Substitui qual modelo usar quando a skill estiver 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 restritos a esta skill |
$ARGUMENTS |
Não | Substituição de string: substituída pela entrada do usuário após /skill-name |
O campo de descrição é tudo
No início da sessão, Claude Code extrai o name e a description de cada skill e os injeta no contexto do Claude. Quando você envia uma mensagem, o Claude usa raciocínio de modelo de linguagem para decidir se alguma skill é relevante. Uma análise independente do código-fonte do Claude Code confirma o mecanismo: as descrições de 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 (revisa código quanto a tipos específicos de problemas), quando usá-la (ao examinar alterações, PRs, análises de qualidade) e frases de gatilho (revisar, auditar, verificar) que os usuários digitam naturalmente.
Observe que a ativação automática é um controle, não uma regra: desde a v2.1.215, o Claude não autoinvoca mais as skills agrupadas /verify e /code-review — elas são executadas somente por invocação explícita, um recuo deliberado da ativação orientada por descrição para skills pesadas de revisão, cujas execuções não solicitadas custavam mais do que rendiam.74
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 um limite alternativo de 8.000 caracteres.4 Se você tiver muitas skills, mantenha cada descrição concisa e coloque o principal caso de uso primeiro. Você pode substituir o orçamento pela variável de ambiente SLASH_COMMAND_TOOL_CHAR_BUDGET,11 mas a melhor soluçã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
Faça referência a eles a partir do SKILL.md com links relativos. O Claude lê esses arquivos sob demanda quando a skill é ativada. Mantenha o SKILL.md com menos de 500 linhas e mova o material de referência detalhado para arquivos de suporte.12
Compartilhando skills pelo Git
As skills de projeto (.claude/skills/ na raiz do repositório) são compartilhadas por meio do 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 os colegas de equipe fazem pull, recebem a skill automaticamente. Sem instalação, sem configuração. Essa é a maneira mais eficaz de padronizar especialização 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 de prompts organizada:
~/.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, formam uma base de conhecimento da qual o Claude recorre automaticamente conforme o contexto. Um desenvolvedor júnior recebe orientação de nível sênior sem precisar pedi-la.
Skills se combinam com hooks
Skills podem definir seus próprios hooks no frontmatter, que são ativados somente enquanto a skill é executada. Isso cria um comportamento específico de domínio que não polui 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 por hooks SessionStart, injetando restrições de qualidade em todas as sessões sem invocação explícita. A skill em si é conhecimento. O hook é aplicação. Juntos, eles formam uma camada de política.
Erros comuns com skills
Descrições amplas demais. Uma skill git-rebase-helper que é ativada em qualquer prompt relacionado ao git (rebases, merges, cherry-picks, até mesmo git status) polui o contexto em 80% das sessões. A solução é restringir a descrição ou adicionar disable-model-invocation: true e exigir invocação explícita por /skill-name.4
Skills demais competindo pelo orçamento. Mais skills significam mais descrições competindo pelo orçamento de contexto de 1%. Se você perceber que skills não estão sendo ativadas, verifique /context para ver quais foram excluídas. Priorize menos skills, bem descritas, em vez de muitas vagas.
Informações críticas escondidas em arquivos de suporte. O Claude lê o SKILL.md imediatamente, mas só acessa arquivos de suporte quando necessário. Se informações críticas estiverem em um arquivo de suporte, o Claude talvez não as encontre. Coloque as informações essenciais diretamente no SKILL.md.4
Superfície de skills do SDK (8 de maio de 2026)
Harnesses auto-hospedados em claude-agent-sdk-python v0.1.77+ devem usar a opção skills em ClaudeAgentOptions para declarar as skills disponíveis, e não o valor legado "Skill" em allowed_tools.37 A forma abreviada "Skill" está depreciada, e a opção dedicada fornece ao Claude Code informações mais estruturadas sobre quais skills estão disponíveis. O CLI agrupado na v0.1.77 é a v2.1.133.
Convergência de plugins e skills em .claude/skills/ (29 de maio de 2026)
As skills sempre foram carregadas do diretório .claude/skills/ de um projeto. O Claude Code v2.1.157 estende esse diretório aos plugins: um plugin colocado em .claude/skills/ agora é carregado automaticamente, sem registro em marketplace, e claude plugin init <name> cria um novo plugin ali com o manifesto e o SKILL.md já conectados.58 Isso fecha a lacuna entre as duas formas de ferramentas de projeto que antes ficavam em locais diferentes — uma skill simples enviada diretamente ao repositório, em comparação com um plugin que reúne uma skill mais hooks mais um servidor MCP, mas que antes precisava de um marketplace para ser instalado. O efeito prático para o design de harnesses: ferramentas com escopo de projeto não precisam mais passar por um registro para serem distribuídas — escreva-as, faça commit e os colegas de equipe recebem a mesma superfície ao executar git pull. Os plugins ainda são responsáveis pelo caso de uso de instalação agrupada (hooks + skills + servidores MCP + agents em um ZIP); a mudança é que um projeto não precisa mais configurar um marketplace apenas para carregar um plugin de sua própria árvore. Essa convergência agora tem uma base entre fornecedores: Agent Plugins 1.0.0 (publicado em 6 de agosto de 2026) padroniza o mesmo formato de pacote — um manifesto plugin.json, diretórios skills/ com pastas SKILL.md, mcp.json opcional — como “o formato de pacote portátil para agentes de IA”, adotado no lançamento por VS Code, Cursor, GitHub Copilot, ChatGPT & Codex e Kiro. Trata-se explicitamente de uma camada de empacotamento sobre Agent Skills e MCP, não de uma substituição; observe que Anthropic, autor da especificação Agent Skills, ainda não faz parte da coalizão — portanto, trate a portabilidade do Claude para fora do Claude Code como compatibilidade no nível de formato, não como um contrato bidirecional oficial.89
Ocultando a superfície agrupada como governança (8 de junho de 2026)
Skills são capacidade, e capacidade é superfície de ataque. O Claude Code v2.1.169 adiciona uma configuração disableBundledSkills (e a variável de ambiente correspondente CLAUDE_CODE_DISABLE_BUNDLED_SKILLS) que oculta completamente do modelo as skills, workflows e slash commands integrados.60 Para um harness reforçado 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 o que o Anthropic inclui por padrão, para que o modelo raciocine apenas sobre a superfície que o operador avaliou. Trate isso da mesma forma que uma lista de permissão de ferramentas — o padrão é uma capacidade ampla, e desativá-lo é uma decisão de governança, não uma alternância de conveniência.
.claude/skills aninhadas e resolução da mais próxima (16 de junho de 2026)
O Claude Code v2.1.178 tornou as ferramentas de projeto sensíveis à localização. Skills em diretórios .claude/skills aninhados agora são carregadas quando você está trabalhando em arquivos sob esse diretório, e não apenas a partir da raiz do repositório; em caso de 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 do projeto ser resolvida em relação ao diretório de trabalho mais próximo: quando o nome de um agent, workflow ou estilo de saída entra em conflito entre diretórios .claude/ aninhados, vence aquele mais próximo do diretório de trabalho, e um salvamento de workflow no escopo do projeto tem como destino o .claude/workflows/ existente mais próximo, em vez de sempre a raiz.63 Para um monorepo ou um repositório de repositórios, essa é a diferença entre uma superfície global plana e ferramentas por pacote que se ativam no contexto — um services/api/.claude/skills/ pode conter skills específicas de API que aparecem somente enquanto você trabalha nessa árvore, sem entrar em conflito com uma skill de mesmo nome em services/web/.
Arquitetura de hooks
Hooks são comandos shell acionados por eventos do ciclo de vida de Claude Code.3 Eles são executados 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 em uma blocklist e o rejeita antes mesmo de o shell vê-lo. O hook é acionado independentemente de o modelo querer ou não.
Eventos disponíveis
Claude Code expõe 31 eventos documentados do ciclo de vida, distribuídos em oito categorias, até a atualização deste guia. A lista de eventos cresce a cada release, portanto trate a documentação de referência como fonte da verdade e consulte a cola para ver a tabela completa atual antes de configurar 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 |
| Tool | PreToolUse, PermissionRequest, PermissionDenied, PostToolUse, PostToolUseFailure, PostToolBatch |
Eventos pre/permissão/batch podem bloquear; eventos post não |
| Subagent / tarefa | SubagentStart, SubagentStop, TaskCreated, TaskCompleted |
Eventos stop/tarefa podem bloquear; start não |
| Contexto | PreCompact, PostCompact, InstructionsLoaded |
PreCompact pode bloquear; post/load não |
| Sistema de arquivos / workspace | CwdChanged, DirectoryAdded, FileChanged, WorktreeCreate, WorktreeRemove |
A criação de worktree pode bloquear; os demais não |
| Configuração / notificação | ConfigChange, Notification, MessageDisplay |
Alterações de configuração podem bloquear, exceto configurações de política; notificações não; MessageDisplay transforma apenas o texto exibido (displayContent, v2.1.152) |
| MCP | Elicitation, ElicitationResult |
Sim |
Dois refinamentos recentes são importantes para harnesses em segundo plano e multiagente. A partir da v2.1.198, sessões em segundo plano do claude agents acionam o hook Notification com os valores de gatilho agent_needs_input e agent_completed, para que um coordenador possa reagir no instante em que um membro da frota bloqueia em um prompt ou termina — o equivalente orientado por notificações de consultar claude agents --json. E, a partir da v2.1.199, os hooks SessionStart, Setup e SubagentStart exibem stderr quando encerram com código 2 (antes, essa saída era descartada silenciosamente), portanto um hook de inicialização ou lançamento de subagent que falha agora explica o motivo, em vez de falhar às cegas. |
DirectoryAdded (v2.1.219) fecha a lacuna de workspace durante a sessão. A lista de eventos permanece estável desde a chegada de MessageDisplay na v2.1.152; DirectoryAdded é o primeiro novo evento de ciclo de vida desde então e é acionado após /add-dir — ou após a solicitação de controle register_repo_root do SDK — registrar um novo diretório de trabalho no meio de uma sessão.84 A lacuna que ele fecha é real: até agora, um harness podia validar exaustivamente um workspace em SessionStart e então ver um segundo repositório ser adicionado sem que hook algum fosse acionado. Tudo o que você declara sobre o workspace na inicialização — verificações de confiança, varreduras de segredos, regras de escopo de caminho derivadas da árvore, carregamento de políticas por repositório — precisa ser executado novamente aqui, porque o conjunto de diretórios de uma sessão já não é fixo no lançamento. O evento é informativo, e não bloqueante; portanto, trate-o como um gatilho para recalcular o estado e registrar a procedência, não como uma barreira. Se um diretório jamais puder ser adicionado, negue-o nas configurações em vez de tentar vetá-lo por um hook. O lado do SDK chegou na mesma release (TypeScript v0.3.219 adiciona DirectoryAdded aos eventos do ciclo de vida do protocolo de controle), então harnesses hospedados pelo SDK o veem no mesmo nível que os do CLI.85
Semântica dos códigos de saída
Os códigos de saída determinam se os hooks bloqueiam ações:3
| Código de saída | Significado | Ação |
|---|---|---|
| 0 | Sucesso | A operação continua. Stdout é exibido no modo verboso. |
| 2 | Erro bloqueante | A operação para. Stderr se torna a mensagem de erro enviada para Claude. |
| 1, 3, etc. | Erro não bloqueante | A operação continua. Stderr é exibido apenas no modo verboso (Ctrl+O). |
Crítico: Todo hook de segurança deve usar exit 2, e não exit 1. Exit 1 é um aviso não bloqueante. O comando perigoso ainda é executado. Este é o erro mais comum com hooks entre equipes.14 |
Configuração de hooks
Os 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 tool, ele corresponde a valores de tool_name, como Bash, Edit, Write, Read, Glob, Grep, nomes de tools MCP como mcp__server__tool ou * para todas as tools. 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 oferecem suporte a matchers e são sempre acionados quando configurados.13 A partir do Claude Code v2.1.195, matchers que contêm identificadores com hífen (code-reviewer, mcp__brave-search) fazem correspondência exata em vez de, por acidente, corresponderem a substrings — um hook destinado a um único agent ou servidor deixa de ser acionado em todo nome que apenas contenha a string; para abranger todas as tools de um servidor MCP com hífen, escreva o padrão explícito mcp__brave-search__.*.66 A v2.1.214 aplicou a mesma disciplina a padrões de caminho: uma condição if: de hook que usa um padrão de segmento único dir/** agora corresponde somente a <cwd>/dir, e não a todos os diretórios chamados dir em qualquer lugar da árvore — escreva **/dir/** quando você realmente quiser qualquer profundidade.74 Assim como na mudança da v2.1.195, a correção troca uma abrangência acidental por uma intenção declarada; audite quaisquer condições de hook que dependiam silenciosamente do comportamento anterior de qualquer profundidade.
Protocolo de entrada/saída de hooks
Hooks recebem JSON na entrada padrão, com todo o contexto:
{
"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 tool, injetar contexto ou tomar decisões de permissão. Use o wrapper hookSpecificOutput — o formato anterior de decision/reason no nível superior foi descontinuado 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: de 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 de serem executadas. Hooks PreToolUse em Bash inspecionam comandos e bloqueiam padrões destrutivos com o 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 conjunto 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 hook além de comandos shell
Claude Code oferece suporte a cinco tipos de hook:13
Hooks de comando (type: "command") executam scripts de 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-os quando a lógica de validação já estiver por trás de uma fronteira MCP e não precisar de um script de shell separado.
Hooks de prompt (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-os para avaliações sutis que regex não consegue expressar.
Hooks de agente (type: "agent") iniciam um subagent com acesso a ferramentas (Read, Grep, Glob) para verificações de vários turnos. Eles são experimentais; prefira hooks de comando para gates de produção e reserve hooks de agente para verificações que realmente exigem inspecionar arquivos reais ou a 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 hooks de agente 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 precisar deduzir pelo texto do prompt.49
Hooks HTTP (type: "http") enviam a entrada JSON do evento como uma solicitação POST para uma URL e recebem JSON de volta. Use-os para webhooks, serviços de notificação externos 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
Os hooks podem ser executados 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 ser concluída antes da próxima ação.
Dispatchers em vez de hooks independentes
Executar sete hooks disparados pelo mesmo evento, cada um lendo stdin de forma independente, cria condições de corrida. Dois hooks gravando simultaneamente no mesmo arquivo de estado JSON vão truncar o JSON. Todos os hooks subsequentes que fazem parse desse arquivo falham.2
A solução: um dispatcher por evento que executa hooks sequencialmente a partir de stdin armazenado 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
Depuração de hooks
Cinco técnicas para depurar hooks que falham silenciosamente:14
- Teste os scripts de forma independente. Passe uma entrada JSON de exemplo:
echo '{"tool_input":{"command":"git commit -m test"}}' | bash your-hook.sh - Use stderr para saída de depuração. stderr com código de saída 2 é enviado de volta ao Claude como mensagem de erro. stderr não bloqueante (saída 1, 3 etc.) aparece apenas no modo verbose (Ctrl+O).
- Fique atento a falhas do jq. Caminhos JSON incorretos retornam
nullsilenciosamente. Teste expressõesjqcom entradas reais de ferramentas. - Verifique os códigos de saída. Um hook PreToolUse que usa
exit 1não aplica nenhuma restrição, embora pareça estar funcionando. - Mantenha os hooks rápidos. Hooks são executados de forma síncrona. Mantenha todos os hooks abaixo de 2 segundos, idealmente abaixo de 500 ms.
Streaming de eventos de hook no lado do SDK
harnesses auto-hospedados construídos com claude-agent-sdk-python (v0.1.74+, 6 de maio de 2026) podem assinar eventos de hook diretamente do fluxo de mensagens, em vez de passar por callbacks de scripts de shell.36 Defina include_hook_events=True em ClaudeAgentOptions, e objetos HookEventMessage (PreToolUse, PostToolUse, Stop e outros) serão retornados pelo mesmo iterador das mensagens do assistente e dos resultados das ferramentas. Isso espelha a opção includeHookEvents do SDK TypeScript; o CLI incluído foi atualizado para v2.1.129 na mesma versão.
O padrão de fluxo de eventos é adequado quando seu harness já está em Python e você quer sinais de hook no mesmo fluxo de controle da saída do modelo. O contrato de hooks de scripts de shell (códigos de saída, stdin JSON, dispatchers) continua sendo a resposta certa para harnesses que compõem várias ferramentas, compartilham hooks entre Claude Code e Codex ou precisam de semântica de código de saída para bloqueio.
A série de julho de 2026 do SDK TypeScript (v0.3.205–v0.3.208) tornou o próprio protocolo de streaming mais contratual.70 Interrupções agora retornam recibos tipados: uma interrupção confirma quais mensagens enfileiradas ainda estão pendentes por meio de UUIDs still_queued, e as sessões anunciam a capacidade interrupt_receipt_v1 em system/init, para que um coordenador consiga diferenciar “a interrupção chegou” de “a interrupção passou por uma mensagem que já estava em andamento”. Quadros command_lifecycle relatam queued/started/completed/cancelled/discarded por mensagem — a primeira resposta própria para “o que aconteceu com a mensagem que enviei” sem inferência a partir da transcrição. Superfícies menores também foram incluídas: um tipo AgentToolCompletedOutput para payloads de conclusão de subagent, e callbacks canUseTool agora podem retornar {behavior: 'allow'} sem um campo updatedInput.
Uma linha nessa série é um limite mínimo de segurança, não um recurso: a v0.3.208 corrigiu um abort do chamador que chegava durante um hook pendente e era convertido em sucesso do hook — o que significava que uma ferramenta bloqueada por um hook PreToolUse podia executar depois que o chamador tivesse abortado.70 Se o seu harness usa hooks no lado do SDK como gate de permissão e depende de abort para cancelar trabalho em andamento, trate a v0.3.208 como a versão mínima; abaixo dela, “abortado” não significava de forma confiável “bloqueado”. Python v0.2.127 (24 de julho de 2026) é o segundo bypass desse tipo em um mês — query() fechava stdin no primeiro quadro result enquanto subagents em segundo plano ainda estavam executando, portanto as chamadas de ferramenta SDK-MCP falhavam com "Stream closed" e ignoravam completamente os hooks PreToolUse.85 Dê um nome ao padrão e monitore-o: a aplicação de hooks no lado do SDK falha aberta nas bordas do ciclo de vida — abort, encerramento, fechamento do stream — onde o transporte morre antes que o veredito do hook seja coletado, e falha silenciosamente, porque um hook ignorado parece exatamente um hook que aprovou. Fixe ambas as versões mínimas do SDK e mantenha a camada de shell-hook como a aplicação que você pode comprovar.
Esforço e proveniência da 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 melhores sinais sobre seu contexto de execução:3839
effort.levelna entrada de hooks. Agora os hooks recebem um campo JSONeffort.levelna mesma entrada que contémtool_inputesession_id. O mesmo valor é exportado como a variável de ambiente$CLAUDE_EFFORT, para que comandos Bash possam lê-lo sem fazer parse de JSON. Use isso para dimensionar o custo do hook conforme o nível de esforço: pule validações caras emlow, execute o gate de segurança completo emxhighoumax.- Variável de ambiente
CLAUDE_CODE_SESSION_IDem subprocessos Bash. Subprocessos de ferramentas Bash agora veem o mesmo valor desession_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 subprocessos com eventos de hooks.
Ambos os sinais estão disponíveis sem alterações de código; hooks existentes que ignoram os novos campos continuam funcionando.
autoMode.hard_deny e correções de hook/plugin na v2.1.136 (8 de maio de 2026)
Claude Code v2.1.136 adicionou um novo nível de hard-deny ao modo automático e corrigiu um conjunto de problemas de plugin e MCP que afetavam harnesses de longa execução:40
- settings.autoMode.hard_deny. Regras do classificador do modo automático que bloqueiam incondicionalmente, independentemente da intenção do usuário ou de exceções de permissão. Isso fica acima dos matchers atuais de permitir/negar como uma alavanca de governança inegociável. Use para regras que nunca podem ser substituídas (force-push para a main, arquivos que contêm secrets, acesso ao banco de dados de produção), mesmo quando um operador tiver aprovado a categoria mais ampla nas configurações pessoais.
- autoMode.classifyAllShell (v2.1.193). Por padrão, o classificador do modo automático revisa apenas comandos de shell que correspondem a padrões de execução arbitrária de código. Essa configuração encaminha todos os comandos Bash/PowerShell para o classificador — a postura de cobertura máxima para um harness governado —, e a mesma versão exibe os motivos de negação na transcrição, na notificação e em /permissions, transformando bloqueios silenciosos em decisões auditáveis. O Codex reforçou a superfície equivalente na v0.142.2: comandos PowerShell que contêm regiões AST executáveis que seu classificador de segurança não consegue inspecionar agora exigem aprovação, em vez de passarem silenciosamente.66
- O ask do hook limita o classificador (v2.1.211). A questão de precedência entre hook e modo automático agora está resolvida: um hook PreToolUse que retorna uma decisão de permissão ask fixa o resultado final em um prompt — o modo automático não pode escalá-lo de volta para permitir comandos Bash sem sandbox.69 Para um harness governado, esta é a camada de garantia que faltava: o ask de um hook é uma parada determinística com participação humana que persiste mesmo em posturas de permissão totalmente automáticas. Use ask (não apenas bloqueios com exit-2) para as operações em que você quer uma decisão humana em vez de uma recusa.
- O modelo do classificador é fixado por sessão (v2.1.210). O classificador do modo automático usa Sonnet 5 por padrão e é fixado durante a sessão, portanto mudanças de modelo no meio da sessão não alteram mais qual modelo realiza as classificações de permissão.69 A consistência da classificação é uma propriedade de governança; isso elimina uma fonte discreta de divergência.
- Os servidores MCP não desaparecem mais após /clear. Servidores configurados em .mcp.json, plugins e conectores do claude.ai estavam saindo silenciosamente do conjunto ativo após um /clear na 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 de MCP OAuth durante atualização concorrente. Usuários com vários servidores MCP remotos não devem mais precisar fazer nova autenticação diariamente. Gravações de atualização concorrentes estavam sobrescrevendo umas às outras.
- O modo Plan agora bloqueia gravações de arquivo corretamente. Uma regra de permissão Edit(...) correspondente estava contornando a proteção contra gravações do modo Plan. O modo Plan agora é aplicado independentemente das regras de permissão.
- Hooks Stop e UserPromptSubmit de plugins não falham mais no meio da sessão. A limpeza de cache estava excluindo arquivos de versão de plugins que ainda eram usados pela sessão em execução, interrompendo especificamente esses dois eventos de hook. A correção mantém as versões em uso fixadas.
- Entrada skills em plugin.json. Definir skills ocultava o diretório padrão skills/ do plugin. Agora a entrada é combinada corretamente, e apontá-la para um caminho de arquivo gera um erro explícito em vez de falhar silenciosamente.
- Variáveis de ambiente do hook SessionStart por CLAUDE_ENV_FILE ficando desatualizadas. Variáveis exportadas por hooks SessionStart via CLAUDE_ENV_FILE ficavam desatualizadas após /resume ou /clear. Corrigido na v2.1.136. As sessões agora recarregam o arquivo de ambiente nesses eventos.
Para harnesses de governança, os itens operacionalmente mais interessantes são autoMode.hard_deny (nova alavanca) e a correção para o desaparecimento de MCP (falha silenciosa que interrompia sessões longas). Todo o restante é uma limpeza 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 de execução args: string[] para hooks de comando e continueOnBlock para hooks PostToolUse.4244 Prefira args quando um hook precisar de valores dinâmicos ou placeholders de caminho. Ele inicia o comando diretamente, sem um shell, o que elimina toda uma classe de erros de citação e injeção.
Use continueOnBlock quando um hook PostToolUse precisar enviar o motivo da 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 uma forma de contornar a segurança. Um gate bloqueante ainda deve bloquear o resultado inseguro.
A mesma versão passa CLAUDE_PROJECT_DIR para servidores stdio MCP e permite que configurações de plugins façam referência a ${CLAUDE_PROJECT_DIR} em comandos.42 Ferramentas MCP devem resolver caminhos relativos ao projeto a partir desse valor, em vez de usar o diretório de trabalho de qualquer processo que tenha iniciado o servidor. As versões do início de julho de 2026 (v2.1.203–v2.1.206) estenderam o mesmo princípio ao nível do protocolo: roots/list de MCP agora inclui os diretórios de trabalho adicionais da sessão, com notificações roots/list_changed quando eles mudam — portanto, um servidor que respeita as roots de MCP acompanha a estrutura real do workspace com vários diretórios em vez de assumir um único diretório de projeto.68
O Claude Code v2.1.140 é, em sua maior parte, uma versão de confiabilidade para operadores de harness: corrige hooks ConfigChange que não eram acionados em mudanças de configurações, fecha casos extremos em que disableAllHooks e allowManagedHooksOnly não se combinavam corretamente entre níveis de configuração e impede que diálogos de permissão exponham variáveis de ambiente não intencionais retornadas por resultados de hook.49 Isso torna mais confiáveis os padrões de governança existentes nesta seção; não exige uma nova arquitetura de hook.
O Claude Code v2.1.141 adiciona um campo terminalSequence na saída de hook para notificações desktop, títulos de janela e alertas sonoros sem um terminal de controle.50 Trate isso como sinalização para o operador, não como imposição. Gates de segurança e qualidade ainda devem comunicar falhas por meio do contrato normal de bloqueio: saída estruturada do hook junto com o comportamento de saída que impede a ação insegura. A mesma versão adiciona claude agents --cwd <path> para limitar o Agent View a um diretório, CLAUDE_CODE_PLUGIN_PREFER_HTTPS para instalações de plugins em ambientes sem chaves GitHub SSH e ANTHROPIC_WORKSPACE_ID para regras de federação de identidade de carga de trabalho que abrangem mais de um workspace.50 Esses são detalhes de arquitetura para harnesses de equipe: visões operacionais mais restritas, menos pressupostos sobre instalação de plugins e escopo explícito de token empresarial.
O Claude Code v2.1.142 é mais importante para a orquestração de sessões em segundo plano do que para a 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. Nessa versão, o modo Fast usava Opus 4.7 por padrão, com CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1 como fixação para um harness com dependência medida do comportamento do Opus 4.6 — a partir da v2.1.219, o Opus 4.7 está totalmente fora do modo fast e /fast se aplica ao Opus 5 e ao Opus 4.8.84 A descoberta de SKILL.md de plugins no nível raiz e a visibilidade de LSP fornecida por plugins reduzem a ambiguidade de empacotamento. Correções em MCP_TOOL_TIMEOUT, worktrees pré-existentes de sessões em segundo plano, suspensão/reativação de daemon e limpeza pós-atualização, além da limpeza de cache de plugins, fecham lacunas de confiabilidade que, de outra forma, parecem bugs de orquestração.
Direcionamento por hook Stop, autoridade entre sessões e multi-agent v2 (junho de 2026)
Quatro mudanças do início de junho são relevantes para o design de harnesses 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 enviar 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 hook Stop era o bloqueio com exit-2, que é interpretado como erro e conta para o limite de bloqueios consecutivos. Para um harness de gate de qualidade, este é o primitivo mais limpo: um hook Stop que detecta “você disse que terminou, mas os testes estão falhando” agora pode injetar “aqui está o que ainda está falhando, continue” em vez de bloquear rigidamente. Use o bloqueio para condições genuínas de parada e additionalContext para “ainda não terminou, eis o motivo”.
Mensagens entre sessões não carregam mais autoridade emprestada. A v2.1.166 reforçou o caso de múltiplas sessões: mensagens retransmitidas via SendMessage de outra sessão Claude não carregam mais a autoridade do usuário de origem, portanto uma sessão receptora recusa solicitações de permissão retransmitidas e o modo automático as bloqueia. Se sua orquestração faz agentes enviarem mensagens entre si, trate uma mensagem recebida como dado não confiável, não como uma instrução autenticada. Este é o mesmo princípio que a seção de segurança aplica à saída de ferramentas, estendido às mensagens entre agentes. A partir da v2.1.199, o Claude Code também detecta e avisa quando um SendMessage é direcionado incorretamente porque dois agentes compartilham o mesmo nome — um complemento de confiabilidade a esse limite de autoridade, já que uma mensagem chegar ao agente errado com o mesmo nome é uma classe própria de bug de orquestração.
As sessões agora são pares de primeira classe (v2.1.224+). As mensagens entre sessões passaram do reforço do relay para uma superfície completa: SendMessage/ListAgents permitem que suas sessões descubram e enviem mensagens umas às outras entre suas máquinas (macOS/Linux), com controles crossSessionInbound de aceitar/manter/recusar no lado que recebe — e os runners auto-hospedados permitem que sessões web e mobile do Claude Code sejam executadas em um hardware que você controla. Para a arquitetura de harness, isso transforma “uma sessão” em um nó endereçável: descoberta, política de entrada e o limite de autoridade acima agora são primitivas da plataforma, não scripts de mailbox (o guia do Claude Code documenta o contrato completo).87 Uma mudança de postura vem junto: o modo auto se torna o modo de permissão padrão nos planos Pro, Max e Team em 14 de agosto de 2026 — um harness que depende de prompts do modo Manual como seu mecanismo de human-in-the-loop deve fixar defaultMode explicitamente, em vez de presumir isso.87
A resiliência de modelo se tornou 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 tenta novamente uma vez no fallback diante de erros API inesperados e não repetíveis. Para um harness autônomo de longa execução, isso transforma uma indisponibilidade transitória do modelo primário em uma degradação elegante, em vez de uma execução descartada. 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 monitore uma frota de agentes.
Modo seguro para governança clean-room e solução de problemas. 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 todas as personalizações desativadas de uma só vez: CLAUDE.md, plugins, skills, hooks e servidores MCP.60 É o inverso do harness — uma clean-room deliberada. Use-o para responder à pergunta que todo operador acaba fazendo: “esse comportamento vem do modelo ou de algo que configurei?” Quando um hook dispara incorretamente, uma skill é ativada quando não deveria ou um servidor MCP contamina o contexto, --safe-mode oferece uma linha de base conhecida e vazia para comparar. Ele também é uma primitiva de governança: uma forma de executar o modelo puro sem nenhuma da autoridade persistente que seu harness normalmente concede, o que importa quando você precisa reproduzir um resultado sem que qualquer estrutura definida pelo operador o influencie.
Uma observação sobre os níveis de modelo. A partir do Claude Code v2.1.197 (30 de junho de 2026), o Claude Sonnet 5 é o modelo padrão disponibilizado para novas sessões — contexto nativo de 1M, preço promocional de US$ 2/US$ 10 por MTok até 31 de agosto — substituindo o Opus 4.8 como a opção padrão. Este guia considera o Opus 5 (claude-opus-5) como o padrão recomendado para agentes: o modelo para executar harnesses autônomos, a menos que você escolha deliberadamente outro, porque loops de agentes de longo horizonte e alto risco são exatamente onde a profundidade de raciocínio do Opus justifica seu custo. O Opus 5 foi lançado em 24 de julho de 2026 como o novo Opus padrão no Claude Code v2.1.219 — contexto de 1M, US$ 5/US$ 25 por MTok (o mesmo preço do Opus 4.8 que ele substitui), modo rápido a US$ 10/US$ 50 por cerca de 2,5× a velocidade padrão — e o Anthropic relata que ele mais que dobrou o desempenho do Opus 4.8 no Frontier-Bench v0.1, ficando a menos de 0,5% da pontuação do Fable 5 no CursorBench 3.2 pela metade do custo.8491 Mesmo preço, mais capacidade, e um modelo que o Anthropic caracteriza como “muito mais forte em verificar seu trabalho e iterar cuidadosamente” é a rara atualização que não exige argumento de custo para trabalho com harness; a migração do 4.8 é uma mudança de id. Mude para o Sonnet 5 em trabalhos sensíveis a custo ou de alto volume, nos quais sua relação velocidade-inteligência vence. Acima do Opus está o Claude Fable 5 (claude-fable-5), lançado em 9 de junho de 2026 — um novo nível descrito como o modelo mais poderoso do Anthropic, um sistema de “classe Mythos” tornado seguro para uso geral, selecionável no Claude Code v2.1.170 via /model claude-fable-5.60 Recorra ao nível superior deliberadamente, nas decisões em que a profundidade bruta de raciocínio justifica o custo, e não como uma configuração geral para uma frota. Duas consequências de manutenção da transição para o Opus 5: o Opus 4.7 saiu do modo rápido (/fast agora se aplica ao Opus 5 e ao Opus 4.8), e o fallback Fable-5 do classificador do modo auto — “o melhor modelo Opus disponível” desde a v2.1.176 — agora aponta para o Opus 5.84
O Codex lançou o multi-agent v2. O CLI do Codex v0.137.0 mantém a escolha de runtime em cada thread, disponibiliza padrões mais limpos de acompanhamento e metadados para agentes gerados (hide_spawn_agent_metadata agora tem como padrão true) e propaga eventos brutos do pai aos listeners filhos. Seu modelo de subagent continua explícito: tipos de agente integrados default/worker/explorer, agentes personalizados definidos em TOML e controles de concorrência (agents.max_threads padrão 6, agents.max_depth padrão 1). A mesma versão adiciona uma extensão v1 de skills com resolução do catálogo de skills por turno e novos eventos de contribuição ao ciclo de vida de início de thread/erro de turno, reduzindo a diferença em relação à superfície de hooks/skills do Claude Code e mantendo a postura de kernel-sandbox como limite padrão. O Codex v0.138.0–v0.139.0 então reforçou o multi-agent v2 para produção: os payloads de mensagens entre agentes agora são criptografados, um catálogo de configuração de agentes v2 mais um LRU de residência de agentes gerenciam quais agentes permanecem residentes, e a concorrência é contabilizada pela execução ativa, e não pelas threads geradas, portanto agentes ociosos não consomem mais uma vaga.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 agente em execução, em vez de simplesmente fechar um handle — e avisos de inicialização de MCP gerados por um subagent agora permanecem restritos à thread proprietária, em vez de serem duplicados no transcript do pai.61 Para quem cria orquestração no lado do Codex, essas são as diferenças entre uma demonstração e uma frota: transporte de mensagens criptografado, residência limitada, concorrência contabilizada por execução e avisos que não vazam pelo limite da thread. O Codex v0.140.0 então abriu uma interface entre ferramentas: /import traz seletivamente configuração inicial, configuração de projeto e chats recentes do Claude Code para o Codex, e sessões se tornaram permanentemente excluíveis (codex delete / /delete, com proteções de confirmação).64 /import é o primeiro reconhecimento oficial de que operadores transitam entre harnesses — a configuração que você cria para um não fica mais presa nele.
Memória e contexto
Toda conversa de IA opera dentro de uma janela de contexto finita. Conforme a conversa cresce, o sistema compacta os turnos anteriores para abrir espaço para novo conteúdo. A compactação é com 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 |
|---|---|---|
| Compactação de contexto | Informações anteriores são descartadas para acomodar novo conteúdo | Checkpointing de estado no filesystem |
| Perda de coerência do 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 agentes mantêm snapshots de estado diferentes | Protocolos de estado compartilhado entre agentes |
Estratégia 1: filesystem como memória
A memória mais confiável entre limites de contexto fica no filesystem. Claude Code lê CLAUDE.md e arquivos de memória no início de cada sessão e após 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 registra erros, decisões e padrões entre sessões. Quando você descobre que ((VAR++)) falha com set -e no bash quando VAR é 0, você registra isso. Três sessões depois, quando encontra um caso de borda semelhante com inteiros em Python, a entrada no MEMORY.md traz o padrão à tona.15
Auto Memory (v2.1.32+): Claude Code registra e recupera automaticamente o contexto do projeto. Enquanto você trabalha, Claude grava observações em ~/.claude/projects/{project-path}/memory/MEMORY.md. A memória automática carrega as primeiras 200 linhas no seu system prompt no início da sessão. Mantenha-a concisa e crie links para arquivos separados por tópico com notas detalhadas.6 A partir da v2.1.210, uma gravação em MEMORY.md que ultrapassa o limite de tamanho gera erro em vez de truncar silenciosamente69 — a falha aparece no momento da gravação, em vez de resultar em entradas de memória que simplesmente desapareceram. Se seu harness automatiza gravações de memória, trate esse erro; a plataforma está dizendo que o arquivo precisa de curadoria, não de uma nova tentativa.
Curadoria de memória em vez de volume de memória (maio de 2026): Um preprint recente no arXiv sobre cooperação entre agentes LLM apresenta a ampliação da recuperação como um possível modo de falha: nos experimentos dos autores, um histórico visível mais longo degradou a cooperação em 18 das 28 configurações de jogo de modelos.48 Trate isso como um alerta de design, não como uma regra concluída. A regra de produção já está clara o suficiente: mantenha MEMORY.md curto, crie links para detalhes e coloque resumos prontos para decisão nas transferências. Dumps brutos de transcrições, logs de ferramentas e feeds longos de recuperação devem ficar em armazenamento pesquisável, não automaticamente no prompt ativo.
Estratégia 2: compactação proativa
O comando /compact do Claude Code resume a conversa e libera espaço de contexto, preservando decisões importantes, conteúdos de arquivos e o estado da tarefa.15
Quando compactar: - Depois de concluir uma subtarefa distinta (recurso implementado, bug corrigido) - Antes de iniciar uma nova área do codebase - Quando Claude começa a repetir ou esquecer o 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 durante o fluxo sem quebrar o cache acumulado ao longo do turno.60 Antes disso, mudar de diretório significava uma sessão nova e um cache frio. Em uma sessão de longa duração que migra de um repositório para outro no mesmo nível — algo comum em trabalhos com monorepo e múltiplos serviços — /cd mantém intacto o prefixo caro armazenado em cache enquanto redireciona o contexto do filesystem.
Estratégia 3: transferências de sessão
Para tarefas que abrangem várias sessões, crie documentos de transferência que registrem todo o estado:
## 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 o contexto completo com um custo mínimo de tokens. Iniciar uma nova sessão com claude -c (continuar) ou ler o documento de transferência leva você diretamente à implementação.15
Estratégia 4: iteração com contexto novo (o Ralph Loop)
Para sessões que ultrapassam 60-90 minutos, inicie 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: [fresh context] -> writes code, creates files, updates state
Iteration 2: [fresh context] -> reads state from disk, continues
Iteration 3: [fresh context] -> reads updated state, continues
...
Iteration N: [fresh context] -> reads final state, verifies criteria
Compare com uma única sessão longa:
Minute 0: [fresh context] -> productive
Minute 30: [context filling] -> somewhat productive
Minute 60: [mostly consumed] -> degraded
Minute 90: [compaction pending] -> significantly degraded
Minute 120: [compressed, lossy] -> errors accumulate
A abordagem de contexto novo por iteração troca uma sobrecarga de 15-20% pela etapa de orientação (ler arquivos de estado, examinar o histórico do git) por recursos cognitivos completos em cada iteração.16 O cálculo de custo-benefício: para sessões com menos de 60 minutos, uma única conversa é mais eficiente. Após 90 minutos, o contexto novo produz resultados de maior qualidade apesar da sobrecarga.
Estratégia 5: curadoria de memória gerenciada (Dreaming)
Os Managed Agents de Anthropic e Claude adicionaram o Dreaming como Research Preview em 6 de maio de 2026.35 Segundo Anthropic: “Dreaming é um processo agendado que revisa suas sessões de agente e seus armazenamentos de memória, extrai padrões e faz a curadoria das memórias para que seus agentes melhorem ao longo do tempo.”35
O Dreaming é executado 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 estrutural; o Dreaming grava entradas de memória selecionadas no armazenamento de memória dos Managed Agents, que o agente lê no início da sessão. Os dois padrões coexistem em harnesses que combinam estado auto-hospedado no filesystem com curadoria no lado gerenciado.
| Memória no filesystem | Dreaming (gerenciado) | |
|---|---|---|
| Onde a memória fica | Seu repo, versionado | Armazenamento de memória gerenciado por Anthropic |
| Quando é atualizada | Você grava entradas manualmente ou via hooks | Processo em segundo plano entre sessões |
| O que registra | Decisões, erros e padrões que você sinaliza | Padrões extraídos do histórico de sessões |
| Ideal para | Conhecimento institucional específico do projeto | Descoberta de padrões entre sessões que você não perceberia manualmente |
O Dreaming está em Research Preview, portanto o comportamento pode mudar. Os padrões de transferências de sessão e CLAUDE.md documentados acima continuam sendo o mecanismo de memória oficial para harnesses auto-hospedados.
Os antipadrões
Ler arquivos inteiros quando você precisa de 10 linhas. Uma única leitura de um arquivo com 2.000 linhas consome 15.000-20.000 tokens. Use offsets de linha: Read file.py offset=100 limit=20 economiza a grande maioria desse custo.15
Manter uma saída de erro detalhada no contexto. Depois de depurar um bug, seu contexto contém mais de 40 stack traces de iterações que falharam. Um único /compact após corrigir o bug remove esse peso morto.
Iniciar toda sessão lendo todos os arquivos. Deixe que as ferramentas de glob e grep do Claude Code encontrem 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 executam tarefas complexas de forma independente. A maioria começa com um contexto limpo (sem interferência da conversa principal) — a exceção é o tipo fork abaixo, que herda tudo deliberadamente —, opera com ferramentas especificadas e retorna os resultados como resumos. Os resultados da exploração não sobrecarregam sua conversa principal; apenas as conclusões retornam.5
Tipos de subagents integrados
| Tipo | Modelo | Modo | Ferramentas | Usado para |
|---|---|---|---|---|
| Explore | Herda o modelo da sessão, limitado ao Opus (v2.1.198; sempre Haiku antes disso) | Somente leitura | Glob, Grep, Read, bash seguro | Explorar a base de código, encontrar arquivos |
| General-purpose | Herda | Leitura/gravação completas | Todas as disponíveis | Pesquisa complexa + modificação |
| Plan | Herda (ou Opus) | Somente leitura | Read, Glob, Grep, Bash | Planejamento antes da execução |
| Fork | Sempre o modelo do pai | Leitura/gravação completas | As mesmas da sessão principal | Trabalho que precisa de toda a conversa: herda o histórico completo, o prompt do sistema, as ferramentas e o cache de prompts, enquanto suas próprias chamadas de ferramentas ficam fora do seu contexto. Ativado por padrão em sessões interativas desde a v2.1.232; desativado em -p e no SDK88 |
Criação de 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 subagents
| Campo | Obrigatório | Finalidade |
|---|---|---|
name |
Sim | Identificador exclusivo (letras minúsculas + hífens) |
description |
Sim | Quando invocar (inclua “PROACTIVELY” para incentivar a delegação automática) |
tools |
Não | Separadas por vírgulas. Herda todas as ferramentas se omitido. Compatível com Agent(agent_type) para restringir quais agentes podem ser iniciados |
disallowedTools |
Não | Ferramentas a negar, removidas da lista herdada ou especificada. Desde a v2.1.178, especificações no nível do servidor MCP (mcp__server, mcp__server__*, mcp__*) são correspondidas corretamente aqui — versões anteriores as ignoravam silenciosamente, portanto uma regra de negação destinada a bloquear um servidor MCP simplesmente não fazia nada.63 |
model |
Não | sonnet, opus, haiku, inherit (padrão: inherit) |
permissionMode |
Não | default (identificado como “Manual” em todo o CLI/nas IDEs desde a v2.1.200; manual é um alias aceito para o valor de configuração inalterado), acceptEdits, delegate, dontAsk, bypassPermissions, plan. Desde a v2.1.212, o parâmetro mode por invocação da ferramenta Task foi descontinuado — subagents herdam o modo de permissão da sessão pai, e este campo do frontmatter é a substituição específica de cada agente69 |
maxTurns |
Não | Número máximo de turnos agênticos antes de o subagent parar |
memory |
Não | Escopo da memória persistente: user, project, local |
skills |
Não | Carrega automaticamente o conteúdo de skills no contexto do subagent durante a inicialização. Desde a v2.1.133, subagents também descobrem skills de projeto, usuário e plugins por meio da ferramenta Skill, da mesma forma que a sessão pai. Versões anteriores removiam essas skills silenciosamente do contexto do subagent.39 |
hooks |
Não | hooks de ciclo de vida limitados à execução deste subagent |
background |
Não | Força uma tarefa em segundo plano. Desde a v2.1.198, subagents são executados em segundo plano por padrão — a sessão principal continua trabalhando e é notificada quando terminam —, portanto agora este campo fixa o comportamento explicitamente, em vez de habilitá-lo |
isolation |
Não | Defina como worktree para usar uma cópia isolada do git worktree |
Isolamento por worktree
Subagents podem operar em git worktrees temporários, que oferecem 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 por worktree é essencial para trabalhos experimentais que possam danificar a base de código.
Isolamento só é isolamento quando a barreira se mantém. O Claude Code v2.1.210 corrigiu um bug que permitia que subagents isolados por worktree alterassem o checkout principal — exatamente a falha que esse mecanismo existe para impedir.69 Se você depende de isolation: worktree como limite de segurança, e não apenas como conveniência, considere a v2.1.210 como a versão mínima. A alteração complementar de permissões segue na direção oposta: desde a v2.1.211, regras de “sempre permitir” persistem na raiz do repositório entre worktrees, portanto uma regra aceita em um worktree se aplica aos worktrees irmãos do mesmo repositório.69 Essa é a ergonomia correta para agentes que trabalham em worktrees paralelos, mas significa que uma permissão concedida durante um experimento descartável continua válida depois do experimento — conceda-a pensando no repositório inteiro, não apenas no worktree à sua frente.
A v2.1.216 concluiu o trabalho, elevando o isolamento por worktree de correção de bugs a mecanismo com nível de proteção efetiva.74 A correção da v2.1.210 impediu que subagents em worktrees alterassem o checkout principal por meio de invocações comuns do git, mas o próprio git oferece redirecionamento explícito — git -C <path>, --git-dir e as variáveis de ambiente GIT_DIR/GIT_WORK_TREE —, e um subagent isolado por worktree ainda podia apontar qualquer um deles para o checkout compartilhado. Todas essas rotas de escape agora estão fechadas. A mesma versão corrigiu casos em que sessões de worktree acabavam no worktree remanescente de um projeto diferente, impediu que gravações de workflows e tarefas agendadas seguissem um link simbólico colocado em .claude até um destino fora do projeto e fez /rewind se recusar a atravessar links simbólicos e hard links. O padrão nas quatro correções é o mesmo: um limite de isolamento precisa resistir a redirecionamentos deliberados — substituições por variáveis de ambiente do git, implantação de links simbólicos —, não apenas ao comportamento padrão. Se isolation: worktree for um limite de segurança no seu harness, e não uma conveniência, a v2.1.216 é a nova versão mínima.
Subagents paralelos
Use subagents paralelos para tarefas de pesquisa independentes que não precisam de coordenação entre si:5
> Have three explore agents search in parallel:
> 1. Authentication code
> 2. Database models
> 3. API routes
Cada agente é executado em sua própria janela de contexto, encontra o código relevante e retorna um resumo. O contexto principal permanece limpo.
O recursion guard
Sem limites de criação, agentes delegam para agentes que delegam para outros agentes, cada um perdendo contexto e consumindo tokens. O padrão de recursion guard impõe limites de orçamento: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 crucial: use orçamentos de criação, não apenas limites de profundidade. Limites baseados em profundidade acompanham cadeias entre pais e filhos (bloqueadas na profundidade 3), mas ignoram a largura: 23 agentes na profundidade 1 ainda são “profundidade 1”. Um orçamento de criação acompanha o total de filhos ativos de cada pai, limitado a um máximo configurável. O modelo de orçamento corresponde ao verdadeiro modo de falha (agentes demais no total), e não a uma métrica indireta (níveis de aninhamento demais).7
O padrão de profundidade de aninhamento mudou três vezes; não construa sua solução sobre ele. O Claude Code v2.1.172 (10 de junho de 2026) permitiu que subagents criassem seus próprios subagents, com aninhamento de até 5 níveis — antes, a delegação era efetivamente limitada a um nível.62 Isso permaneceu assim da v2.1.172 até a v2.1.216. A v2.1.217 (21 de julho de 2026) reduziu o limite para 1, desativando a criação aninhada por padrão. Depois, a v2.1.219 (24 de julho de 2026) chegou a um meio-termo: “Subagents agora podem criar subagents aninhados até a profundidade 3 por padrão (antes era 1); defina CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1 para desativar o aninhamento.”84 Cinco, depois um, depois três — as duas últimas mudanças em um intervalo de três dias.
A interpretação útil não é que um desses números esteja correto. É que a plataforma ainda está buscando o padrão adequado, e por isso “o que vier na versão” é a escolha errada para um harness herdar. Trate a profundidade de aninhamento como uma linha explícita do orçamento: defina CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH com a profundidade de que sua arquitetura realmente precisa — para a maioria das orquestrações, 1 ou 2 —, para que uma atualização não altere silenciosamente até que ponto sua frota delega. O argumento fundamental permanece inalterado apesar de toda essa instabilidade: cadeias de agentes delegando para agentes consomem contexto e tokens mais rapidamente do que produzem resultados, e a profundidade é um risco a incluir no orçamento, não um recurso a perseguir. O recursion guard acima é o que impede que uma árvore profunda se expanda para centenas de agentes ativos, independentemente de como o padrão mude no futuro, e um limite definido por você é o único número de profundidade que continuará significando o que você espera após a próxima versão.
O modo automático agora avalia as criações antes de iniciá-las. O Claude Code v2.1.178 eliminou a lacuna correspondente de governança: no modo automático, a criação de subagents é avaliada pelo classificador de permissões antes que o subagent seja iniciado, não apenas quando ele começa a executar ações.63 Antes, um subagent podia ser criado para solicitar uma ação que a sessão pai não teria permissão para executar — a própria criação era a brecha. A avaliação no momento da criação faz com que o recursion guard e o modelo de permissões finalmente se encontrem: um filho não pode ser usado como intermediário para uma ação proibida pela política.
A plataforma agora inclui um orçamento de criação nativo. O Claude Code v2.1.212 (julho de 2026) adicionou proteções nativas contra loops descontrolados: as sessões são limitadas a 200 criações de subagents por padrão (CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION para ajustar, /clear redefine o contador), e WebSearch é limitado a 200 chamadas por sessão (CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION).69 O padrão de orçamento de criação que esta seção documenta como script do usuário desde a v1.0 agora é fornecido pela plataforma — uma validação do modelo de orçamento em vez do modelo de profundidade. Porém, observe a calibração: 200 criações são uma ordem de grandeza acima do orçamento de 12 agentes na configuração acima. Os limites nativos são fusíveis contra um loop realmente descontrolado, não orçamentos ajustados à sua arquitetura. Mantenha o guard do usuário para orçamentos por pai, acompanhamento de profundidade e limites que correspondam ao que sua orquestração deve realmente fazer; deixe que o limite da plataforma capture o que passar por ele.
O conjunto de proteções nativas agora abrange quatro eixos. Três deles dão suporte exatamente ao que o guard do usuário nesta seção acompanha: total de criações por sessão (v2.1.212, limite de 200, CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION), profundidade de aninhamento (CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH, atualmente 3 por padrão e comprovadamente instável) e execução simultânea (v2.1.217, padrão de 20, CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS — uma única mensagem não pode mais se expandir sem limites em agentes de segundo plano).7884 A v2.1.219 adiciona um quarto eixo que os guards do usuário geralmente não tinham: largura da orquestração, o número de agentes que um único workflow planejado pode conter, lançado como diretriz padrão de “tente usar menos de 15 agentes” e configurável em qualquer arquivo de configurações por meio de workflowSizeGuideline (abordado na seção sobre a ferramenta Workflow abaixo). O padrão de orçamento de criação agora conta com proteção nativa em todos os eixos para os quais foi projetado, além de um para o qual não foi.
A observação sobre calibração ainda se aplica, mas de maneira desigual. As 200 criações e os 20 agentes simultâneos são fusíveis — uma ordem de grandeza acima do orçamento de deliberação de 12 agentes na configuração acima, dimensionados para capturar um loop descontrolado, não para definir uma arquitetura. A diretriz de largura é o primeiro número nativo na mesma escala de um orçamento real: 15 agentes por workflow fica ao lado dos 12 deste guia, perto o bastante para que adotar o padrão da plataforma não custe nada e discordar dele exija um motivo concreto. Defina os três fusíveis com valores que você consiga defender; defina a diretriz de largura conforme o formato da orquestração que você pretendia construir.
Agent Teams (versão prévia para pesquisa)
Agent Teams coordenam várias instâncias de Claude Code que trabalham de forma independente, comunicam-se por uma caixa de mensagens e uma lista de tarefas compartilhadas e podem contestar as descobertas umas das outras:5
| Componente | Função |
|---|---|
| Líder da equipe | Sessão principal que cria a equipe, inicia os integrantes e coordena o trabalho |
| Integrantes | Instâncias separadas de Claude Code que trabalham nas tarefas atribuídas |
| Lista de tarefas | Itens de trabalho compartilhados que os integrantes assumem e concluem (com bloqueio de arquivo) |
| Caixa de mensagens | Sistema de mensagens para comunicação entre agentes |
Ative com: export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
Quando usar Agent Teams em vez de subagents:
| Subagents | Agent Teams | |
|---|---|---|
| Comunicação | Apenas relatam os resultados | Os integrantes enviam mensagens diretamente uns aos outros |
| Coordenação | O agente principal gerencia todo o trabalho | Lista de tarefas compartilhada com autocoordenação |
| Mais indicado para | Tarefas específicas nas quais apenas o resultado importa | Trabalhos complexos que exigem discussão e colaboração |
| Custo de tokens | Menor | Maior (cada integrante = uma janela de contexto separada) |
Agent View e loops de objetivos (maio de 2026)
O Claude Code v2.1.139 adicionou o Agent View, uma interface em versão prévia para pesquisa iniciada com claude agents que mostra, em uma única tela, sessões de Claude Code em execução, bloqueadas e concluídas.4243 A documentação oficial o apresenta como uma maneira de distribuir e gerenciar muitas sessões, ver o que cada uma está fazendo e identificar quais precisam de intervenção do operador.43 Isso oferece ao trabalho multiagente uma visão operacional que resumos finais não conseguem fornecer.
Use o Agent View ao promover um padrão de subagent ou equipe: verifique 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 o trate como prova de qualidade. Ele oferece observabilidade; testes, review gates e relatórios de evidências ainda determinam se o trabalho é sólido.
A mesma versão adicionou /goal, que define uma condição de conclusão e permite que Claude continue por vários turnos até que a condição seja atendida, inclusive no uso interativo, com -p e com Remote Control.42 Trate /goal como um loop de conclusão limitado à sessão, não como substituto para gates determinísticos. Ele é útil para manter um agente concentrado em um objetivo, mas testes, verificações de citações, verificações de deploy e hooks de segurança devem continuar respaldados por comandos ou scripts quando uma falha precisar bloquear o processo.
Ferramenta Workflow (v2.1.147+)
Os workflows dinâmicos do Claude Code são um recurso lançado e disponível por padrão: desde a v2.1.154, eles orquestram de dezenas a centenas de agentes em segundo plano, monitorados por /workflows, com um controle “Dynamic workflow size” em /config (v2.1.202) e uma chave de configurações workflowSizeGuideline cuja diretriz padrão é média — tente usar menos de 15 agentes, salvo instrução em contrário (v2.1.219). O recurso estreou uma versão antes como a ferramenta Workflow desativada por padrão na v2.1.147, atrás de CLAUDE_CODE_WORKFLOWS=1; a época dessa flag ficou para trás, mas o princípio arquitetural que ela introduziu permanece.52 Ela oferece ao Claude Code um recurso nativo de orquestração para fluxos que antes exigiam scripts personalizados de dispatch, estado da caixa de mensagens e convenções de coordenação entre subagents.
Não remova o harness que a envolve. Um Workflow pode estruturar a execução, mas não substitui seu modelo de segurança. Mantenha os hooks PreToolUse e PostToolUse como camada de bloqueio, mantenha orçamentos de criação ou de etapas do workflow para impedir largura descontrolada, mantenha o estado do sistema de arquivos auditável e mantenha os relatórios finais de evidências fora da autoavaliação do modelo. Na prática: use Workflow para definir o formato da orquestração; use hooks, testes e review gates para determinar a verdade.
Os workflows dinâmicos agora incluem uma opinião sobre largura (v2.1.219). Por padrão, workflows dinâmicos usam uma diretriz de tamanho médio — “tente usar menos de 15 agentes” —, com outros tamanhos e uma opção irrestrita disponíveis em Dynamic workflow size no /config, e a diretriz atual aparece na linha de status do workflow em execução.84 O número é uma recomendação, não uma imposição; ele orienta o planejador em vez de bloquear um plano amplo. O que torna sua configuração valiosa é o mecanismo de distribuição: a nova chave de configurações workflowSizeGuideline pode ser definida em qualquer arquivo de configurações — incluindo configurações gerenciadas e do projeto, e está nos tipos de configurações do TypeScript SDK desde a v0.3.219 —, portanto a largura da orquestração passa a ser algo que uma equipe ou organização pode padronizar, em vez de algo que cada operador precisa redescobrir.85 Defina-a no nível do projeto para representar como o trabalho da sua base de código realmente se decompõe. Duas observações para operadores: a linha do /config fica oculta quando um arquivo de configurações determina o valor, o que é o comportamento correto, mas parece uma configuração ausente se você não souber o motivo; e, como a diretriz orienta o planejador em vez de impedir a execução, ela pertence à coluna de formato, não à de segurança. A largura descontrolada continua sendo responsabilidade do limite de criação.
Vale manter a perspectiva de que este é o quarto eixo de proteção nativa — largura da orquestração, ao lado de quantidade de criações, profundidade de aninhamento e execução simultânea — e o primeiro que o Anthropic calibrou com um tamanho plausível de trabalho, em vez de tratá-lo como um fusível contra descontrole. Quinze agentes por workflow estão na mesma ordem de grandeza do orçamento de deliberação de 12 agentes usado por este guia desde a v1.0. Quando o padrão da plataforma e seu próprio orçamento convergem a partir de direções opostas, isso é o mais próximo de uma confirmação independente que esses números podem oferecer.
Fork de sessões e MCP movido automaticamente para segundo plano (julho de 2026)
O Claude Code v2.1.212 reformulou dois recursos de orquestração.69 Agora, /fork cria uma nova sessão em segundo plano a partir do estado atual da conversa — a linha bifurcada é executada de forma independente enquanto a original continua trabalhando —, e o comportamento anterior dentro da sessão foi renomeado como /subtask. A distinção é importante para o design da orquestração: /subtask é um desvio limitado dentro do ciclo de vida de uma sessão; /fork é uma forma barata de criar uma sessão paralela em segundo plano que herda todo o contexto, mais próxima de uma criação de loop Ralph do que de um subagent. Se os scripts do seu harness presumiam que /fork permanecia na sessão, agora eles distribuem trabalho em segundo plano.
A mesma versão move automaticamente chamadas lentas de MCP para segundo plano: uma chamada de ferramenta MCP que leva mais de dois minutos é transferida automaticamente para execução em segundo plano (ajuste o limite com CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS).69 Um servidor MCP lento não paralisa mais o loop agêntico — mas isso também significa que “a ferramenta retornou” e “o turno continuou” deixaram de ser o mesmo evento, portanto hooks ou scripts que pressupunham a conclusão síncrona do MCP devem se basear no resultado da ferramenta, não no limite do turno.
Para orquestração headless, a v2.1.211 adicionou --forward-subagent-text (variável de ambiente: CLAUDE_CODE_FORWARD_SUBAGENT_TEXT), que encaminha o texto de assistente dos subagents para a saída stream-json.69 Um processo coordenador que consome o stream do pai agora pode observar diretamente o progresso dos subagents, em vez de consultar transcrições repetidamente ou aguardar o resumo final — o complemento de observabilidade para subagents executados em segundo plano por padrão. A v2.1.219 estendeu esse recurso além do primeiro nível: subagents criados na profundidade 2 ou superior agora também aparecem no stream encaminhado, identificados pelo id tool_use do Agent que os criou.84 Essa identificação é a parte sobre a qual você deve construir. Com o aninhamento novamente ativado por padrão, um stream simples de texto de subagents é ambíguo — o id informa ao coordenador qual pai produziu qual filho, permitindo reconstruir a árvore de delegação a partir do stream, em vez de deduzi-la. Se seu consumidor de stream foi criado considerando apenas um nível de subagents, agora ele verá texto de agentes cuja existência desconhecia; agrupe pelo id tool_use que iniciou cada um, em vez de presumir que toda linha encaminhada pertence a um filho direto.
Orquestração multiagente
Sistemas de IA de agente único têm um ponto cego estrutural: eles não conseguem desafiar as próprias premissas.7 A deliberação multiagente força uma avaliação independente a partir de múltiplas perspectivas antes que qualquer decisão seja consolidada.
Orquestração entre ferramentas (abril de 2026): o Google lançou como open source o Scion em 7 de abril — um hipervisor multiagente que executa Claude Code, Gemini CLI e outros “agentes profundos” como processos simultâneos, cada um com container, git worktree e credenciais isolados. Executa localmente, em hub ou no Kubernetes. A filosofia explícita é: “isolamento acima de restrições” — os agentes operam com alta autonomia dentro de limites impostos na camada de infraestrutura, não no prompt.25 Isso estende diretamente o argumento de isolamento de subagents entre fornecedores de ferramentas diferentes. Se o seu fluxo de trabalho abrange Claude e modelos da OpenAI, o Scion é a primeira implementação de referência real para subagents entre ferramentas com isolamento de worktree + credenciais por agente.
Debate não é uma solução milagrosa: o grupo de pesquisa M3MAD-Bench (início de 2026) constatou que o debate multiagente atinge um platô e pode ser prejudicado por consensos enganosos — argumentos válidos perdem quando outros agentes afirmam com confiança a resposta errada.26 O Tool-MAD melhora isso ao conceder a cada agente acesso a ferramentas heterogêneas e usar pontuações de Fidelidade/Relevância na etapa de avaliação. Se você estiver criando uma orquestração no estilo de debate, invista em (a) heterogeneidade de ferramentas por agente e (b) pontuação quantitativa de avaliação, em vez de presumir que mais agentes = respostas melhores.
Orquestração multiagente gerenciada e Outcomes (beta público)
Se você não quiser criar a infraestrutura de deliberação descrita abaixo, a Orquestração multiagente entrou em beta público no Claude Managed Agents em 6 de maio de 2026.35 Segundo Anthropic: “Quando há trabalho demais para um único agente executar 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 rastreamento já vem incluído. Segundo Anthropic: “você também pode rastrear cada etapa no Claude Console: qual agente fez o quê, em que ordem e por quê, dando a você visibilidade total sobre como sua tarefa foi delegada e executada.”35
O recurso complementar em beta público é Outcomes. Segundo Anthropic: “você escreve uma rubrica descrevendo como é o sucesso, e o agente trabalha para alcançá-lo. Um avaliador separado analisa a saída em relação aos seus critérios na própria janela de contexto, para não ser influenciado pelo raciocínio do agente.”35 Esta é a versão de serviço gerenciado do padrão de validação de dois gates documentado mais adiante nesta seção: a rubrica substitui o gate escrito manualmente, e o avaliador separado substitui o validador de consenso.
| Deliberação auto-hospedada (esta seção) | Multiagente gerenciado + Outcomes | |
|---|---|---|
| Roteamento de especialistas | Você escreve a lógica de spawn | O agente líder divide o trabalho em partes |
| Validação | hooks de dois gates + pontuação de consenso | Rubrica + avaliador em contexto separado |
| Rastreamento | Você o instrumenta | Claude Console |
| Ideal para | Padrões que exigem controle total ou composição específica de ferramentas | Padrões de delegação padrão nos quais 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 do Managed Agents (base de lançamento de 8 de abril; consulte 23) |
A deliberação auto-hospedada continua sendo a resposta certa quando a validação precisa se integrar à sua própria superfície de hooks (bloqueio PreToolUse, semântica de código de saída, dispatchers personalizados) ou quando o harness precisa ser executado sem dependências externas. O Multiagent gerenciado é a resposta certa quando delegação padrão com avaliação por rubrica é o contrato de que você realmente precisa.
Deliberação mínima viável
Comece com 2 agentes e 1 regra: os agentes precisam avaliar de forma independente antes de ver o trabalho uns dos outros.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 abrange 80% do valor. Todo o resto adiciona melhorias incrementais.
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 - Ela exige conhecimento especializado?
- Risco - A decisão é reversível?
- Dependência de contexto - Ela exige compreender o sistema mais amplo?
A pontuação é mapeada para três níveis:
| Nível | Limite | Ação |
|---|---|---|
| ALTO | 0,85+ | Prossiga sem deliberação |
| MÉDIO | 0,70-0,84 | Prossiga com uma observação de confiança registrada |
| BAIXO | Abaixo de 0,70 | Acione a deliberação multiagente completa |
O limite se adapta conforme o tipo de tarefa. Decisões de segurança exigem consenso de 0,85. Alterações na documentação precisam de apenas 0,50. Isso evita o excesso de engenharia em tarefas simples e garante que decisões arriscadas recebam escrutínio.7
A máquina de estados
Sete fases, cada uma condicionada à anterior:7
IDLE -> RESEARCH -> DELIBERATION -> RANKING -> PRD_GENERATION -> COMPLETE
|
(or FAILED)
RESEARCH: Agentes independentes investigam o tópico. Cada agente recebe uma persona diferente (Arquiteto Técnico, Analista de Segurança, Engenheiro de Performance e outros). 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 de Debate identifica conflitos. O agente de Síntese 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 |
| Reutilização | 0,15 |
| Risco | 0,15 |
A arquitetura de validação de dois gates
Dois gates de validação detectam problemas em estágios diferentes:7
Gate 1: Validação de consenso (hook PostToolUse). Executado imediatamente após a conclusão de cada agente de deliberação: 1. A fase deve ter alcançado pelo menos RANKING 2. Pelo menos 2 agentes concluíram (configurável) 3. A pontuação de consenso atende ao limite adaptado à tarefa 4. Se algum agente discordou, as preocupações devem ser documentadas
Gate 2: Pride Check (hook Stop). Executado antes que a sessão possa ser encerrada: 1. Métodos diversos: múltiplas personas únicas representadas 2. Transparência de contradições: discordâncias têm motivos documentados 3. Tratamento da 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 supera a confiança inicial
Dois hooks em pontos diferentes do ciclo de vida correspondem à forma como as falhas realmente ocorrem: algumas são instantâneas (pontuação ruim) e outras graduais (baixa diversidade, documentação de discordâncias ausente).7
Por que a concordância é perigosa
Charlan Nemeth estudou a discordâ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 rapidamente a um acordo. O dissidente não precisa estar certo. O ato de discordar força a maioria a examinar premissas que, de outra forma, deixaria passar.18
Wu et al. testaram se os agentes LLM conseguem realmente debater e descobriram que, sem incentivos estruturais à discordância, os agentes convergem para a resposta inicial que soa mais confiante, independentemente de ela estar correta.19 Liang et al. identificaram a causa raiz como “Degeneration-of-Thought”: quando um LLM estabelece confiança em uma posição, a autorreflexão não consegue gerar novos contra-argumentos, tornando a avaliação multiagente estruturalmente necessária.20
A independência é a restrição de design crítica. Dois agentes avaliando a mesma estratégia de implantação, 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 comportamento de manada.7
Detectando concordância falsa
Um módulo de detecção de conformidade acompanha padrões que sugerem que os agentes estão concordando sem uma avaliação genuína:7
Agrupamento de pontuações: Todos os agentes com pontuações em um intervalo de 0,3 ponto em uma escala de 10 pontos sinalizam contaminação por contexto compartilhado, e não uma 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, uma nova execução com isolamento de contexto novo distribuiu as pontuações entre 5,8 e 8,9.
Discordância padronizada: 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 Analista de Segurança e um Engenheiro de Performance raramente concordam em tudo).
O detector de conformidade identifica os casos óbvios (cerca de 10-15% das deliberações em que os agentes convergem rápido demais). Nos 85-90% restantes, os gates de consenso e Pride Check fornecem validação suficiente.
O que não funcionou na deliberação
Rodadas de debate de formato livre. Três rodadas de texto de ida e volta em uma discussão sobre indexação de banco de dados produziram 7.500 tokens de debate. Rodada 1: discordância genuína. Rodada 2: posições reafirmadas. Rodada 3: argumentos idênticos com palavras diferentes. A pontuação estruturada por dimensão substituiu o debate de formato livre, reduzindo o custo em 60% e melhorando a qualidade do ranking.7
Um único gate de validação. A primeira implementação executava um hook de validação no fim da sessão. Um agente concluiu a deliberação com uma pontuação de consenso de 0,52 (abaixo do limite), depois continuou em tarefas não relacionadas por 20 minutos antes que o hook de fim de sessão sinalizasse a falha. Dividir em dois gates (um na conclusão da tarefa e outro no fim da sessão) detectou os mesmos problemas em pontos diferentes 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 representa 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 5 ($5/$25 por MTok), uma deliberação com 3 agentes custa aproximadamente US$ 0,23-0,30. Uma deliberação com 10 agentes custa US$ 0,75-1,00. O sistema aciona a deliberação em aproximadamente 10% das decisões, então o custo amortizado em todas as decisões é de US$ 0,08-0,10 por sessão. (Edições anteriores citavam valores 3 vezes maiores, calculados com os preços legados de US$ 15/US$ 75 do Opus 4.x.) Se isso vale a pena depende do custo de uma decisão ruim.
Quando deliberar
| Deliberar | Pular |
|---|---|
| Arquitetura de segurança | Erros de digitação na documentação |
| Design de esquema de banco de dados | Renomeação de variáveis |
| Alterações de contrato de API | Atualizações de mensagens de log |
| Estratégias de implantação | Reformulação de comentários |
| Atualizações de dependências | Atualizações de fixtures de teste |
Design do CLAUDE.md
O CLAUDE.md é uma política operacional para um agente de IA, não um README para humanos.21 O agente não precisa entender por que você usa commits convencionais. Ele precisa saber o comando exato que deve executar e o que significa uma tarefa estar “concluída”.
A hierarquia de precedência
| Local | Escopo | Compartilhado | Caso de uso |
|---|---|---|---|
| Configurações gerenciadas pela empresa | 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 |
Projeto local | Nunca | Anotações 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 |
Os arquivos de regras são carregados automaticamente e fornecem contexto estruturado sem sobrecarregar o CLAUDE.md.6
O que é ignorado
Estes padrões comprovadamente não produzem nenhuma mudança observável no comportamento do agente:21
Parágrafos em prosa sem comandos. “Valorizamos código limpo e bem testado” é documentação, não uma instrução operacional. O agente lê isso e começa a escrever código sem testes porque não há nenhuma instrução acionável.
Diretrizes 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 uma cobertura de testes abrangente”, “Mantenha o tempo de execução abaixo de 5 minutos” e “Execute todos os testes de integração antes de cada commit”. O agente não consegue atender às quatro instruções simultaneamente e, por padrão, acaba ignorando a verificação.21
Guias de estilo sem aplicação. “Siga o Guia de Estilo Python do Google” sem ruff check --select D não oferece ao agente nenhum mecanismo para verificar a conformidade.
O que funciona
Instruções que começam 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 você estiver começando do zero, adicione as seções nesta ordem de prioridade:21
- Comandos de build e teste (o agente precisa deles antes de conseguir fazer algo útil)
- Definição de conclusão (evita falsas conclusões)
- Regras de escalonamento (evitam soluções alternativas destrutivas)
- Seções organizadas por tarefa (reduzem o processamento de instruções irrelevantes)
- Escopo por diretório (monorepos: mantém isoladas as instruções de cada serviço)
Deixe as preferências de estilo de lado até que as quatro primeiras estejam funcionando.
Agora, a plataforma audita seu CLAUDE.md para você. Desde as versões do início de julho de 2026 (v2.1.203–v2.1.206), o /doctor analisa o CLAUDE.md e propõe remover conteúdo que o modelo consegue deduzir por conta própria a partir da base de código — estruturas de diretórios repetidas, convenções de frameworks já presentes no código e listas de comandos que duplicam scripts de pacotes.68 Essa é uma confirmação oficial da tese desta seção: as instruções justificam os tokens que consomem quando registram aquilo que o agente não consegue deduzir (políticas, limites e definições de conclusão), não o que ele pode ler no disco. Execute /doctor depois que o CLAUDE.md crescer significativamente e trate as propostas de redução como ponto de partida — mas preserve as regras operacionais que ele possa classificar como “dedutíveis” se elas forem restrições essenciais, não meras descrições.
Importações de arquivos
Faça referência a outros arquivos no 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 importação: relativa (@docs/file.md), absoluta (@/absolute/path.md) ou do diretório pessoal (@~/.claude/file.md). Profundidade máxima: 5 níveis de importação.6
Compatibilidade de instruções entre ferramentas
O AGENTS.md é um padrão aberto reconhecido por todas as principais ferramentas de programação com IA.21 Se sua equipe usa várias ferramentas, adote o AGENTS.md como fonte canônica e replique as seções relevantes nos arquivos específicos de cada ferramenta:
| Ferramenta | Arquivo nativo | Lê AGENTS.md? |
|---|---|---|
| Codex CLI | AGENTS.md | Sim (nativamente) |
| Cursor | .cursor/rules |
Sim (nativamente) |
| GitHub Copilot | .github/copilot-instructions.md |
Sim (nativamente) |
| Amp | AGENTS.md | Sim (nativamente) |
| Windsurf | .windsurfrules |
Sim (nativamente) |
| Claude Code | CLAUDE.md | Não (formato separado) |
Os padrões do AGENTS.md (comandos em primeiro lugar, conclusão definida e organização por tarefa) funcionam em qualquer arquivo de instruções, independentemente da ferramenta. Não mantenha conjuntos paralelos de instruções que possam divergir. Escreva uma única fonte oficial e replique-a.
Observações sobre a paridade com o Codex
Agora, o Codex tem equivalentes de primeira classe para as principais camadas do harness, mas a migração exige traduzir padrões, não apenas copiar arquivos. O Codex lê o AGENTS.md antes de começar a trabalhar, combinando as orientações globais de ~/.codex com as instruções do projeto e dos repositórios aninhados.31 As skills do Codex usam o mesmo modelo mental de SKILL.md com divulgação progressiva: o Codex começa com o nome, a descrição e o caminho do arquivo da skill e só carrega a skill completa quando decide usá-la.32 O Codex também oferece hooks nativos, hooks incluídos em plugins, hooks gerenciados, suporte a MCP e fluxos de trabalho explícitos com subagents.3334
O Codex v0.138.0–v0.139.0 tornou a descoberta do AGENTS.md mais robusta em espaços de trabalho não triviais: agora, o carregamento passa pela abstração do sistema de arquivos do ambiente e preserva os caminhos lógicos durante a busca, garantindo que o arquivo correto seja selecionado mesmo quando o espaço de trabalho está em um sistema de arquivos remoto ou em uma árvore com links simbólicos.61 Isso é importante sempre que seu AGENTS.md canônico é a fonte oficial e o agente trabalha em um checkout montado, materializado em um contêiner ou com links simbólicos — situações em que uma busca ingênua por caminhos selecionaria silenciosamente o arquivo de instruções errado ou não encontraria nenhum. Se você replica um único AGENTS.md oficial entre serviços, considere essa versão o requisito mínimo para confiar que o arquivo carregado pelo agente é realmente aquele que você escreveu.
Em seguida, o Codex v0.141.0 tornou o próprio caminho de execução remota mais robusto: agora, executores remotos se conectam por canais Noise-relay autenticados e criptografados de ponta a ponta (o plano de controle e o executor não precisam mais confiar no relay entre eles), a execução remota entre plataformas preserva o diretório de trabalho e o shell nativos do executor, e o TLS aceita assinaturas de certificados P-521 para proxies empresariais.65 Se sua orquestração aciona executores do Codex através de uma fronteira de rede, essa é a diferença entre presumir que o relay é confiável e usar criptografia de ponta a ponta — considere-a o requisito mínimo para qualquer topologia de executores remotos.
A linha de versões de julho de 2026 mostra os dois runtimes convergindo para os mesmos recursos fundamentais, embora partindo de direções opostas.72 O Codex v0.143.0 faz com que as ferramentas MCP sejam carregadas por tool search por padrão — os schemas das ferramentas são adiados e buscados sob demanda, em vez de serem carregados antecipadamente no contexto —, o mesmo padrão de carregamento adiado de ferramentas que o Claude Code disponibiliza por meio de sua interface ToolSearch e a solução correta, nos dois runtimes, para o inchaço de contexto quando há muitas ferramentas MCP. O Codex v0.144.0 adiciona um modo de aprovação de apps writes: ações somente leitura são executadas sem solicitar confirmação, enquanto escritas exigem aprovação — um recurso realmente novo de controle de permissões, situado entre os modos somente leitura e aprovação automática, que a lista de modos do Claude Code não representa diretamente (o equivalente mais próximo é o modo plan, que bloqueia completamente as escritas em vez de solicitar aprovação para cada uma). A mesma versão leva a autenticação interativa do MCP à disponibilidade geral. E a v0.144.5 amplia a detecção de comandos perigosos, refletindo as proteções contra comandos destrutivos lançadas pelo Claude Code nas versões v2.1.183 e v2.1.208. Para o design de harnesses entre runtimes, a convergência é o ponto central: carregamento adiado de ferramentas, aprovação gradual de escritas e bloqueio de comandos perigosos no nível da intenção estão se tornando requisitos básicos, não diferenciais entre fornecedores.
O Codex v0.145.0 leva essa convergência ainda mais longe em duas frentes.76 A interface opcional multi-agent V2 foi estabilizada: agora, os modelos dos sub-agents, os níveis de raciocínio e a concorrência são configuráveis, e as funções de agentes que haviam sido removidas foram restauradas — a resposta do Codex à configuração de modelo e nível de esforço por subagent no frontmatter de .claude/agents/. Além disso, o /import evoluiu para uma migração completa entre harnesses: além da importação das configurações do Claude Code lançada na v0.140.0, agora ele migra configurações do Claude Code e do Cursor — incluindo servidores MCP, plugins, sessões, comandos e memórias com escopo de projeto. Para equipes que executam os dois runtimes, o custo de migração entre eles continua caindo em uma direção; as camadas de harness que você cria sobre o Claude Code — servidores, skills como comandos e memória — são cada vez mais um estado portátil, não uma dependência exclusiva de um fornecedor.
O mapeamento prático:
| Camada do harness do Claude Code | Equivalente no Codex | Regra de migração |
|---|---|---|
CLAUDE.md / .claude/rules/ |
AGENTS.md / AGENTS.override.md aninhados |
Mantenha os comandos e as regras de conclusão na fonte canônica; divida apenas quando o escopo do diretório for realmente diferente |
.claude/skills/<name>/SKILL.md |
.agents/skills/<name>/SKILL.md ou skill de plugin |
Migre fluxos de trabalho reutilizáveis, mas reescreva as descrições de acordo com a terminologia de ativação e o orçamento do Codex |
Hooks de .claude/settings.json |
config.toml do Codex, hooks de plugins ou hooks de requisitos gerenciados |
Migre primeiro os gates determinísticos; teste cada hook com eventos reais de ferramentas antes de habilitá-lo amplamente |
.claude/agents/*.md |
~/.codex/agents/*.toml, .codex/agents/*.toml ou worker / explorer integrados |
Migre apenas os agentes que oferecem valor recorrente; prefira delegação explícita porque os subagents do Codex são explícitos |
| Plugins | Plugins do Codex | Use plugins como unidade de distribuição depois que hooks e skills locais estiverem comprovados |
A diferença importante: os subagents do Claude podem ser selecionados automaticamente a partir das descrições, enquanto a documentação atual do Codex apresenta fluxos de trabalho com subagents como explícitos. Isso torna skills e hooks a escolha padrão adequada para comportamentos sempre ativos do harness no Codex; subagents são indicados para trabalho paralelo deliberado, revisão e exploração.
Como testar suas instruções
Verifique se o agente 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 agente que explique seus comandos de build. Se ele não conseguir reproduzi-los literalmente, as instruções são extensas demais (o conteúdo foi empurrado para fora do contexto), vagas demais (o agente não consegue extrair instruções acionáveis) ou não estão sendo descobertas. A análise de 2.500 repositórios feita pelo GitHub constatou que a falta de clareza 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 recursos específicos que mudam o que um harness precisa prevenir:29
- Resiliência a falhas de ferramentas: O Opus 4.7 continua após falhas de ferramentas que interrompiam sessões do Opus 4.6. Você pode reduzir — mas não eliminar — wrappers defensivos de retry no código de subagents. Mantenha as proteções no nível de hooks; reduza a estrutura de prompt do tipo “se a ferramenta falhar, tente novamente três vezes”.
- Nível de esforço
xhigh: Introduzido junto com o Opus 4.7 e agora compatível com os modelos Opus atuais (o Opus 4.8 foi lançado com ele como/effort xhighna v2.1.154; o Opus 5 o herda). Fica entrehighemax. É o padrão recomendado para workloads de programação e agentic. 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 uma única execução;xhighé melhor para tarefas contínuas. - Teto de orçamento de tokens: Configurável por execução de agente via
output_config.task_budget(header betatask-budgets-2026-03-13). O modelo vê uma contagem regressiva em execução e ajusta o escopo do trabalho ao orçamento de forma elegante, em vez de ficar sem tokens inesperadamente. Use em loops agentic quando quiser gastos previsíveis de tokens sem sacrificar a qualidade em prompts curtos. - Consciência de necessidades implícitas: Primeiro modelo Claude a passar em testes de “necessidade implícita” — reconhecendo quando a solicitação literal do usuário não especifica o 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 proteções do tipo “considere também X quando o usuário pedir Y”, elimine as que agora são cobertas nativamente.
Base de worktree, caminhos do sandbox e configurações de administrador (7 de maio de 2026)
Claude Code v2.1.133 adiciona quatro configurações de nível administrativo 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 incompatível da 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 o local do binário Bubblewrap em hosts Linux/WSL onde ele não está no $PATH ou onde você distribui uma versão incluída no projeto. |
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 administrativo sobre como managedSettings do SDK se compõem com as configurações empresariais/de equipe pai. 'merge' permite que uma sessão filha herde e amplie; 'first-wins' mantém o pai como autoridade. |
A reversão de worktree.baseRef é a que você deve destacar para os usuários: agentes que dependiam do comportamento da v2.1.128-v2.1.132 (worktrees criando branches a partir do HEAD local) perdem acesso ao trabalho não enviado em worktrees novos, a menos que optem novamente por esse comportamento.
Pesquisa de feedback OTel para observabilidade empresarial (8 de maio de 2026)
Claude Code v2.1.136 adicionou CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL para reativar a pesquisa de qualidade na sessão para empresas que capturam as respostas pelo OpenTelemetry.40 Se sua organização envia eventos OTel para uma stack central de observabilidade, essa variável de ambiente coloca a pesquisa de volta no caminho dos dados, para que o sinal de qualidade flua pelo mesmo pipeline que as métricas de latência e erro. Trate-o como opt-in: o padrão mantém a pesquisa desativada, o que é correto para implantações sem OTel.
Launchers corporativos e desempenho em escala de MCP (julho de 2026)
Duas mudanças da v2.1.207 são importantes para implantações de produção.68 CLAUDE_CODE_PROCESS_WRAPPER permite que ambientes gerenciados iniciem o processo Claude Code por meio de um binário wrapper corporativo — o ponto de integração para agentes de endpoint, verificações de política no momento da inicialização e ambientes em que todo processo deve ser executado sob um supervisor obrigatório. Se sua empresa antes simulava isso com aliases de shell ou scripts de launcher bifurcados, esta é a interface compatível.
A mesma versão reduziu o overhead de runtime onde os harnesses mais o sentem: até 7× mais rápido em rodadas de uso de ferramentas em sessões com altas contagens de ferramentas MCP, e transcrições de sessão 79× menores.68 Isso suaviza — sem reverter — a orientação de Custo como arquitetura: CLI-first ainda vence para operações pontuais sem estado, mas um harness que carrega dezenas de ferramentas MCP não paga mais a penalidade por rodada que pagava na primavera, e o armazenamento de transcrições deixa de ser um custo oculto de longas execuções autônomas.
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 erros de digitação, erros de lógica e trechos pouco claros
- Avaliar - Execute o evidence gate. Verifique padrões, casos extremos e cobertura de testes
- Refinar - Corrija todos os problemas. Nunca adie para “depois”
- Ampliar a visão - 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 à etapa 4
- Relatar - Liste o que mudou, como foi verificado e cite evidências específicas
O evidence gate
“Acredito” e “deve funcionar” não são evidências. Cite caminhos de arquivos, saída de testes ou código específico.
| Critério | Evidência exigida |
|---|---|
| Segue os padrões da base de código | 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ê |
| Casos extremos tratados | Liste casos extremos 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 puder apresentar evidências para qualquer linha, volte a Refinar.22
Autoridade humana para merge
Um estudo do arXiv de maio de 2026 sobre 29.585 ciclos de vida de pull requests de agentes de IA separa autonomia operacional de governança de merge.47 A lição arquitetural útil é simples: agentes podem iniciar o trabalho, levar branches adiante, abrir PRs, revisar o trabalho e resumir riscos, enquanto a autoridade para merge permanece um limite de governança separado.
Torne esse limite explícito no harness. Deixe os agentes prepararem PRs e reunirem 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 distingam o executor da pessoa ou política que o autorizou.
Padrões de tratamento de erros
Gravações 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 sistema operacional 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 falhar: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 do bash ((VAR++)). ((VAR++)) retorna o código de saída 1 quando VAR é 0 porque 0++ é avaliado como 0, algo que o bash trata como falso. Com set -e ativado, isso encerra o script. Use VAR=$((VAR + 1)) em vez disso.16
Classificação de raio de impacto
Classifique cada ação do agente pelo raio de impacto e aplique o gate correspondente:2
| Classificação | Exemplos | Gate |
|---|---|---|
| Local | Gravações de arquivos, execuções de testes, linting | Aprovação automática |
| Compartilhado | Commits do Git, criação de branches | Avisar + prosseguir |
| Externo | Git push, chamadas API, implantações | Exigir aprovação humana |
O Remote Control (conectar-se ao Claude Code local de qualquer navegador ou aplicativo móvel) 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 referências 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/reprovação de testes, saída do linter, códigos de status HTTP e verificações de existência de arquivos. Uma tarefa inicial que pedia ao agente para “escrever testes que passam” gerou assert True e assert 1 == 1. Tecnicamente correto. Na prática, inútil.16
| Qualidade dos critérios | Exemplo | Resultado |
|---|---|---|
| Vago | “Os testes passam” | O agente escreve testes triviais |
| Mensurável, mas incompleto | “Os testes passam E a cobertura >80%” | Os testes cobrem linhas, mas não testam nada significativo |
| Abrangente | “Todos os testes passam E a cobertura >80% E não há erros de tipo E o linter está limpo E cada classe de teste testa um módulo distinto” | Resultado com qualidade de produção |
Modos de falha para observar
| Modo de falha | Descrição | Prevenção |
|---|---|---|
| Espiral de atalhos | Pular etapas do quality loop para terminar mais rápido | O evidence gate exige prova para cada critério |
| Miragem de confiança | “Estou confiante” sem executar verificação | Proíba linguagem evasiva nos relatórios de conclusão |
| Verificação fantasma | Alegar que os testes passam sem executá-los nesta sessão | O hook Stop executa os testes de forma independente |
| Dívida adiada | TODO/FIXME/HACK em código commitado | O hook PreToolUse em git commit verifica 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 rastreamento concreto de sessão
Um rastreamento de sessão de uma execução autônoma que processa um PRD com 5 stories:2
-
SessionStart é acionado. O dispatcher injeta: data atual, detecção de projeto, restrições de filosofia, inicialização do acompanhamento de custos. Cinco hooks, 180 ms no total.
-
O agente lê o PRD, planeja a primeira story.
UserPromptSubmité acionado. O dispatcher injeta: contexto do projeto ativo, linha de base de desvio da sessão. -
O agente chama Bash para executar testes.
PreToolUse:Bashé acionado. Verificação de credenciais, validação do sandbox e detecção de projeto. 90 ms. Os testes são executados.PostToolUse:Bashé acionado: heartbeat de atividade registrado, verificação de desvio. -
O agente chama Write para criar um arquivo.
PreToolUse:Writeé acionado: verificação de escopo do arquivo.PostToolUse:Writeé acionado: verificação de lint, acompanhamento de commits. -
O agente termina a story.
Stopé acionado. O quality gate verifica: o agente citou evidências? Usou linguagem evasiva? Há comentários TODO no diff? Se alguma verificação falhar, saída 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 revisão de código são iniciados em paralelo. Cada um revisa o diff de forma independente. Se algum revisor sinalizar CRITICAL, a story volta para a fila.
-
A story passa. A próxima story é carregada. O ciclo se repete para todas as 5 stories.
Total de hooks acionados 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 noturna.
Estudo de caso: processamento noturno de PRD
Um harness de produção processou 12 PRDs (47 stories) em 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 a main | 4 bloqueados | Aplicação por saída 2 |
| Taxa de conclusão falsa | 35% de testes falhos | 4% | Evidence gate + hook Stop |
| Rodadas de revisão/story | 2,1 | 0,8 | Skills + quality loop |
| Degradação de contexto | 6 incidentes | 1 incidente | Memória do sistema de arquivos |
| Overhead de tokens | 0% | ~3,2% | Negligível |
| Tempo de hook/story | 0 s | ~2,4 s | Negligível |
Os dois vazamentos de credenciais exigiram a rotação de chaves API e a auditoria de serviços downstream: aproximadamente 4 horas de resposta ao incidente. O overhead do harness que evitou o equivalente foi de 2,4 segundos de bash por story. A taxa de conclusão falsa caiu de 35% para 4% porque o hook Stop executou testes de forma independente antes de permitir que o agente informasse a conclusão.
Considerações de segurança
Os cinco princípios de agentes confiáveis (Anthropic, abril de 2026)
Anthropic publicou uma estrutura formal para a confiabilidade de agentes em 9 de abril de 2026.27 Os cinco princípios são paralelos — e ampliam — o raciocínio do Evidence Gate deste guia:
| Princípio | O que significa | Como este harness atende a ele |
|---|---|---|
| Controle humano | Substituição humana significativa em cada ponto de decisão | Hooks controlam chamadas de ferramentas; bloqueio do PreCompact; classificador do Auto Mode como camada de verificação |
| Alinhamento de valores | As ações do agente acompanham a intenção do usuário, não objetivos adjacentes | CLAUDE.md como especificação explícita de intenção; skills como delimitação 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 | Registro de hooks; transcrições de sessão; rastros de invocação de skills |
| Privacidade | Tratamento e governança adequados de dados | Limpeza de variáveis de ambiente de credenciais; detecção de secrets na camada de hooks |
Anthropic também doou MCP para a Agentic AI Foundation da Linux Foundation, juntando-se ao AGENTS.md (agora administrado 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
Turno sem estado e identidade autodeclarada do MCP. A especificação do MCP concluiu sua transição para um núcleo sem estado (SEP-2575) com a revisão de 28 de julho de 2026, agora a especificação Current, que elimina o handshake stateful de initialize que antes carregava a identidade do servidor. Uma alteração no rascunho da especificação incorporada em 16 de julho (PR #3002) restaura a identidade como uma superfície opcional: os servidores podem incluir um objeto io.modelcontextprotocol/serverInfo na resposta _meta, e clientInfo passa a ser opcional nas solicitações.71 A parte relevante para a segurança é o que a especificação diz sobre confiança: essa identidade é autodeclarada e não verificada — apenas para exibição e registro — e NÃO DEVE orientar decisões de segurança. Se o seu harness baseia allowlists, regras de permissão ou auditoria baseada em logs no nome declarado de um servidor MCP, esse nome é uma alegação, não uma credencial; fixe a confiança no transporte e na configuração (qual servidor você configurou em qual endpoint), nunca no que o servidor diz ser. A revisão sem estado foi lançada conforme o cronograma em 28 de julho de 2026 (server/discover obrigatório, negociação da versão do protocolo via _meta, cabeçalho Streamable HTTP) — a orientação de confiança acima descreve o comportamento lançado.
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 fornece vereditos respaldados por evidências da detecção Sigma/YARA/Nova/Snort. É o primeiro produto na categoria de sandbox para skills.28
O sandbox
Claude Code oferece um modo sandbox opcional (ativado por settings.json ou pelo comando /sandbox) que restringe o acesso à rede e as operações do 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 no qual 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 na análise de permissões relacionadas a regras de permissão do PowerShell e variáveis obsoletas, além de um bug na allowlist de escrita do sandbox para git-worktree que cobria toda a raiz do repositório principal em vez de apenas os internos compartilhados do git.53 Se o seu harness permite PowerShell ou agentes isolados por worktree, trate a v2.1.149+ como o piso e mantenha as regras de shell restritas. PowerShell(*) abrangente e exceções de escrita para todo o repositório são atalhos de orquestração, não limites de segurança.
Bloqueio do sandbox do OpenAI Agents SDK (v0.17.0, 8 de maio de 2026). Do lado da OpenAI, a v0.17.0 de openai-agents-python reforçou um limite paralelo: LocalFile.src e LocalDir.src agora são 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 explicitamente concedida por 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 limite de artefatos locais: versões anteriores permitiam que manifestos trouxessem caminhos arbitrários do host para um workspace de 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 confiável da aplicação; nunca preencha concessões a partir da saída do modelo ou de entrada de manifesto não confiável.
Piso complementar do OpenAI Agents SDK (v0.17.3). A linha 0.17.1-0.17.3 adicionou mais reforços de sandbox e sessão: limites de extração de arquivos, validação de subcaminhos do GitRepo, erros mais claros do provedor de sandbox, credenciais de mountpoint mantidas fora de comandos de sandbox, rejeição de raízes relativas de workspace de sandbox e tratamento de estado terminal do sandbox da Vercel.54 Se você usa sandboxes hospedados pela OpenAI ou apoiados por provedores, em vez de apenas hooks do Claude Code, trate a 0.17.3 como o piso atual para os padrões desta seção.
Três padrões de contenção entre produtos (Anthropic, maio de 2026)
A publicação de engenharia da Anthropic “How we contain Claude across products” (25 de maio de 2026) é a própria articulação do fornecedor dos princípios que esta seção ensina de forma fragmentada — o sandbox no nível de configurações acima, o piso de isolamento por worktree, a postura de tratar tudo como não confiável.81 Seu movimento central é mapear a força da contenção à superfície do produto, e o próprio mapeamento é a lição: não há um único design correto de isolamento, apenas isolamento adequado a quem está supervisionando e ao que pode dar errado.
- Contêineres gVisor efêmeros (claude.ai). A execução no lado do servidor é executada em contêineres gVisor em infraestrutura isolada, com um sistema de arquivos efêmero por sessão. O modelo de ameaça é o isolamento da infraestrutura e dos tenants — a máquina do usuário nunca pode ser alcançada, então nada local precisa ser protegido.
- Sandboxing do sistema operacional com humano no circuito (Claude Code). O padrão descrito no parágrafo sobre sandbox acima, declarado como política: Seatbelt no macOS e bubblewrap no Linux, com leituras permitidas, escritas limitadas ao workspace e rede negada por padrão — o humano aprova aquilo que o limite não cobre. A Anthropic tornou o runtime open source (
sandbox-runtime), para que o limite seja auditável. A publicação é franca sobre o elo fraco: aproximadamente 93% dos prompts de permissão são aprovados, e o classificador do auto mode — que detecta cerca de 83% dos comportamentos excessivamente proativos antes da execução, enquanto reduz os prompts de aprovação em 84% — existe justamente porque a fadiga de aprovação é uma propriedade de segurança, não uma reclamação de UX. Essa é a postura de camada de verificação que este guia acompanha desde a v2.1.193. - VMs seladas (Claude Cowork). Máquinas virtuais completas em hypervisors de plataforma — framework Apple Virtualization no macOS, HCS no Windows — com apenas o workspace selecionado e a pasta
.claudemontados; nada mais no host fica visível. As credenciais nunca entram na VM: elas permanecem no keychain do host, e cada sessão recebe um token com escopo e revogável de forma independente. Um proxy MITM defensivo dentro da VM impõe isso, encaminhando apenas solicitações que carregam o próprio token de sessão provisionado da VM — uma chave inserida por um invasor é rejeitada no limite, porque somente a VM conhece a procedência.
Os princípios de design por trás da taxonomia são a parte transferível. Contenha primeiro na camada de ambiente, oriente depois na camada de modelo: toda defesa probabilística tem uma taxa de falha diferente de zero, portanto limites determinísticos precisam capturar aquilo que a orientação no nível do prompt não detecta — o argumento deste guia de que hooks garantem a execução, reformulado pelo fornecedor. Adeque a força do isolamento à capacidade de supervisão do usuário: um desenvolvedor pode avaliar um comando bash antes de aprová-lo; um trabalhador do conhecimento não pode — é por isso que Code recebe um diálogo de permissão e Cowork recebe uma VM selada. Prefira primitivas testadas em batalha em vez de código de isolamento personalizado: hypervisors, seccomp e runtimes de contêineres sobreviveram ao escrutínio adversarial melhor do que os próprios proxies de allowlist e parsers de configuração personalizados da Anthropic. Trate a configuração local do projeto e as saídas de ferramentas como não confiáveis: a instrução da publicação é tratar abertura de projeto e carregamento de configuração como qualquer solicitação de entrada da internet, e a saída de ferramentas como uma superfície de ataque mesmo quando a ferramenta é confiável — a mesma postura que este guia aplica a mensagens entre agentes, conteúdo lido por subagents e identidade MCP autodeclarada. Mantenha as credenciais fora do sandbox: tokens com escopo, revogáveis e por sessão, em vez de chaves ambientais que o agente poderia vazar.
A superfície de configurações está alcançando o primeiro princípio (v2.1.219). “Contenha primeiro na camada de ambiente” é fácil de defender e tem sido difícil de configurar de fato, porque o sandbox do Claude Code resolvia o que suas regras não cobriam perguntando — e um prompt de permissão é uma defesa probabilística usando uma fantasia determinística, como admite o número de 93% de aprovações acima. sandbox.network.strictAllowlist elimina a pergunta para egress: com essa opção definida, a solicitação de um comando em sandbox para um host fora da allowlist é negada diretamente em vez de gerar um prompt.84 Combine-a com sandbox.filesystem.disabled da v2.1.216 e as duas configurações formam uma postura, em vez de uma pilha de toggles — a contenção do sistema de arquivos e da rede pode ser selecionada de forma independente, e a contenção de rede agora pode ser determinística. Para um harness sem supervisão, esta é a mais importante das duas, porque egress é onde uma instrução injetada se torna exfiltração, e o caso extremo da fadiga de aprovação é não haver ninguém no teclado para se fatigar. O custo é o custo normal de um limite determinístico: a allowlist precisa estar correta, e um host que você esqueceu falha como uma negação opaca, não como uma pergunta. Liste os hosts dos quais seus agentes realmente precisam e então remova o prompt.
Nada disso substitui a camada de hooks; isso fica abaixo dela. Os padrões de contenção são o piso determinístico, e o histórico de imposição de worktree neste guia é a mesma lição em miniatura: um limite só conta se resistir a redirecionamento deliberado, e as primitivas com maior chance de resistir são aquelas que não foram escritas para a ocasião.
Limites de permissão
O sistema de permissões controla operações em vários níveis:
| Nível | Controla | Exemplo |
|---|---|---|
| Permissões de ferramentas | Quais ferramentas podem ser usadas | Restringir subagent a Read, Grep, Glob |
| Permissões de arquivos | Quais arquivos podem ser modificados | Bloquear escritas em .env, credentials.json |
| Permissões de comandos | 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 de servidor MCP |
Regras de permissão no nível de parâmetros (junho de 2026)
Claude Code v2.1.178 ampliou as regras de permissão do nível da ferramenta para o nível de parâmetro: Tool(param:value) corresponde aos parâmetros de entrada de uma ferramenta, com * como curinga. O exemplo canônico é Agent(model:opus) — uma regra que impede que subagents sejam iniciados 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 podia restringir como ela era chamada. Agora, uma política de governança pode dizer “subagents podem iniciar, 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 no nível do 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 combinam — a allowlist define quais camadas existem para a sessão, e as regras no nível de parâmetros restringem como os subagents as utilizam. A partir da v2.1.196, administradores também podem definir um modelo padrão para toda a organização no console da organização, exibido como “Org default” em /model, para que uma frota herde um padrão governado sem que cada operador precise fixar um — um piso que complementa o teto da allowlist.
Regras de permissão com escopo de caminho se ancoram ao diretório de trabalho (julho de 2026)
Claude Code v2.1.214 corrigiu uma correspondência excessiva discreta nas regras de permissão com escopo de caminho: uma regra de permissão com um padrão de segmento único dir/** — Edit(src/**), por exemplo — aprovava automaticamente edições em qualquer diretório chamado src em qualquer profundidade, incluindo vendor/some-package/src/ e todos os outros src/ aninhados que o autor da regra nunca quis autorizar. Essas regras agora se ancoram apenas em <cwd>/dir; se você realmente quiser correspondência em qualquer profundidade, declare-a com **/dir/**.74 Regras de negação e pergunta deliberadamente mantêm a antiga correspondência em qualquer profundidade. Essa assimetria é o design correto de falha segura: uma regra de permissão que corresponde de forma restrita demais falha com segurança (você recebe um prompt), enquanto uma regra de negação que corresponde de forma restrita demais falha aberta (um caminho bloqueado passa) — por isso, as permissões ficaram mais restritas e as negações permaneceram amplas. Se suas configurações dependem de padrões de permissão de segmento único para cobrir caminhos aninhados, elas deixaram silenciosamente de fazê-lo na v2.1.214; essa é a correção funcionando como esperado, mas vale revisar suas allowlists para declarar novamente a abrangência que você realmente quer.
Proteções contra comandos destrutivos no Auto Mode (junho de 2026)
Claude Code v2.1.183 reduziu o raio de explosão do auto mode para as operações que silenciosamente perdem trabalho ou desmontam ambientes. Agora, o auto mode bloqueia permanentemente, a menos que você tenha pedido explicitamente por elas na sessão: operações destrutivas do git (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 desativação de infraestrutura (terraform destroy, pulumi destroy, cdk destroy) a menos que você tenha indicado a stack específica.65 Arquiteturalmente, isso complementa a verificação de spawn e as regras no nível de parâmetros acima: em vez de controlar qual ferramenta ou como ela é iniciada, controla um pequeno conjunto de comandos irreversíveis específicos por intenção — o agente ainda pode executá-los, mas apenas mediante 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: os comandos que destroem estado merecem uma regra de negação por padrão que somente um sinal explícito do operador remove.
Julho de 2026: o auto mode chega ao enterprise, e um prompt não pode ser dispensado. O auto mode alcançou GA no Amazon Bedrock, Google Vertex AI e Microsoft Foundry na v2.1.207, com uma configuração gerenciada disableAutoMode como opt-out para empresas — a postura de classificador como camada de verificação agora está disponível em todas as plataformas empresariais primárias, e desativá-la é uma decisão explícita de governança, não uma lacuna da plataforma.68 Em seguida, a v2.1.208 tornou absoluta a proteção contra remoções catastróficas: prompts de confirmação para remoções catastróficas agora atravessam tanto --dangerously-skip-permissions quanto o auto mode.68 Este é um precedente notável — a primeira confirmação no Claude Code que nenhuma postura de permissão, inclusive a flag explícita de bypass, pode dispensar. Designs de harnesses autônomos que presumiam que --dangerously-skip-permissions significava literalmente zero prompts devem considerar essa exceção; ela é acionada exatamente onde um loop sem supervisão pode causar os danos mais irrecuperáveis.
Proteções contra fabricação (julho de 2026)
As versões v2.1.203–v2.1.206 fecharam dois caminhos pelos quais um agente poderia fabricar seu próprio rastro de auditoria.68 Primeiro, uma regra do auto mode agora bloqueia a adulteração de arquivos de transcrição — o registro da sessão deixou de ser algo que as próprias chamadas de ferramenta da sessão podem reescrever. Segundo, as notificações de tarefas em segundo plano agora informam explicitamente que nenhuma entrada humana ocorreu enquanto a tarefa foi executada. A segunda medida visa uma falha sutil: antes, um modelo que resumisse uma tarefa em segundo plano poderia apresentar (ou inventar) uma “aprovação” na transcrição que nunca ocorreu, e nada na notificação a contradizia. Agora, a própria notificação é a contraevidência.
A lição arquitetural se generaliza para o Evidence Gate: transcrições, notificações e logs são superfícies de auditoria, e superfícies de auditoria não devem ser graváveis pelo objeto que auditam. A plataforma agora impõe isso para sua própria transcrição; aplique a mesma regra ao seu harness — relatórios de evidência, saídas de testes e registros de deliberação pertencem fora do caminho gravável pelo modelo.
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 obtenha 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 explosão. Um subagent com permissionMode: plan não pode fazer alterações mesmo que seu prompt esteja comprometido.
O piso da plataforma subiu em julho de 2026. Claude Code v2.1.210 reforçou a Agent tool contra prompt injection indireto transportado em conteúdo que um subagent leu — um arquivo, página da web ou resultado de ferramenta envenenado obtido por um subagent tem menos capacidade de orientar a própria superfície de delegação.69 E a v2.1.211 reforçou o elo humano na cadeia: as prévias de permissão agora neutralizam caracteres Unicode de substituição bidirecional, largura zero e semelhantes, de modo que um comando não pode mais ser criado para parecer inofensivo no diálogo de aprovação enquanto executa outra coisa.69 A segunda correção é mais importante para harnesses em que um humano aprova prévias renderizadas sob pressão de tempo — a exibição também era uma superfície de injection. Nenhuma das mudanças substitui as defesas no nível de hooks acima; elas elevam o piso abaixo delas.
Logs e proteções de agentes são superfícies de segurança
Dois avisos de maio de 2026 reforçam um padrão: a infraestrutura de agentes cria novos lugares para que conteúdo sensível e políticas executáveis vazem ou escapem. O aviso GHSA-f3jg-756w-gm35 do GitHub aborda um problema de filtro de payload do Gryph Agents no qual conteúdo sensível de payload de ferramentas poderia permanecer em logs locais SQLite sob o comportamento de logging padrão.45 O OSV GHSA-wxxx-gvqv-xp7p aborda uma fuga de sandbox de guardrail de código personalizado LiteLLM em um endpoint de proxy protegido por administrador.46
A regra de produção: trate transcrições de agentes, payloads de ferramentas, logs SQLite e execução de guardrails como infraestrutura sensível. Remova dados sensíveis antes da persistência, aplique limites de retenção e mantenha o código de guardrail personalizado em sandbox e revisável. Uma regra no nível do prompt de “não registre secrets” não é suficiente; o caminho de logging e guardrails precisa de testes determinísticos.
Segurança de hooks
Hooks HTTP que interpolam variáveis de ambiente em cabeçalhos exigem uma lista explícita de allowedEnvVars para evitar 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 responsabilidades entre humanos e agentes
A segurança em arquiteturas de agentes exige uma divisão clara entre responsabilidades humanas e de agentes: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 erros | Detecção de erros |
| Decisões de arquitetura | Opções de arquitetura |
| Injeção de contexto de domínio | Geração de documentação |
O padrão: humanos assumem decisões que exigem contexto organizacional, julgamento ético ou direção estratégica. Agentes assumem decisões que exigem busca computacional em grandes espaços de possibilidades. Hooks impõem o limite.
Aplicação recursiva de hooks
Hooks também são disparados para ações de subagents.13 Se Claude iniciar um subagent por meio da Agent tool, seus hooks PreToolUse e PostToolUse serão executados para cada ferramenta que o subagent usar. Sem aplicação recursiva de hooks, um subagent poderia ignorar seus limites de segurança. O evento SubagentStop permite executar limpeza ou validação quando um subagent é concluído.
Isso não é opcional. Um agente que inicia um subagent sem seus hooks de segurança é um agente que pode fazer force-push para main, ler arquivos de credenciais ou executar comandos destrutivos enquanto seus limites observam a conversa principal sem fazer nada.
Custo como arquitetura
Custo é uma decisão arquitetural, não uma reflexão operacional tardia.2 Três níveis:
Nível de token. Compressão do system prompt. Remova exemplos de código de tutorial (o modelo conhece os APIs), consolide regras duplicadas entre arquivos e substitua explicações por restrições. “Rejeite chamadas de ferramentas que correspondam a caminhos sensíveis” faz o mesmo trabalho que uma explicação de 15 linhas sobre por que as credenciais não devem ser lidas.
Nível de agente. Spawns novos em vez de conversas longas. Cada história em uma execução autônoma recebe um novo agente com contexto limpo. O contexto nunca aumenta demais 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-first em vez de MCP quando a operação não tem estado. Uma chamada claude --print para uma avaliação pontual 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 o código após cada edição | Hook PostToolUse | Deve acontecer sempre, de forma determinística |
| Bloquear comandos Bash perigosos | Hook PreToolUse | Deve bloquear antes da execução, código de saída 2 |
| Aplicar padrões de revisão de segurança | Skill | Especialização de domínio que é ativada automaticamente pelo contexto |
| Explorar a base de código sem poluir o contexto | Subagent Explore | Contexto isolado, retorna apenas um resumo |
| Executar refatoração experimental com segurança | Subagent isolado por worktree | As alterações podem ser descartadas se falharem |
| Revisar código sob múltiplas perspectivas | Subagents paralelos ou Agent Team | A avaliação independente evita pontos cegos |
| Decidir sobre uma arquitetura irreversível | Deliberação multiagente | Gatilho de confiança + validação por consenso |
| Persistir decisões entre sessões | MEMORY.md | O sistema de arquivos sobrevive aos limites de contexto |
| Compartilhar padrões da equipe | CLAUDE.md do projeto + .claude/rules/ | Distribuído pelo Git, carregado automaticamente |
| Definir comandos de build/teste do projeto | CLAUDE.md | Instruções orientadas a comandos que o agente pode verificar |
| Executar desenvolvimento autônomo de longa duração | Loop Ralph (iteração com contexto novo) | Orçamento total de contexto por iteração, estado no sistema de arquivos |
| Notificar o Slack quando a sessão terminar | Hook Stop assíncrono | Não bloqueia, não deixa a sessão mais lenta |
| Validar a qualidade antes do commit | Hook PreToolUse em git commit | Bloqueia o commit se lint/testes falharem |
| Aplicar critérios de conclusão | Hook Stop | 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 de LLM) | Determinística (orientada por eventos) | Explícita ou delegada automaticamente |
| Garantia | Probabilística (o modelo decide) | Determinística (sempre é acionada) | Determinística (contexto isolado) |
| Custo de contexto | Injetado no contexto principal | Zero (executa fora de 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 | Especialização de domínio | Aplicação de políticas | Trabalho focado, exploração |
Perguntas frequentes
Quantos hooks são hooks demais?
O limite é o desempenho, não a quantidade. Cada hook é executado de forma síncrona, portanto o tempo total de execução dos hooks é somado a cada chamada de ferramenta correspondente. 95 hooks nas configurações de usuário e de projeto são executados sem latência perceptível quando cada hook é concluído em menos de 200 ms. O limite a observar: se um hook PostToolUse acrescenta mais de 500 ms a cada edição de arquivo, a sessão fica lenta. Faça o profiling dos seus hooks com time antes de implantá-los.14
Os hooks podem impedir que Claude Code execute um comando?
Sim. Hooks PreToolUse bloqueiam qualquer ação de ferramenta ao sair com o código 2. Claude Code cancela a ação pendente e mostra ao modelo a saída stderr do hook. Claude vê o motivo da rejeição e sugere uma alternativa mais segura. A saída 1 é um aviso não bloqueante, no qual 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 no nível do projeto (incluídos no commit do seu repositório e compartilhados com sua equipe) ou em ~/.claude/settings.json para hooks no nível do usuário (pessoais, aplicados a todos os projetos). Hooks no nível do projeto têm precedência quando ambos existem. Use caminhos absolutos para arquivos de script a fim de evitar problemas de 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 e dependência de contexto). Apenas decisões com pontuação geral de confiança abaixo de 0,70 acionam a deliberação, cerca de 10% do total de decisões. Correções de documentação, renomeações de variáveis e edições rotineiras ignoram totalmente a deliberação. Arquitetura de segurança, alterações de esquema do banco de dados e implantações irreversíveis a acionam de forma consistente.7
Como testo um sistema projetado para produzir discordância?
Teste tanto os caminhos de sucesso quanto os de falha. Sucesso: os agentes discordam de forma produtiva e chegam a um consenso. Falha: os 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 que ambos os gates de validação capturam todos os modos de falha documentados. Um sistema de deliberação em produção executa 141 testes em três camadas: 48 testes de integração Bash, 81 testes unitários de Python e 12 simulações de pipeline end-to-end.7
Qual é o impacto da deliberação na latência?
Uma deliberação com 3 agentes adiciona 30–60 segundos de tempo de relógio (este design de deliberação executa seus agentes sequencialmente pela Agent tool; a plataforma em si executa subagents simultaneamente em segundo plano desde a v2.1.198). Uma deliberação com 10 agentes adiciona 2–4 minutos. Os hooks de consenso e pride check são executados em menos de 200 ms cada. O principal gargalo é o tempo de inferência de LLM por agente, não a sobrecarga de orquestração.7
Qual deve ser o tamanho de um arquivo CLAUDE.md?
Mantenha cada seção com menos de 50 linhas e o arquivo inteiro com menos de 150 linhas. Arquivos longos são truncados pelas janelas de contexto, então coloque primeiro as instruções mais críticas: comandos e definições de encerramento antes das preferências de estilo.21
Isso pode funcionar com ferramentas além de Claude Code?
Os princípios arquiteturais (hooks como gates determinísticos, skills como especialização de domínio, subagents como contextos isolados, sistema de arquivos 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 a Agent tool de Claude Code. AGENTS.md leva os mesmos padrões ao Codex, Cursor, Copilot, Amp e Windsurf.21 O padrão de harness é independente de ferramenta, mesmo que os detalhes de implementação sejam específicos de cada 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.
Códigos de saída
| Código | Significado | Uso |
|---|---|---|
| 0 | Sucesso | Permitir a operação |
| 2 | Bloquear | Gates de segurança, gates de qualidade |
| 1 | Aviso não bloqueante | Logging, mensagens de orientação |
Comandos principais
| Comando | Finalidade |
|---|---|
/compact |
Comprimir o contexto, preservar decisões |
/context |
Ver a alocação de contexto e as skills ativas |
edit .claude/agents/ |
Gerenciar subagents — o assistente /agents foi removido na v2.1.198; crie ou edite definições diretamente, ou peça para Claude fazer isso |
/goal <condition> |
Manter Claude trabalhando para atender a uma condição de conclusão |
claude agents |
Abrir o Agent View para sessões em execução, bloqueadas e concluídas |
CLAUDE_CODE_WORKFLOWS=1 |
Histórico: habilitava a prévia da Workflow-tool da v2.1.147; workflows dinâmicos passaram a estar disponíveis por padrão via /workflows desde a v2.1.154 |
claude -c |
Continuar a sessão mais recente |
claude --print |
Invocação única de CLI (sem conversa) |
# <note> |
Adicionar uma nota ao arquivo de memória |
/memory |
Ver e gerenciar a memória automática |
Localizações de arquivos
| Caminho | Finalidade |
|---|---|
~/.claude/CLAUDE.md |
Instruções globais pessoais |
.claude/CLAUDE.md |
Instruções do projeto (compartilhadas pelo 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 pelo 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 |
Memória automática |
Changelog
| Data | Alteração | Fonte |
|---|---|---|
| 2026-08-18 | Fork de subagents incorporado (v2.1.232), além de uma varredura das diferenças das versões v2.1.233/234. A tabela de tipos de subagents ganhou fork: “herda toda a conversa até o momento em vez de começar do zero… um fork recebe o mesmo prompt do sistema, as mesmas ferramentas, o mesmo modelo e o mesmo histórico de mensagens que a sessão principal”, compartilhando o cache do prompt, embora suas chamadas de ferramentas continuem isoladas — ativado por padrão em sessões interativas desde a v2.1.232 e desativado em -p/SDK; a afirmação de que “subagents começam com um contexto limpo” agora inclui a exceção do fork. Outras diferenças incluídas, somente no changelog: a v2.1.233 desativa por padrão as ferramentas de tarefas (TaskCreate/Get/Update/List, TodoWrite) nos modelos da geração atual (CLAUDE_CODE_ENABLE_TODO_TOOLS=1 as reativa), o que também deixa os hooks TaskCreated/TaskCompleted inativos nas configurações padrão e, segundo a documentação de equipes de agentes, faz com que integrantes sem ferramentas de tarefas se coordenem “por mensagens, em vez da lista de tarefas compartilhada”; a v2.1.234 remove a configuração teammateDefaultModel (os integrantes usam o modelo do líder, a menos que o prompt de criação ou CLAUDE_CODE_SUBAGENT_MODEL especifique outro) e entrega notificações de tarefas em segundo plano entre turnos dentro de tags <system-reminder>. |
88 |
| 2026-08-12 | Primeira auditoria holística de gates — leitura completa do guia pelo evaluator; a R1 recebeu nota 8,83, com seis constatações MAJOR, todas corrigidas nesta linha. A classe de defeitos da família (cada linha de versão correta, sem jamais sobrescrever os estratos anteriores): a contagem de eventos de hooks indicava 30, mas a tabela omitia MessageDisplay — justamente o evento citado no corpo como um marco de estabilidade (agora são 31, com a linha adicionada); a tabela de tipos de subagents integrados ainda ensinava que o Explore usa Haiku, contradizendo a própria linha deste changelog sobre a v2.1.198 herdar o modelo da sessão; os custos de deliberation rotulados como “atuais” eram calculados com os preços antigos de US$ 15/US$ 75 do Opus 4.x — três vezes maiores que os US$ 5/US$ 25 do Opus 5 (valores recalculados, com os antigos registrados); xhigh ainda aparecia como “(somente Opus-4.7)” meses depois de a v2.1.154 disponibilizá-lo no Opus 4.8; a revisão stateless do MCP ainda estava “prevista para 28 de julho de 2026” duas semanas após ser lançada como a revisão atual da especificação (reescrita no passado, nota de rodapé verificada novamente); a seção Workflow ainda começava com a flag de ambiente desativada por padrão na v2.1.147, embora os workflows dinâmicos estejam disponíveis por padrão via /workflows desde a v2.1.154 (seção, TL;DR e linha da tabela de variáveis de ambiente reconciliados). Atualização de divergências: versões do SDK verificadas novamente em produção (Python 0.2.137, TS 0.3.229, datas das âncoras atualizadas); adicionada cobertura de sessões como pares (v2.1.224 SendMessage/ListAgents, runners auto-hospedados, ativação do modo automático por padrão em 14 de agosto, com a orientação para fixar defaultMode); Agent Plugins 1.0.0 registrado na convergência entre skills e plugins, com a ressalva da ausência de Anthropic; diagramas do Ralph atualizados para indicar contexto novo (agora os modelos têm 1M nativo); resposta da FAQ sobre latência limitada ao design de deliberation; meta description reduzida para 155 caracteres. O título foi mantido intencionalmente com 61 caracteres — um ativo de ranqueamento, um caractere acima da largura de exibição. |
86 87 89 |
| 2026-08-01 | Correção de conteúdo desatualizado: uma afirmação de versão “em julho de 2026” que o restante do guia já havia superado. O parágrafo sobre o SDK do Python afirmava que o pacote havia “avançado para a v0.2.111 no PyPI (incluindo o Claude CLI v2.1.202), e o SDK do TypeScript para a v0.3.203” — 17 versões atrasado em ambas as linhas, enquanto outras seções deste mesmo guia documentavam corretamente as versões 0.2.128 e 0.3.220. Agora informa v0.2.128 (com o CLI v2.1.220 incluído e o requisito mínimo de mcp elevado para >=1.23.0) e v0.3.220, com a data de uma verificação confirmada em vez de um mês em aberto. A nova 90 cita o PyPI, o npm e o changelog do SDK do Python. Nenhuma versão upstream foi lançada nesse período: Claude Code v2.1.220, Codex v0.146.0 estável (somente versões alfa da v0.147.0), FastAPI 0.141.1, XcodeBuildMCP 2.7.0, MCPVault 0.12.4, hermes-agent 0.19.0, Midjourney Version 8.2, Suno V5.5 e Apple 26.6 estável permaneceram inalterados. |
90 |
| 2026-07-29 | Correção de completude: três campos da v0.3.216 do SDK TS omitidos na entrada de 21 de julho. Uma nova análise do changelog de claude-agent-sdk-typescript em comparação com este guia constatou que faltavam três itens na lista de campos da v0.3.216: as respostas de rewindFiles incluem uma contagem opcional skippedLinks para os caminhos que as proteções de segurança do rewind se recusaram a restaurar ou excluir, e a mensagem de resultado bem-sucedido inclui user_message_uuid e request_sent_wall_ms opcionais para correlacionar a latência de solicitações entre hosts. Esses itens foram adicionados tanto à lista no corpo quanto à 75; nenhuma nova nota de rodapé. Todo o restante do intervalo entre a v0.3.215 e a v0.3.220 já estava coberto, inclusive o histórico do limite de profundidade de aninhamento de subagents (lançado em 5, reduzido para 1 na v2.1.217 e estabilizado em 3 na v2.1.219) e o limite de concorrência de 20 — a linha “limite de profundidade reduzido de 5 para 1” no changelog do SDK é um retrato desatualizado de um valor cuja evolução este guia já acompanha. A versão mais recente do Agent SDK no npm foi confirmada como 0.3.220 (24 de julho), e no PyPI como 0.2.128; nenhuma versão mais recente no período. |
75 |
| 2026-07-27 | Correção de renderização, sem alteração de conteúdo. O cabeçalho deste changelog declarava duas colunas, enquanto as linhas forneciam três, fazendo com que o python-markdown truncasse cada linha em Date e Change e descartasse silenciosamente a célula Source — levando consigo nove citações de notas de rodapé ([^83], [^84], [^85], [^103], [^105], [^107], [^108], [^110], [^111]). Como essas nove não eram citadas em nenhum outro lugar, cada uma era renderizada como uma entrada na lista de referências cuja seta de retorno apontava para uma âncora inexistente na página. O cabeçalho agora é Date \| Change \| Source, restaurando as nove. Verificação feita renderizando o guia com a própria configuração de markdown do site e comparando id="fn:N" com id="fnref:N": 77 referências ativas antes, 86 depois, nenhuma órfã. O mesmo defeito foi encontrado e corrigido nos guias de FastAPI + HTMX e do Obsidian nesta revisão; ios-agent-development contém uma lacuna de citações diferente e ainda não corrigida, registrada em seu próprio relatório. |
– |
| 2026-07-25 | Guia v1.27: Correção do padrão de profundidade de aninhamento (3, não 1), Claude Opus 5 e um quarto eixo de proteção. Correção — a profundidade de criação de subagents voltou para 3 (v2.1.219): “Agora, subagents podem criar subagents aninhados até a profundidade 3 por padrão (antes era 1); defina CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1 para desativar o aninhamento.” O padrão foi lançado como 5 (v2.1.172), reduzido para 1 (v2.1.217) e estabilizado em 3 (v2.1.219) — as duas últimas mudanças ocorreram em um intervalo de três dias. A subseção Recursion Guard não apresenta mais nenhum padrão como definitivo; agora, ela argumenta que a profundidade é um parâmetro instável da plataforma e deve ser definida explicitamente por meio de CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH, em vez de ser herdada. Correção complementar: --forward-subagent-text agora também encaminha subagents de profundidade 2 ou superior, identificados pelo id de tool_use do Agent que os criou — agrupe o texto encaminhado por esse id, em vez de presumir que cada linha vem de um filho direto. Hook DirectoryAdded (CC v2.1.219 + TS SDK v0.3.219): o primeiro novo evento de ciclo de vida desde MessageDisplay (v2.1.152), disparado após /add-dir ou quando a solicitação de controle register_repo_root do SDK registra um diretório de trabalho durante a sessão — as verificações iniciais do workspace (verificações de confiança, varreduras de segredos, regras com escopo de caminho e políticas específicas por repositório) precisam ser executadas novamente; a tabela de eventos agora tem 30 itens. sandbox.network.strictAllowlist (v2.1.219): bloqueia hosts que não estão na lista de permissões para comandos executados no sandbox sem solicitar confirmação — bloqueio determinístico de tráfego de saída, combinado com sandbox.filesystem.disabled da v2.1.216; adicionado à subseção de padrões de contenção para mostrar que a superfície de configurações está alcançando o princípio “primeiro, aplique a contenção na camada do ambiente”. A largura da orquestração é um quarto eixo de proteção (v2.1.219): workflows dinâmicos adotam por padrão uma recomendação de tamanho médio (“busque usar menos de 15 agentes”), configurável em qualquer arquivo de configurações pela nova chave workflowSizeGuideline (também presente nos tipos de configurações do TS SDK) e exibida na linha de status do workflow em execução — a estrutura de três eixos (quantidade de criações, profundidade e simultaneidade) agora tem quatro, e 15 finalmente está na mesma ordem de grandeza do orçamento de deliberação de 12 agentes deste guia, em vez de funcionar como um limite descontrolado. Claude Opus 5 (claude-opus-5, 24 de julho): o novo Opus padrão — contexto de 1M, US$ 5/US$ 25 por MTok (o mesmo preço do Opus 4.8), fast mode por US$ 10/US$ 50 com velocidade cerca de 2,5× maior; mais que dobra o desempenho do Opus 4.8 no Frontier-Bench v0.1 e fica a 0,5% da pontuação do Fable 5 no CursorBench 3.2 pela metade do custo. O padrão recomendado para agentes neste guia passa do Opus 4.8 para o Opus 5; o Opus 4.7 saiu do fast mode (/fast agora se aplica ao Opus 5 e ao Opus 4.8), e o fallback para Fable 5 do classificador do modo automático agora direciona para o Opus 5. Apenas no changelog: Py SDK v0.2.127 — tarefas em segundo plano ignoravam silenciosamente hooks PreToolUse: query() fechava o stdin no primeiro frame result enquanto subagents em segundo plano ainda estavam em execução, fazendo com que suas chamadas de ferramenta SDK-MCP falhassem com "Stream closed" e ignorassem o hook (#1103). É o segundo desvio da aplicação de hooks em um mês, após o abort→hook-success do TS v0.3.208; agora, o padrão é citado na ressalva sobre streaming de hooks do SDK — a aplicação de regras pelo SDK falha de forma permissiva nos limites do ciclo de vida e silenciosamente, pois um hook ignorado parece um hook que aprovou a ação. TS SDK v0.3.219: cancel_queued opcional na solicitação de controle de interrupção (capacidade interrupt_cancel_queued_v1); fast_mode_disabled_reason no resultado e na inicialização; a resposta de inicialização não informa mais o fast_mode_state do modelo usado na criação após uma troca. Diagnósticos do MCP no CC v2.1.219: mcp_server_errors no evento de inicialização stream-json headless; status HTTP e texto do erro em claude mcp list / /mcp quando há falha de conexão; aviso sobre espaços em branco ocultos nos valores de configuração do MCP. Escopo de managed settings: entradas ${VAR} da lista de permissões/bloqueios gerenciada do MCP agora são resolvidas com base no ambiente de inicialização e no ambiente de managed settings, em vez do ambiente do arquivo de configurações — uma mudança na ordem de resolução relevante para governança. Diversos: claude -p não descarta mais texto já produzido quando um turno falha durante o streaming; CLAUDE_CODE_GIT_BASH_PATH é ignorado com um aviso quando não aponta para um binário bash/sh; a skill claude-api incluída usa o Opus 5 como padrão. CC v2.1.220 / TS v0.3.220 / Py v0.2.128 (25 de julho): apenas correções de bugs e atualizações de paridade. MCP: nenhuma integração normativa; a especificação stateless continua prevista para 2026-07-28. |
84 85 91 |
| 2026-07-24 | Guia v1.26: Post de Anthropic sobre padrões de contenção incorporado + Claude Code v2.1.218. Adicionada a subseção “Três padrões de contenção entre produtos” às Considerações de segurança, com base no post de engenharia de Anthropic “Como contemos Claude entre produtos” (25 de maio de 2026): contêineres gVisor efêmeros no lado do servidor (claude.ai), sandboxing do sistema operacional com participação humana (Claude Code: Seatbelt/bubblewrap e o sandbox-runtime de código aberto) e VMs seladas em hipervisores da plataforma (Claude Cowork: framework Apple Virtualization / Windows HCS, com credenciais no chaveiro do host e tokens de sessão revogáveis e com escopo, impostos por um proxy MITM defensivo dentro da VM) — além dos princípios de design de harness articulados no post: contenção primeiro na camada do ambiente, isolamento compatível com a capacidade de supervisão do usuário, componentes testados em produção em vez de código de isolamento personalizado, configurações locais do projeto e saídas de ferramentas tratadas como entradas não confiáveis e credenciais fora do sandbox. Apenas no changelog: CC v2.1.218 (22 de julho) — o classificador do modo automático avalia as verificações de rm perigoso, & em segundo plano e caminhos suspeitos do Windows, em vez de abrir caixas de diálogo de permissão; no modo de planejamento com o modo automático, comandos Bash que o analisador estático não consegue comprovar como somente leitura são encaminhados ao classificador; hooks no frontmatter de agentes exigem que a própria pasta do arquivo do agente tenha a confiança do workspace aceita; skills com context: fork são executadas em segundo plano por padrão (background: false desativa esse comportamento); /code-review é executado como um subagent em segundo plano; /deep-research não invoca mais a si próprio; a linhagem das sessões bifurcadas é preservada após a compactação em sessões headless/SDK; o envio para segundo plano com Ctrl+B respeita os limites de shells em segundo plano. TS SDK v0.3.218 (22 de julho): flag SkillToolOutput.background; api_error_status informa erros 429/529 durante o streaming; canonicalModel + provider em modelUsage. Py SDK v0.2.126 (22 de julho): ResultMessage.terminal_reason; model_usage tipado com canonicalModel/provider; inclui CLI v2.1.218. MCP: nenhuma integração normativa; a especificação stateless continua prevista para 2026-07-28. |
81 82 83 |
| 2026-07-22 | Guia v1.25: Claude Code v2.1.217 — recuo nos subagents recursivos + limite de simultaneidade. Criação aninhada desativada por padrão: subagents não criam mais seus próprios subagents — o padrão de recursão com cinco níveis da v2.1.172 permaneceu até a v2.1.216; agora, aninhamento mais profundo exige ativação explícita por meio de CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH (subseção Recursion Guard reescrita). Limite de simultaneidade: o número de subagents executados simultaneamente foi limitado a 20 por padrão (CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS), para que uma única mensagem não possa distribuir trabalho para uma quantidade ilimitada de agentes em segundo plano. O conjunto oficial de proteções agora cobre os três eixos monitorados pelo limite de criação em userland: total de criações por sessão (v2.1.212, limite de 200), profundidade de aninhamento (v2.1.217, um nível por padrão) e largura simultânea (v2.1.217, padrão de 20). Apenas no changelog: no CC v2.1.217, --max-budget-usd agora realmente interrompe subagents em segundo plano (quando o limite é atingido, novas criações são negadas e agentes em segundo plano que estiverem em execução são interrompidos); o isolamento de sessões em segundo plano canonicaliza diretórios de trabalho referenciados por links simbólicos. Py SDK v0.2.125 inclui CLI v2.1.217 sem mudanças na superfície do SDK; TS SDK v0.3.217 é lançado em conjunto. PR #3092 do MCP (integrado em 21 de julho): correção normativa que alinha os códigos de erro da SEP-2575 ao esquema renumerado do rascunho e ao conjunto de testes de conformidade — a preparação para o lançamento de 28 de julho continua. |
78 79 80 |
| 2026-07-21 | Guia v1.24: reforço do escopo de caminhos + aplicação de worktrees no Claude Code v2.1.214–v2.1.216, multi-agent V2 + importação entre harnesses no Codex v0.145.0. Regras com escopo de caminho são ancoradas ao cwd (v2.1.214): regras de permissão de segmento único dir/** (por exemplo, Edit(src/**)) aprovavam automaticamente gravações em qualquer dir/ aninhado em qualquer parte da árvore — agora são ancoradas apenas em <cwd>/dir; condições if: de hooks com dir/** de segmento único também passam a se aplicar somente ao cwd (use **/dir/** para qualquer profundidade); regras de negação/solicitação mantêm deliberadamente a correspondência em qualquer profundidade (proteção assimétrica: permissões falham de forma segura exibindo uma solicitação, enquanto negações não podem falhar permitindo a ação). O isolamento de worktrees agora tem aplicação rigorosa (v2.1.216): subagents em worktrees podiam redirecionar o git para o checkout compartilhado por meio de git -C, --git-dir ou GIT_DIR/GIT_WORK_TREE — brecha fechada; sessões de worktree não são mais abertas em uma worktree residual de outro projeto; gravações de workflows/tarefas agendadas não seguem mais um link simbólico plantado em .claude; /rewind recusa links simbólicos/hard links. Reversão da ativação automática de skills (v2.1.215): Claude não invoca mais por conta própria as skills /verify e /code-review incluídas — agora elas exigem invocação explícita. Codex v0.145.0: multi-agent V2 opcional estabilizado (modelos de sub-agent, níveis de raciocínio e concorrência configuráveis, além da restauração de funções); /import agora migra configurações do Claude Code e do Cursor, servidores MCP, plugins, sessões, comandos e memórias com escopo de projeto — uma migração completa entre harnesses que amplia a v0.140.0. Apenas no changelog: ferramenta EndConversation do CC v2.1.214; lote de reforços fail-closed para Bash/PowerShell (redirecionamentos de descritores de arquivo falham de forma fechada, comandos com mais de 10.000 caracteres sempre solicitam confirmação, subscritos do zsh solicitam confirmação, permissão automática de help/man removida, flags de redirecionamento do daemon do docker/Podman solicitam confirmação, file -m/-f exige permissão, correção de bypass no PowerShell 5.1); saída 2 do hook bloqueia mesmo quando o JSON de stdout não passa na validação de schema; o frontmatter da memória recebe o timestamp ISO modified, sem truncamento silencioso em # inline; OTel message.uuid/client_request_id/tool_source + CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH. CC v2.1.216 sandbox.filesystem.disabled (controle de saída da rede sem isolamento do sistema de arquivos); sessões retomadas de agentes em segundo plano restauram as restrições de prompt/ferramentas do agente; alterações em skills/comandos durante a sessão aparecem no menu de barra sem reinicialização. TS SDK v0.3.214/v0.3.216: set_permission_mode rejeita modos desconhecidos; aborted: true em mensagens truncadas por interrupção; tool_progress subagent_type/subagent_retry; subtipo de notificação de tarefa scheduled-trigger; origem "fork" de SessionStart; sidecar tool_result_meta (non_execution_kind, user_feedback); rewindFiles informa skippedLinks para caminhos que as proteções de segurança de rewind se recusaram a restaurar ou excluir; resultados bem-sucedidos incluem user_message_uuid e request_sent_wall_ms para correlacionar a latência de solicitações entre hosts. Py SDK v0.2.124: correção da classe BatBadBut no Windows (recusa a execução de .bat/.cmd; metacaracteres de cmd.exe em resume/session_id geram ValueError; extra_args iniciados por hífen são vinculados como --flag=value). Reforços do Codex v0.145.0: timeouts de inicialização do MCP, atualizações de OAuth serializadas, descoberta não bloqueante de OAuth, detecção mais robusta de rm forçado, preservação dos motivos de rejeição, histórico paginado experimental de threads. Preparação da versão de 2026-07-28 do MCP (PRs de documentação nº 3064/3066/3098, incorporados em 21 de julho): especificação finalizada para apresentar Tasks como uma extensão opcional io.modelcontextprotocol/tasks; HTTP+SSE preterido em favor de Streamable HTTP. |
74 75 76 77 |
| 2026-07-17 | Guia v1.23: proteções contra loops descontrolados + reforço contra injeção no Claude Code v2.1.203–v2.1.212, superfícies de protocolo do TS SDK, rascunho de identidade stateless do MCP, paridade entre Codex/OpenAI. Proteções nativas contra loops descontrolados (v2.1.212): limite de criação de subagents por sessão (padrão de 200, CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION, redefinido por /clear) e limite de WebSearch (200, CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION) — o padrão de orçamento de criação no espaço do usuário agora conta com uma proteção nativa; o parâmetro mode da ferramenta Task foi preterido (subagents herdam o modo de permissão da sessão principal); /fork agora cria uma nova sessão em segundo plano (a variante dentro da sessão foi renomeada para /subtask); chamadas do MCP com mais de 2 minutos passam automaticamente para segundo plano (CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS). Precedência entre hook e modo automático (v2.1.211): ask de PreToolUse estabelece uma solicitação como decisão mínima (o modo automático não pode substituí-la no Bash sem sandbox); --forward-subagent-text / CLAUDE_CODE_FORWARD_SUBAGENT_TEXT para stream-json; regras de “sempre permitir” persistem na raiz do repositório entre worktrees; prévias de permissão neutralizam falsificações com caracteres bidirecionais, de largura zero ou visualmente semelhantes. v2.1.210: corrigida a modificação do checkout principal por subagents com isolamento de worktree; Agent tool reforçada contra injeção indireta proveniente de conteúdo lido por subagents; o classificador do modo automático usa Sonnet 5 por padrão, fixado por sessão; gravações acima do limite em MEMORY.md geram erro em vez de truncamento silencioso. v2.1.207/v2.1.208: modo automático disponível de forma geral no Bedrock/Vertex/Foundry (desative com disableAutoMode); solicitações de confirmação para remoções catastróficas se sobrepõem a --dangerously-skip-permissions e ao modo automático; launcher corporativo CLAUDE_CODE_PROCESS_WRAPPER; rodadas de ferramentas até 7× mais rápidas com altas contagens de ferramentas do MCP, transcrições 79× menores. v2.1.203–v2.1.206: medidas contra fabricação de informações (adulteração do arquivo de transcrição bloqueada; notificações de tarefas em segundo plano declaram explicitamente que não houve intervenção humana); roots/list do MCP inclui diretórios de trabalho adicionais com roots/list_changed; /doctor sugere reduzir o conteúdo de CLAUDE.md que pode ser derivado da base de código. TS SDK v0.3.205–v0.3.208: recibos tipados de interrupção (still_queued, interrupt_receipt_v1), frames command_lifecycle, AgentToolCompletedOutput, canUseTool {behavior:'allow'} sem updatedInput; correção de segurança na v0.3.208 — a interrupção pelo chamador durante um hook pendente era convertida em sucesso do hook, permitindo que ferramentas protegidas por PreToolUse fossem executadas após a interrupção. Rascunho da especificação do MCP (PR nº 3002, incorporado em 16 de julho): _meta opcional e autodeclarado na resposta de io.modelcontextprotocol/serverInfo + clientInfo opcional — apenas para exibição/logs, NÃO DEVE orientar decisões de segurança; a especificação stateless final será lançada em 2026-07-28. Codex: v0.143.0 disponibiliza ferramentas do MCP por meio da pesquisa de ferramentas por padrão (carregamento adiado de ferramentas); v0.144.0 adiciona modo de aprovação de apps writes + autenticação interativa do MCP disponível de forma geral; v0.144.5 amplia a detecção de comandos perigosos. Beta multi-agent hospedado da OpenAI: openai-agents-python v0.18.2 (11 de julho) + openai-agents-js v0.13.2 (10 de julho). Apenas no changelog: correções de injeção de flags argv no SDK (TS 0.3.212 / Py 0.2.121 — valores de resume/session_id iniciados por hífen agora são passados no formato com sinal de igual); BashToolOutput.timedOutAfterMs; SDKAssistantMessage.timestamp; correção do streaming de SessionStart headless no CC v2.1.204; padrões GPT-5.6 do openai-agents; orientação do MCP para rejeitar e tentar novamente Mcp-Param-*. |
68 69 70 71 72 73 |
| 2026-07-07 | Guia v1.22: Claude Code v2.1.196–v2.1.202. Sonnet 5 é o modelo padrão distribuído (v2.1.197) — a observação sobre níveis de modelo foi reformulada (este guia ainda recomenda o Opus 4.8 como padrão agentic para harnesses autônomos). Subagents são executados em segundo plano por padrão (v2.1.198): o campo background agora fixa o comportamento em vez de ativá-lo; o agente Explore herda o modelo da sessão (limitado ao Opus); subagents e compactação herdam a configuração de raciocínio estendido; sessões claude agents em segundo plano fazem commit/push automaticamente, abrem um PR em rascunho e disparam o hook Notification com agent_needs_input/agent_completed; o assistente /agents foi removido (edite .claude/agents/ diretamente). v2.1.199: hooks SessionStart/Setup/SubagentStart exibem stderr quando o código de saída é 2; a detecção de encaminhamento incorreto por reutilização de nome em SendMessage foi adicionada à observação sobre autoridade entre sessões; slash-skills empilhadas carregam até 5. v2.1.200: o modo de permissão default é identificado como “Manual” (alias manual) na lista permissionMode de subagents. v2.1.196: modelos padrão para toda a organização foram registrados na seção de governança; autoaprovação do MCP bloqueada. Versões atuais do SDK: claude-agent-sdk v0.2.111 (Python, inclui CLI v2.1.202) / @anthropic-ai/claude-agent-sdk v0.3.203 (TS), com atualizações incrementais sobre a superfície 0.1.x documentada. |
67 |
| 2026-07-02 | Guia v1.21: atualizações na governança de matchers de hooks + classificadores. Claude Code v2.1.195: matchers de identificadores com hífen fazem correspondência exata em vez de correspondência por substring (consulte Arquitetura de hooks — semântica dos matchers). Claude Code v2.1.193: autoMode.classifyAllShell encaminha todo o shell pelo classificador do modo automático, com os motivos de negação exibidos na transcrição/notificação//permissions (consulte Considerações de segurança). Codex v0.142.2: regiões de AST não inspecionáveis no PowerShell agora exigem aprovação. Todos os itens foram verificados nos changelogs canônicos durante este ciclo de atualização. |
66 |
| 2026-06-20 | Guia v1.20: Claude Code v2.1.183 + Codex v0.141.0 — governança e segurança de execução remota. Adicionadas às Considerações de segurança as proteções contra comandos destrutivos no auto mode (o CC v2.1.183 bloqueia terminantemente git reset --hard/checkout -- ./clean -fd/stash drop, git commit --amend em commits que não sejam do agente e terraform/pulumi/cdk destroy sem uma stack nomeada, a menos que você tenha solicitado), apresentadas como o complemento no nível da intenção às regras no nível dos parâmetros e à verificação de criação; e os executores remotos com relay Noise criptografado (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. |
65 |
| 2026-06-16 | Guia v1.19: Primitivas de governança + definição de escopo do Claude Code v2.1.173–v2.1.179, além da importação entre ferramentas do Codex v0.140.0. A versão v2.1.178 foi incorporada ao conteúdo: regras de permissão no nível dos parâmetros Tool(param:value) com o curinga * (por exemplo, Agent(model:opus) para bloquear uma categoria de modelo), além da configuração gerenciada enforceAvailableModels (v2.1.175), ambas em Segurança → Limites de permissão; o auto mode agora verifica a criação de subagents antes de iniciá-los, eliminando a brecha que permitia usar a criação como forma de contornar restrições (Padrões de subagents); carregamento de .claude/skills aninhados + resolução pela definição mais próxima para skills/agentes/workflows/estilos de saída em árvores .claude/ aninhadas (Sistema de skills); e a correção da correspondência de especificações de servidor MCP em disallowedTools (Campos de configuração de subagents). Adicionadas à nota de paridade do Codex a portabilidade entre ferramentas com /import e a exclusão permanente de sessões (v0.140.0). |
63 64 |
| 2026-06-10 | Guia v1.18: Subagents recursivos (Claude Code v2.1.172). Adicionada uma observação à subseção Proteção contra recursão: agora, os subagents do Claude Code podem criar seus próprios subagents, com até 5 níveis de profundidade — antes, a delegação era limitada, na prática, a um único nível (v2.1.172, 10 de junho). O padrão de orçamento de criação/limite de profundidade na camada do usuário foi reformulado como o controle que impede uma árvore de 5 níveis de se expandir excessivamente, tratando os 5 níveis como um limite máximo da plataforma, não como padrão. | 62 |
| 2026-06-09 | Guia v1.17: Claude Code v2.1.169–v2.1.170 + Codex v0.138.0–v0.139.0: governança e reforço do multi-agent v2. Cinco mudanças verificadas na arquitetura do harness foram incorporadas ao conteúdo. O Sistema de skills ganhou a subseção “Ocultando a superfície incluída como governança”: a configuração disableBundledSkills (e a variável de ambiente CLAUDE_CODE_DISABLE_BUNDLED_SKILLS) oculta do modelo skills, workflows e comandos de barra integrados 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 personalizações desativadas — CLAUDE.md, plugins, skills, hooks, MCP — para solução de problemas em ambiente isolado e governança (v2.1.169), além de uma observação sobre a categoria do modelo: o Claude Fable 5 (claude-fable-5) da Anthropic foi lançado em 9 de junho como uma categoria da classe Mythos acima do Opus, selecionável por meio de /model claude-fable-5 na v2.1.170, enquanto o Opus 4.8 continua sendo o padrão agêntico 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 invalidar o cache de prompts durante a sessão. Orquestração multi-agent / Paridade do Codex recebeu reforços para produção: close_agent foi renomeado para interrupt_agent (v0.139.0), payloads de mensagens entre agentes criptografados, um catálogo v2 de configurações de agentes, LRU de residência de agentes e concorrência contabilizada pela execução ativa (v0.138.0), descoberta de AGENTS.md encaminhada pelos sistemas de arquivos dos ambientes, preservando os caminhos lógicos, para selecionar corretamente os arquivos em workspaces remotos/com links simbólicos (v0.138.0/v0.139.0), e avisos de inicialização de MCP de subagents restritos à thread proprietária, em vez de serem duplicados na thread pai (v0.139.0). |
60 61 |
| 2026-06-08 | Guia v1.16: Padrões de arquitetura de agentes de junho do Claude Code v2.1.162–v2.1.166 + Codex v0.137.0. Adicionada a subseção “Direcionamento por Stop hooks, autoridade entre sessões e multi-agent v2”, abrangendo quatro mudanças relevantes para o harness: (1) os hooks Stop/SubagentStop podem retornar hookSpecificOutput.additionalContext para injetar feedback do tipo “ainda não terminou, e este é o motivo” e continuar o turno sem um bloco de erro do hook (v2.1.163); (2) o envio de mensagens entre sessões foi reforçado para que mensagens de outra sessão retransmitidas por SendMessage não carreguem mais a autoridade do usuário de origem — trate mensagens recebidas de outros agentes como dados não confiáveis (v2.1.166); (3) a configuração fallbackModel encadeia até três modelos de backup, com uma única nova tentativa usando fallback em caso de erros API não recuperáveis, e claude agents --json adiciona um campo waitingFor para observabilidade da frota (v2.1.162/166); (4) o multi-agent v2 do Codex (v0.137.0) mantém o runtime em cada thread, define hide_spawn_agent_metadata como true por padrão, propaga eventos do pai para listeners filhos e adiciona uma extensão v1 de skills com resolução de catálogo a cada turno e eventos de colaboradores do ciclo de vida no início da thread/erro do turno. Nenhuma mudança na especificação do AGENTS.md (continua sob a administração da Agentic-AI-Foundation, sem changelog versionado). |
59 |
| 2026-05-31 | Guia v1.15: Claude Code v2.1.157 + patches do Hermes v0.15.1/v0.15.2. Adicionada a subseção “Convergência de plugins e skills em .claude/skills/“: o Claude Code v2.1.157 faz com que qualquer pasta no diretório .claude/skills/ de um projeto seja carregada automaticamente como plugin sem registro no marketplace, e claude plugin init <name> cria ali a estrutura inicial de um novo plugin com manifest + SKILL.md. A implicação para o harness é concreta — ferramentas de projeto com escopo reduzido não precisam mais arcar com a sobrecarga de um manifest para permanecer no controle de versão; os plugins continuam responsáveis pelo formato ZIP agrupado e instalável. A mesma versão inclui EnterWorktree para alternar, durante a 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 sem problemas. O Hermes Agent v0.15.1 (29 de maio) é o hotfix do Velocity lançado no mesmo dia: correção do loop de recarregamento com erro 401 no dashboard em modo loopback, o Docker agora exige HERMES_DASHBOARD_INSECURE=1 explicitamente, comandos simples do MCP (npx, npm, node) são resolvidos no Docker, a página Skills foi restaurada, workers do Kanban respondem corretamente ao SIGTERM e o catálogo do Skills.sh cresceu de 858 → 19.932 entradas por meio do sitemap. O Hermes v0.15.2 (29 de maio) é um hotfix exclusivo de empacotamento que inclui manifests plugin.yaml nas distribuições wheel e sdist. |
58 |
| 2026-05-28 | Guia v1.14: Claude Code v2.1.152-v2.1.154 + Codex v0.134.0-v0.135.0 + revisão de padrões de arquitetura do Hermes v0.15.0. O Claude Code alterou os padrões e adicionou primitivas de orquestração: o Opus 4.8 agora é o padrão, com esforço alto por padrão e um novo /effort xhigh; dynamic workflows orquestram de dezenas a centenas de agentes em segundo plano via /workflows; o prompt de sistema enxuto agora é o 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 o texto do assistente conforme ele é exibido; disallowed-tools no frontmatter de skills/comandos remove ferramentas enquanto a skill está ativa; /reload-skills verifica novamente os diretórios de skills sem reiniciar; hooks SessionStart podem retornar reloadSkills: true e definir hookSpecificOutput.sessionTitle; --fallback-model troca de modelo no meio da sessão quando o principal não está disponível; o modo automático não exige mais consentimento prévio; a configuração gerenciada pluginSuggestionMarketplaces cria uma lista de marketplaces da organização permitidos para sugestões sensíveis ao contexto; claude agents aceita sessões de shell em segundo plano com ! <command>; plugins podem declarar defaultEnabled: false; o ambiente de subprocessos stdio do MCP agora inclui CLAUDE_CODE_SESSION_ID e CLAUDECODE=1. O Codex v0.134.0 tornou --profile o seletor principal de perfil em fluxos do CLI, de permissões da TUI e de sandbox (configurações legadas são rejeitadas com orientações de migração), adicionou pesquisa no histórico local de conversas, melhorou a configuração do MCP com direcionamento de ambiente por servidor e OAuth para servidores HTTP com streaming e permitiu que ferramentas MCP somente leitura fossem executadas simultaneamente quando anunciam readOnlyHint; a v0.135.0 adicionou diagnósticos mais completos ao codex doctor, detalhes remotos em /status, edição de objetos de texto no vim, perfis de permissão nomeados em /permissions e predefinições de Sandbox no Python SDK. O Hermes Agent v0.15.0 (28 de maio) traz a versão Velocity: run_agent.py refatorado em 76% ao longo de 14 módulos, Kanban multiagente v2 com decomposição automática e topologia de swarm, Bitwarden Secrets Manager substituindo chaves individuais de cada provedor por um único token de inicialização, defesa contra Promptware para injeções de prompt da classe Brainworm em três pontos críticos de segurança, pacotes de skills, um orquestrador de sessões na TUI para gerenciar várias sessões em um único terminal e um session_search 4.500 vezes mais rápido, com a dependência LLM removida. Implicações para a arquitetura do harness: o padrão de perfis nomeados (--profile do Codex, pluginSuggestionMarketplaces do Claude Code) está se tornando a primitiva de configuração padrão para runtimes de agentes multi-tenant; ferramentas MCP somente leitura simultâneas (readOnlyHint do Codex) são o padrão adequado para distribuir buscas de contexto que não alteram dados; o hook MessageDisplay oferece aos operadores uma superfície de transformação de primeira classe que não era acessível por PostToolUse nem por Stop; e o padrão de prompt de sistema enxuto elimina a antiga necessidade de escolher entre o contexto definido pelo operador e a estrutura fornecida pelo provedor. |
55 56 57 |
| 2026-05-24 | Guia v1.13: revisão de segurança e atualidade do Claude Code v2.1.150 + OpenAI Agents SDK v0.17.3. O comando local claude --version retornou 2.1.144 (Claude Code), enquanto a versão mais recente do npm para @anthropic-ai/claude-code retornou 2.1.150 e a versão mais recente do GitHub retornou v2.1.150. Foram adicionadas orientações de harness da v2.1.149 para correções de desvio de permissões no PowerShell, correções na análise de permissões para regras de permissão e variáveis obsoletas do PowerShell e a correção da lista de permissões de gravação do sandbox em git worktrees; também foi observado que a v2.1.150 contém apenas infraestrutura interna, sem mudanças anunciadas para os usuários. A versão mais recente no PyPI para openai-agents retornou 0.17.3, portanto a seção sobre sandbox da OpenAI agora menciona o reforço adicional das versões 0.17.1-0.17.3 para extração de arquivos compactados, subcaminhos de GitRepo, credenciais de sandbox, raízes relativas do workspace e tratamento de estados terminais do provedor.5354 |
|
| 2026-05-21 | Guia v1.12: revisão do Workflow do Claude Code v2.1.147. O comando local claude --version retornou 2.1.144 (Claude Code), enquanto a versão mais recente do npm para @anthropic-ai/claude-code retornou 2.1.147. Foi adicionada a ferramenta Workflow, desativada por padrão, como uma primitiva própria e determinística de orquestração multiagente, além de esclarecer que hooks, testes, gates de revisão, limites de geração e relatórios de evidências continuam sendo a fronteira de correção.52 |
|
| 2026-05-15 | Guia v1.11: revisão de sessões em segundo plano e confiabilidade de plugins do Claude Code v2.1.142. O comando local claude --version retornou 2.1.141 (Claude Code), enquanto a versão mais recente do npm para @anthropic-ai/claude-code retornou 2.1.142. Foram adicionadas orientações para operadores sobre as novas flags de despacho do claude agents, o padrão do modo Fast do Opus 4.7, a descoberta do SKILL.md de plugins no nível raiz, a visibilidade do LSP de plugins, o comportamento remoto HTTP/SSE de MCP_TOOL_TIMEOUT e correções de confiabilidade para sessões em segundo plano, daemons e cache de plugins.51 |
|
| 2026-05-14 | Guia v1.10: revisão de sinalização para operadores e definição de escopo do Claude Code v2.1.141. O comando local claude --version retornou 2.1.141 (Claude Code) e a versão mais recente do npm para @anthropic-ai/claude-code retornou 2.1.141. Foram adicionadas orientações sobre hooks para usar terminalSequence como sinalização para operadores, não como mecanismo de imposição; foi mencionado claude agents --cwd <path> para o Agent View com escopo de diretório; e foi documentado o impacto arquitetural de CLAUDE_CODE_PLUGIN_PREFER_HTTPS e ANTHROPIC_WORKSPACE_ID na instalação de plugins e na definição de escopo da federação de identidade de cargas de trabalho.50 |
|
| 2026-05-13 | Guia v1.9: revisão de confiabilidade do Claude Code v2.1.140. O comando local claude --version retornou 2.1.140 (Claude Code). Foi adicionado subagent_type às orientações sobre hooks de agentes, e a seção de governança de hooks foi atualizada com as correções da v2.1.140 para ConfigChange, disableAllHooks, allowManagedHooksOnly, exibição de variáveis de ambiente na caixa de diálogo de permissões, redefinição do estilo personalizado após sincronizar as configurações, fallback para pacote nativo do Windows Git Bash e comportamento de /scroll-speed.49 |
|
| 2026-05-11 | Guia v1.8: revisão de atualidade do Claude Code v2.1.139 + análise focada em segurança e memória de agentes. O comando local claude --version foi verificado como 2.1.139, e foram adicionadas as mudanças operacionais da v2.1.139: Agent View via claude agents, loops de conclusão de /goal, args em hooks de comandos, continueOnBlock de PostToolUse, CLAUDE_PROJECT_DIR do MCP e correção do tempo ativo do OpenTelemetry.424344 Foi adicionado um alerta sobre curadoria de memória baseado no preprint do arXiv “The Memory Curse”, orientações sobre autoridade humana para merge baseadas no preprint do arXiv sobre o ciclo de vida de PRs e orientações de segurança sobre logs de agentes e guardrails baseadas nos avisos Gryph Agents e LiteLLM.45464748 Foi corrigida a linha desatualizada sobre orçamento de tokens de Skills vs Hooks vs Subagents, de 2% para o orçamento atual de 1% / 8.000 caracteres para descrições de skills. |
|
| 2026-05-09 | Guia v1.7: acompanhamento do 3º dia sobre o Claude Code v2.1.136 + openai-agents-python v0.17.0. Foi adicionada à Arquitetura de Hooks uma subseção sobre autoMode.hard_deny e as correções de hooks/plugins da v2.1.136, abordando o novo nível de bloqueio incondicional, a correção do desaparecimento do MCP após /clear no VS Code/JetBrains/Agent SDK, a perda do token de atualização do OAuth do MCP durante atualizações simultâneas, a correção do bloqueio de gravação no modo de planejamento quando uma regra de permissão Edit(...) correspondia, a condição de corrida na limpeza do cache de plugins para Stop/UserPromptSubmit, a ocultação do diretório padrão skills/ por uma entrada skills e variáveis de ambiente do hook SessionStart em CLAUDE_ENV_FILE que ficavam obsoletas após /resume//clear.40 Foi adicionada aos Padrões de Produção uma subseção sobre a Pesquisa de Feedback do OTel, abordando CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL.40 A subseção O Sandbox foi ampliada com o bloqueio do openai-agents-python v0.17.0: LocalFile.src / LocalDir.src restritos ao interior de base_dir, salvo quando autorizados por Manifest.extra_path_grants com SandboxPathGrant.41 Foi adicionada uma observação sobre o modelo padrão do RealtimeAgent (gpt-realtime-2) à seção Harnesses Gerenciados vs. Auto-hospedados.41 Apenas no 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 (pacote do CLI v2.1.136), v0.1.79 (pacote do CLI v2.1.137), v0.1.80 (pacote do CLI v2.1.138). |
|
| 2026-05-08 | Guia v1.6: acompanhamento do 2º dia sobre o Claude Code v2.1.132/v2.1.133 + SDK v0.1.77. Foi adicionada ao Sistema de Skills uma subseção sobre a Superfície de Skills do SDK, abordando a opção skills em ClaudeAgentOptions e a descontinuação de "Skill" em allowed_tools.37 Foi adicionada à Arquitetura de Hooks uma subseção sobre Esforço e Proveniência de Sessão, abordando o novo campo JSON effort.level + a variável de ambiente $CLAUDE_EFFORT na entrada de hooks e a variável de ambiente CLAUDE_CODE_SESSION_ID em subprocessos Bash.3839 Foi adicionada à tabela de Campos de Configuração de Subagents a correção da descoberta de skills por subagents (agora, subagents descobrem skills de projeto, usuário e plugins por meio da ferramenta Skill; antes da v2.1.133, elas eram descartadas silenciosamente).39 Foi adicionada aos Padrões de Produção uma subseção sobre Base do Worktree, Caminhos do Sandbox e Configurações Administrativas, abordando worktree.baseRef (reversão da mudança do padrão incompatível, retornando de HEAD local para origin/<default>), sandbox.bwrapPath, sandbox.socatPath e parentSettingsBehavior.39 |
|
| 2026-05-07 | Guia v1.5: Claude Managed Agents, expansão de 6 de maio em SF. Adicionada a Estratégia 5 (Curadoria de memória gerenciada: Dreaming, Research Preview) a Memória e contexto, com uma tabela que contrasta filesystem-as-memory e Dreaming.35 Adicionados Managed Multiagent Orchestration (Public Beta) e Outcomes (Public Beta) no início de Orquestração multiagente, com citações literais da Anthropic sobre especialistas com sistema de arquivos compartilhado e rastreamento no Claude Console, além de uma tabela comparativa com a deliberação auto-hospedada. Adicionada uma subseção sobre streaming de eventos de hooks no lado do SDK, abrangendo include_hook_events e HookEventMessage do claude-agent-sdk-python v0.1.74.36 Apenas no changelog: Claude Code v2.1.124-v2.1.131 (claude project purge, --dangerously-skip-permissions para pastas de projeto, skill_activated invocation_trigger, correção do format-on-save em PostToolUse, correção do bloqueio com JSON+exit-2 em PreToolUse, configurações de 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 a v0.16.0 (7 de maio) adotando gpt-5.4-mini como padrão, removendo o limite implícito de max_turns e adicionando concorrência na execução de ferramentas no lado do SDK. |
|
| 2026-05-07 | Guia v1.4: Atualizados os mecanismos de hooks e skills do Claude Code de acordo com a documentação oficial atual e evidências do runtime local (claude --version 2.1.132, codex --version retornou codex-cli 0.128.0). A superfície de hooks passou de 22/26+ para 29 eventos documentados, o orçamento das descrições de skills foi corrigido de 2%/16.000 para 1%/8.000, a contagem de tipos de hooks passou de quatro para cinco com mcp_tool, a afirmação sem suporte de um limite fixo de “10 subagents paralelos” foi removida e foi adicionada uma seção de paridade com o Codex segura para publicação, abrangendo AGENTS.md, skills, hooks, plugins e fluxos de trabalho explícitos com subagents. |
|
| 2026-04-29 | Guia v1.3: Ampliada a cobertura do OpenAI Agents SDK na seção Harnesses gerenciados versus auto-hospedados, incluindo a superfície nomeada do SDK presente na v0.14.0 (15 de abril) do Python openai-agents — SandboxAgent, Manifest, SandboxRunConfig, memória de sandbox com divulgação progressiva, montagens de workspace (S3/R2/GCS/Azure), snapshots portáteis e backends de cliente local/Docker/hospedado (Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, Vercel). A citação secundária da Help Net Security foi substituída pela citação primária das notas de versão da v0.14.0. Adicionada uma breve observação sobre o claude-agent-sdk-python v0.1.69-v0.1.71 (28-29 de abril) como a terceira opção auto-hospedada (incorporar o runtime do Claude Code como uma biblioteca Python): o CLI integrado da Claude foi atualizado para a v2.1.123, o requisito mínimo da dependência mcp foi elevado para >=1.19.0 (versões anteriores descartavam silenciosamente CallToolResult das ferramentas MCP em processo), correção do cancelamento de nursery do Trio e paridade dos campos da lista de permissões de SandboxNetworkConfig com o SDK TS. Os refinamentos do SDK nas versões v0.14.7-v0.14.8 estão documentados em [^58]. |
|
| 2026-04-25 | Guia v1.2: Google Cloud Next 2026 (22-24 de abril) — Vertex AI passou a se chamar Gemini Enterprise Agent Platform; Agentspace foi incorporado ao Gemini Enterprise unificado; Workspace Studio (construtor de agentes no-code); mais de 200 modelos no Model Garden, incluindo Anthropic Claude; agentes parceiros da Box, Workday, Salesforce e ServiceNow; ADK v1.0 estável em quatro linguagens; Project Mariner (agente de navegação na web); servidores MCP gerenciados, com Apigee como ponte entre API e agentes; protocolo A2A v1.0 em produção em 150 organizações. Microsoft Agent Framework 1.0 (abril de 2026): APIs estáveis, compromisso de LTS, suporte completo a MCP, .NET + Python. A DevUI no navegador, que visualiza a execução de agentes e as chamadas de ferramentas em tempo real, é disponibilizada como preview junto à superfície estável da versão 1.0. Salesforce Headless 360 (15 de abril, TDX): todos os recursos da Salesforce (CRM, atendimento, marketing, ecommerce) expostos como comando API/ferramenta MCP/CLI, para que agentes como Claude Code, Cursor e Codex possam desenvolver na plataforma sem usar um navegador. (A TDX 2026 ocorreu em 15 e 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 regulamentados (pagamentos, compliance, gestão de patrimônio) — o primeiro desse tipo criado por uma instituição financeira licenciada; disponível na Claude, no Claude Code, no OpenClaw e em outras plataformas de IA compatíveis. Preços do Claude Managed Agents: US$ 0,08 por hora de sessão enquanto ela estiver em execução, sem cobrança de runtime durante períodos de inatividade — além das tarifas normais de tokens dos modelos da Claude. (Segundo a página de preços da Claude da Anthropic; o lançamento em public beta ocorreu em 8 de abril de 2026.) Memory for Managed Agents entrou em public beta em 23 de abril de 2026 sob o cabeçalho beta managed-agents-2026-04-01. Todos os endpoints de Managed Agents agora exigem esse cabeçalho beta. |
|
| 2026-04-16 | Guia v1.1: Adicionada a seção Harnesses gerenciados versus auto-hospedados, abrangendo Claude Managed Agents (beta de 8 de abril) e a separação entre harness e computação no OpenAI Agents SDK (16 de abril). Adicionado o Scion, um hypervisor multiagente entre ferramentas (7 de abril, Google). Documentada a descoberta do M3MAD-Bench sobre o platô dos debates. Adicionados Os cinco princípios dos agentes confiáveis (Anthropic, 9 de abril) + governança da Linux Foundation para MCP/AGENTS.md. Referência ao sandbox de skills Permiso SandyClaw. Novos padrões de longo horizonte do Opus 4.7: resiliência a falhas de ferramentas, nível de esforço xhigh, teto do orçamento de tokens (beta de task_budget) e percepção de necessidades implícitas, reduzindo o scaffolding em 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, aproximadamente 15.000 linhas de orquestração. Documentada em Claude Code como infraestrutura. ↩↩↩↩↩↩↩↩
-
Anthropic, “Hooks do Claude Code: códigos de saída”. code.claude.com/docs/en/hooks. O código de saída 0 permite, o 2 bloqueia e o 1 emite um aviso para a maioria dos eventos;
WorktreeCreateé mais rigoroso. ↩↩↩↩↩ -
Anthropic, “Amplie o Claude com Skills”. code.claude.com/docs/en/skills. Estrutura de skills, campos de frontmatter, correspondência baseada em LLM e limite de 1% / 8.000 caracteres para descrições. ↩↩↩↩↩↩↩
-
Anthropic, “Sub-agents do Claude Code”. code.claude.com/docs/en/sub-agents. Contexto isolado, suporte a worktrees e equipes de agentes. ↩↩↩↩↩
-
Anthropic, “Documentação do Claude Code”. docs.anthropic.com/en/docs/claude-code. Arquivos de memória, CLAUDE.md e memória automática. ↩↩↩↩↩
-
Sistema de deliberação multiagente do autor. 10 personas de pesquisa, máquina de estados com 7 fases e 141 testes. Documentado em Deliberação multiagente. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩
-
Simon Willison, “Escrever código agora é barato”. Padrões de engenharia agêntica. ↩
-
Laban, Philippe, et al., “LLMs se perdem em conversas com vários turnos”, arXiv:2505.06120, maio de 2025. Microsoft Research e Salesforce. 15 LLMs, mais de 200.000 conversas e queda média de 39% no desempenho. ↩↩↩
-
Mikhail Shilkov, “Por dentro das Skills do Claude Code: estrutura, prompts e invocação”. mikhail.io. Análise independente da descoberta de skills, da injeção de contexto e da seção
available_skillsdo prompt. ↩ -
Código-fonte do Claude Code,
SLASH_COMMAND_TOOL_CHAR_BUDGET. github.com/anthropics/claude-code. ↩ -
Anthropic, “Práticas recomendadas para criar Skills”. platform.claude.com. Limite de 500 linhas, arquivos de apoio e convenções de nomenclatura. ↩
-
Anthropic, “Hooks do Claude Code: eventos do ciclo de vida”. code.claude.com/docs/en/hooks. 31 eventos documentados do ciclo de vida, tipos de hooks, comportamento de correspondência, hooks assíncronos, hooks HTTP, hooks de prompt, hooks de agentes e hooks de ferramentas do MCP. ↩↩↩↩↩↩↩
-
Tutorial do autor sobre hooks do Claude Code. 5 hooks de produção criados do zero. Documentado em Tutorial sobre Hooks do Claude Code. ↩↩↩↩↩
-
Gerenciamento da janela de contexto pelo autor em 50 sessões. Documentado em Gerenciamento da janela de contexto. ↩↩↩↩↩
-
Implementação do Ralph Loop pelo autor. Iteração com contexto novo, estado no sistema de arquivos e orçamentos de criação. Documentada em O Ralph Loop. ↩↩↩↩↩↩↩
-
Arquitetura do sistema de deliberação do autor. 3.500 linhas de Python, 12 módulos, acionamento por confiança e validação de consenso. Documentada em Criação de sistemas de IA: de RAG a agentes. ↩↩↩
-
Nemeth, Charlan, Em defesa dos contestadores: o poder da discordância na vida e nos negócios, Basic Books, 2018. ↩
-
Wu, H., Li, Z. e Li, L., “Agentes LLM realmente conseguem debater?” arXiv:2511.07784, 2025. ↩
-
Liang, T. et al., “Incentivando o pensamento divergente em grandes modelos de linguagem por meio de debates multiagente”, EMNLP 2024. ↩
-
Análise do autor sobre AGENTS.md em repositórios reais. Documentada em Padrões de AGENTS.md. Veja também: Blog do GitHub, “Como escrever um ótimo agents.md: lições de mais de 2.500 repositórios”. ↩↩↩↩↩↩↩↩
-
Metodologia de quality loop e evidence gate do autor. Parte do sistema de excelência artesanal Jiro. ↩
-
Anthropic, “Visão geral dos agentes gerenciados do Claude”. Beta público lançado em 8 de abril de 2026. Harness como serviço, com checkpoints de sessão, sandbox integrado e API REST. Preço: tokens padrão + US$ 0,08 por hora de sessão. Cabeçalho beta
managed-agents-2026-04-01. ↩↩ -
OpenAI, “Notas de versão do openai-agents Python v0.14.0”. Lançada em 15 de abril de 2026; o anúncio foi publicado em 16 de abril. Introduz a interface Sandbox Agents SDK como uma camada beta sobre o fluxo existente de
Agent/Runner:SandboxAgent,Manifest(contrato do workspace),SandboxRunConfig, recursos (shell, edição do sistema de arquivos, inspeção de imagens, skills, memória do sandbox e compactação), 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 links simbólicos, além da serialização do estado de execução para retomada. Backends:UnixLocalSandboxClient,DockerSandboxCliente clientes hospedados para Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop e Vercel por meio de extras opcionais. O anúncio de 16 de abril foi resumido pela Help Net Security. ↩↩ -
Google Cloud, “Scion: hipervisor multiagente”. Teve seu código aberto em 7 de abril de 2026. Orquestra Claude Code, Gemini CLI e outros agentes avançados como processos isolados, cada um com seu próprio contêiner, git worktree e credenciais. Modos de implantação local, hub e Kubernetes. Cobertura da InfoQ. ↩
-
Conjunto de pesquisas sobre debates multiagente, 1º–2º trimestre de 2026. Wu et al., “Agentes LLM realmente conseguem debater?” (arXiv 2511.07784); M3MAD-Bench — benchmark de debates multiagente e multimodelo que demonstra platôs de desempenho e suscetibilidade a consensos enganosos; Tool-MAD — atribuição heterogênea de ferramentas por agente + pontuações de Faithfulness/Relevance atribuídas por um avaliador. ↩
-
Anthropic, “Nossa estrutura para desenvolver agentes seguros e confiáveis”. 9 de abril de 2026. Cinco princípios: controle humano, alinhamento de valores, segurança, transparência e privacidade. Doação do MCP para a Agentic AI Foundation da Linux Foundation. ↩↩
-
Permiso Security, “SandyClaw: primeiro sandbox dinâmico para Skills de agentes de IA”. 2 de abril de 2026. Sandbox para execução de skills com detecção por Sigma/YARA/Nova/Snort e veredictos fundamentados em evidências. ↩
-
Anthropic, “Apresentamos o Claude Opus 4.7”. 16 de abril de 2026. Melhorias para agentes que executam tarefas de longa duração: resolução de tarefas de produção no SWE-Bench 3 vezes maior que a do Opus 4.6, resiliência a falhas de ferramentas, nível de esforço
xhigh, orçamentos de tarefas (beta) e percepção de necessidades implícitas. Consulte também Novidades do Opus 4.7 para conhecer as alterações incompatíveis na API de 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_idnos itens de ferramentas, aumento do limite de turnos para consolidação de memória da Fase 2, aliases do GPT-5.5 para compactação do sandbox, validação mais rigorosa de membros tar/zip, rejeição de links simbólicos em fontesLocalFilee remoção de campos não definidos das chamadas de API do Responses. Destaques da v0.14.8: preservação de erros de importação em reexportações de MCP e delimitação das seções de instruções do prompt do sandbox. A claude-agent-sdk-python v0.1.69 adicionou docstrings aos campos deClaudeAgentOptionse atualizou o CLI incluído para a v2.1.121; a v0.1.70 elevou a versão mínima da dependênciamcppara>=1.19.0(versões anteriores descartavam silenciosamente os retornos deCallToolResultdos manipuladores de ferramentas MCP executados no processo), corrigiu a corrupção do nursery do Trio em cancelamentos antecipados ao iterarquery()comoptions.stderrdefinido (spawn_detached()passou a ser usado pelo leitor de stderr) e atualizou o CLI incluído para a v2.1.122; a v0.1.71 adicionou campos de lista de domínios permitidos (allowedDomains,deniedDomains,allowManagedDomainsOnly,allowMachLookup) aSandboxNetworkConfigpara manter a paridade com o esquema de TypeScript e atualizou o CLI incluído para a v2.1.123. ↩ -
OpenAI, “Instruções personalizadas com AGENTS.md”. Antes de iniciar o trabalho, o Codex lê os arquivos globais e do projeto
AGENTS.md/AGENTS.override.md, combina as orientações desde a raiz até o diretório atual e limita o tamanho da documentação do projeto por meio deproject_doc_max_bytes. ↩ -
OpenAI, “Agent Skills”. As skills do Codex usam
SKILL.md, divulgação progressiva, invocação explícita com$skille ativação implícita com base nas descrições. ↩ -
OpenAI, “Codex Hooks”. Os hooks do Codex oferecem suporte a hooks de comando na configuração, hooks de plugins, 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”. O Codex oferece suporte a fluxos de trabalho paralelos explícitos com subagents, aos agents integrados
default,workereexplorer, a agents TOML personalizados, à política de sandbox herdada, a hooks incluídos em plugins, ao estado de ativação dos hooks e a fluxos de trabalho persistentes de/goalna versão 0.128.0. ↩ -
Anthropic, “Novidades nos agentes gerenciados do Claude”. 6 de maio de 2026. Dreaming (Prévia de pesquisa): processo agendado em segundo plano que analisa sessões de agents e armazenamentos de memória, extrai padrões e organiza memórias. Outcomes (Beta público): avaliação baseada em rubricas, na qual um avaliador separado pontua a saída conforme a rubrica em sua própria janela de contexto, para não ser influenciado pelo raciocínio do agent. Orquestração multiagent (Beta público): o agent principal delega partes de uma tarefa a especialistas, cada um com seu próprio modelo, prompt e ferramentas; os especialistas trabalham em paralelo em um sistema de arquivos compartilhado e contribuem para o contexto geral do agent principal, com rastreamento completo de cada etapa no Console do Claude. ↩↩↩↩↩↩↩↩
-
Anthropic,
claude-agent-sdk-pythonv0.1.74. 6 de maio de 2026. Adicionainclude_hook_eventsaClaudeAgentOptions; quando definido, os eventos de hooks (PreToolUse, PostToolUse, Stop e outros) são emitidos pelo CLI e retornados no fluxo de mensagens comoHookEventMessage, refletindo oincludeHookEventsdo SDK de TypeScript. O Claude CLI incluído foi atualizado para a v2.1.129. ↩↩ -
Anthropic,
claude-agent-sdk-pythonv0.1.77. 8 de maio de 2026. Descontinua o valor"Skill"emallowed_toolsem favor de uma opção dedicadaskillsemClaudeAgentOptions, fornece ao Claude Code indicações mais estruturadas sobre as skills disponíveis, melhora as mensagens de erro das exceçõesCommand failede inclui o Claude CLI v2.1.133. ↩↩ -
Anthropic, Claude Code v2.1.132. 6 de maio de 2026. Adiciona a variável de ambiente
CLAUDE_CODE_SESSION_IDaos subprocessos da ferramenta Bash (correspondente aosession_idque os hooks já recebem),CLAUDE_CODE_DISABLE_ALTERNATE_SCREENpara manter a conversa no histórico de rolagem nativo, um banner de inicialização renovado para/tui fullscreen(menor consumo de memória, suporte ao mouse e cópia automática ao selecionar) e cerca de vinte correções de bugs, incluindo encerramento normal com SIGINT, corrupção de emojis substitutos em--resume, flag--permission-modeno modo de planejamento, tratamento do cursor em textos índicos e sequências ZWJ, operações do vim com NFD, perda de conteúdo colado iniciado por/, consumo ilimitado de memória no MCP, nova tentativa detools/listno MCP, erro 400 com Bedrock + Vertex eENABLE_PROMPT_CACHING_1H, além decontext_windowna linha de status exibindo tokens acumulados. ↩↩ -
Anthropic, Claude Code v2.1.133. 7 de maio de 2026. Agora, os hooks recebem a entrada JSON
effort.level+ a variável de ambiente$CLAUDE_EFFORT(também acessível por comandos Bash). Os subagents encontram skills do projeto, do usuário e de plugins por meio da ferramentaSkill(correção de regressão). Novas configurações administrativas:worktree.baseRef(fresh|head) restaura a base da worktree paraorigin/<default>após a mudança para oHEADlocal na v2.1.128;sandbox.bwrapPathesandbox.socatPathfixam os binários do sandbox no Linux/WSL;parentSettingsBehavior('first-wins' | 'merge') controla como asmanagedSettingsdo SDK são combinadas com as configurações do elemento pai. Outras correções: erro 401 em sessões paralelas após uma condição de corrida na atualização do token; escopo das regras de permissão na raiz da unidade; suporte a proxy/mTLS no OAuth do MCP; conclusão do cancelamento ao parar/interromper o Remote Control; vazamento de/effortentre sessões; inclusão de--remote-controlem--help. ↩↩↩↩↩↩ -
Anthropic, Claude Code v2.1.136. 8 de maio de 2026. Adiciona
settings.autoMode.hard_denypara regras do classificador do 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 durante a sessão em empresas que capturam respostas por meio do OpenTelemetry. Correções com impacto para operadores: servidores MCP de.mcp.json, plugins e conectores do claude.ai desapareciam silenciosamente após/clearno VS Code, JetBrains e Agent SDK; tokens de atualização do OAuth do MCP eram perdidos durante atualizações simultâneas; o modo de planejamento não bloqueava gravações em arquivos quando havia uma regra de permissãoEdit(...)correspondente; hooksStop/UserPromptSubmitde plugins falhavam quando a limpeza do cache excluía uma versão ainda em execução; uma entradaskillsemplugin.jsonocultava a pasta padrãoskills/do plugin; variáveis de ambiente de hooks SessionStart emCLAUDE_ENV_FILEficavam desatualizadas após/resumeou/clear. Além disso, há cerca de trinta correções adicionais de acabamento e confiabilidade envolvendo a TUI, o preenchimento automático e a renderização do terminal. Versões complementares: v2.1.137 (9 de maio, correção da 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 as versões v2.1.136, v2.1.137 e v2.1.138, respectivamente. ↩↩↩↩ -
OpenAI,
openai-agents-pythonv0.17.0. 8 de maio de 2026.RealtimeAgentpassa a usargpt-realtime-2por padrão. A materialização de fontes locais 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 seja explicitamente autorizada por meio deManifest.extra_path_grantscomSandboxPathGrant. Fontes locais relativas são resolvidas a partir debase_dir; fontes absolutas precisam já estar dentro dele ou sob uma autorização explícita. Migração: declare raízes confiáveis do host no nível do manifesto, de preferência como somente leitura. Trateextra_path_grantscomo uma configuração confiável do aplicativo; não a preencha com a saída do modelo nem com entradas não confiáveis do manifesto. Também inclui uma correção para colisões emextra_argsno gerenciamento de contexto do 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 da versão adicionam Agent View (claude agents),/goal,args: string[]para hooks,continueOnBlockparaPostToolUse,CLAUDE_PROJECT_DIRpara servidores stdio MCP, interpolação de comandos de plugins para${CLAUDE_PROJECT_DIR}e correções, incluindo a emissão declaude_code.active_time.totalpelo OpenTelemetry no modo--print. ↩↩↩↩↩ -
Anthropic, “Gerenciar vários agentes com o Agent View”. A documentação do Agent View descreve como distribuir e gerenciar várias sessões do Claude Code em uma única tela, acompanhar o que cada sessão está fazendo e identificar as sessões que precisam da intervenção do operador. A página classifica o Agent View como Research Preview e documenta as limitações das sessões locais. ↩↩↩
-
Anthropic, “Hooks do Claude Code”. Documentação de hooks que aborda os campos de hooks de comando,
PreToolUse,PostToolUse, o comportamento dos códigos de saída, a entrada e a saída de hooks e os caminhos de expansão direta de comandos slash. ↩↩ -
GitHub Advisory Database, GHSA-f3jg-756w-gm35 / CVE-2026-45046. “O filtro de payloads do Gryph Agents não remove o payload de ferramentas que contém conteúdo sensível.” Publicado em maio de 2026; descreve como o conteúdo sensível de payloads de
file-writepermanecia nos logs locais do SQLite com o comportamento padrão de logging e informa que o problema foi corrigido no Gryph v0.7.0. ↩↩ -
OSV, GHSA-wxxx-gvqv-xp7p / CVE-2026-40217. “O LiteLLM permite escapar da sandbox na proteção de código personalizado.” Publicado em 11 de maio de 2026; descreve um endpoint
POST /guardrails/test_custom_code, protegido para administradores, que executa Python fornecido pelo usuário em uma sandbox implementada manualmente e recomenda fazer upgrade ou bloquear o endpoint quando não for possível atualizar. ↩↩ -
Young Jo (seph) Chung e Safwat Hassan, “Colaborador ou assistente? Como agentes de programação com IA dividem o trabalho ao longo do ciclo de vida de pull requests”, arXiv:2605.08017v1, maio de 2026. O resumo relata a análise do ciclo de vida de 29.585 PRs no OpenAI, Copilot, Devin, Cursor e Claude Code, diferenciando autonomia operacional de governança de merge. ↩↩
-
Jiayuan Liu et al., “A maldição da memória: como a ampliação da capacidade de recordação enfraquece a intenção cooperativa em agentes LLM”, arXiv:2605.08060v1, maio de 2026. O resumo relata experimentos com 7 LLMs e 4 jogos ao longo de 500 rodadas, nos quais a ampliação do histórico acessível prejudicou a cooperação em 18 das 28 combinações entre modelo e jogo. ↩↩
-
Anthropic, Claude Code v2.1.140. 12 de maio de 2026. Adiciona
subagent_typeà entrada de hooks de agentes e corrige hooksConfigChange,disableAllHooks,allowManagedHooksOnly, a exibição de variáveis de ambiente na caixa de diálogo de permissões a partir dos resultados de hooks, a redefinição de estilos personalizados após atualizações das configurações, o fallback da resolução de pacotes nativos no Windows Git Bash e/scroll-speed. ↩↩↩ -
Anthropic, Claude Code v2.1.141. 13 de maio de 2026. Adiciona
terminalSequenceà saída JSON de hooks para notificações na área de trabalho, títulos de janelas e sinais sonoros;CLAUDE_CODE_PLUGIN_PREFER_HTTPSpara clonagem de fontes de plugins HTTPS;ANTHROPIC_WORKSPACE_IDpara definir o escopo do workspace na federação de identidade de carga de trabalho;claude agents --cwd <path>para filtrar diretórios no Agent View; opções do/feedbackpara anexar sessões das últimas 24 horas ou dos últimos 7 dias; além de correções relacionadas a agentes, tarefas em segundo plano, hooks, MCP, Remote Control, caixa de diálogo de permissões e renderização no terminal. Verificação na 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 recente,2.1.141. ↩↩↩ -
Anthropic, Claude Code v2.1.142. 14 de maio de 2026. Adiciona flags de distribuição ao
claude agentspara sessões em segundo plano (--add-dir,--settings,--mcp-config,--plugin-dir,--permission-mode,--model,--effort,--dangerously-skip-permissions), define o Opus 4.7 como padrão do modo Fast, comCLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1como opção para fixar a versão anterior, disponibiliza arquivosSKILL.mdna raiz de plugins como skills quando não há um diretórioskills/, mostra servidores LSP fornecidos por plugins nos detalhes do plugin, exibe um aviso antes de substituir uma conexão existente do App GitHub e corrige problemas deMCP_TOOL_TIMEOUT, worktrees de sessões em segundo plano, suspensão e retomada do daemon, limpeza do daemon após upgrades, cache de plugins e confiabilidade do Agent View. Verificação na sessão atual em 15 de maio de 2026:claude --versionretornou2.1.141 (Claude Code)e a versão mais recente no npm era2.1.142. ↩↩ -
Anthropic, Claude Code v2.1.147. 21 de maio de 2026. Adiciona a ferramenta
Workflow, desativada por padrão, para orquestração multiagente determinística (CLAUDE_CODE_WORKFLOWS=1), sessões em segundo plano fixadas,/code-review [effort] --commentno lugar de/simplify, reforço da segurança da sandbox do REPL e do Workflow, diagnósticos do atualizador automático, melhorias na renderização de diffs grandes, eliminação de duplicatas no histórico de prompts e correções para restrições de login corporativo, comportamento do PowerShell, paginação de MCP, Agent View, plugins, condições de hooks, texto colado e loops causados por imagens removidas. Verificação na 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 como versão mais recente2.1.147, comtime.modifiedigual a2026-05-21T20:38:35.053Z. ↩↩↩ -
Anthropic, Claude Code v2.1.148, v2.1.149, v2.1.150 e CHANGELOG do Claude Code. A v2.1.148 corrige uma regressão no código de saída do Bash introduzida na v2.1.147. A v2.1.149 adiciona o uso dos limites por categoria no
/usage, rolagem pelo teclado no/diff, renderização de listas de tarefas GFM eallowAllClaudeAiMcpspara o Enterprise; as correções relevantes para o harness incluem bypasses de permissão nocddo PowerShell, análise de permissões para prefixos, curingas e variáveis obsoletas do PowerShell, escopo da lista de permissões de escrita da sandbox em git worktrees, esgotamento de vnodes pelofinddo Bash no macOS, congelamentos na aprovação de configurações gerenciadas, diagnósticos de espaços em caminhos deotelHeadersHelpere sincronização de renomeação de sessões do Remote Control. A v2.1.150 contém apenas infraestrutura interna. Verificação na sessão atual em 24 de maio de 2026: o comando localclaude --versionretornou2.1.144 (Claude Code), enquanto a versão mais recente no npm era2.1.150, comtime.modifiedigual a2026-05-23T04:03:10.243Z; a versão mais recente no GitHub erav2.1.150, publicada em2026-05-23T04:03:51Z. ↩↩↩ -
OpenAI,
openai-agents-pythonv0.17.1, v0.17.2 e v0.17.3. A v0.17.1 adiciona detalhes de erros do provedor de sandbox, limites de extração de arquivos compactados, validação de subcaminhos do GitRepo e correções de tracing, sessão e recursos em tempo real. A v0.17.2 corrige a persistência do raciocínio em Conversations, os motivos de rejeição de aprovações locais, as configurações de AsyncSQLiteSession e o comportamento de ferramentas desconhecidas em tempo real. A v0.17.3 impede que credenciais de pontos de montagem sejam incluídas em comandos da sandbox, rejeita raízes relativas de workspaces da sandbox, lida com estados terminais de sandboxes da Vercel e corrige casos extremos de esquema de saída, guardrail, runtime e importação de memória. Verificação na sessão atual em 24 de maio de 2026:python3 -m pip index versions openai-agentsretornou como versão mais recente0.17.3; a versão mais recente no GitHub erav0.17.3, publicada em2026-05-19T01:27:36Z. ↩↩ -
Changelog do Claude Code (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, as saídasreloadSkillsesessionTitledo hookSessionStart, aplicação de/code-review --fixdiretamente na árvore de trabalho, a configuração gerenciadapluginSuggestionMarketplaces, a remoção da adesão ao modo automático e a troca no meio da sessão com--fallback-model. A v2.1.153 (28 de maio) faz com que/modelsalve o modelo como padrão para novas sessões, usandospara aplicá-lo somente à sessão atual, adicionaskipLfsaos marketplaces de plugins, expõeCOLUMNS/LINESno ambiente da linha de status e mantém as permissões de Privacidade e Segurança concedidas ao agente em segundo plano no macOS. A v2.1.154 (28 de maio) torna o Opus 4.8 o modelo padrão, com esforço alto por padrão e o novo/effort xhigh, introduz workflows dinâmicos por meio de/workflows, disponibiliza o modo Fast no Opus 4.8 por uma tarifa 2× maior para uma velocidade 2,5× superior, adota 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=1ao ambiente dos subprocessos stdio de MCP e descontinuaCLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE(removido em 1º de junho). ↩ -
Changelog do Codex (OpenAI Developers) e releases do openai/codex. O Codex CLI 0.134.0 (26 de maio de 2026) adicionou pesquisa no histórico local de conversas, tornou
--profileo seletor principal de perfil nos fluxos de CLI/TUI/sandbox, com migração das configurações legadas, melhorou a configuração de MCP com direcionamento de ambiente por servidor e OAuth para servidores HTTP com streaming, aumentou a confiabilidade dos esquemas de ferramentas de conectores preservando$ref/$defslocais e compactando esquemas grandes demais antes da exposição, além de permitir a execução simultânea de ferramentas MCP somente leitura que anunciamreadOnlyHint. O Codex CLI 0.135.0 (28 de maio de 2026) adicionou diagnósticos mais completos aocodex doctor, exibiu detalhes da conexão remota e a versão do servidor em/status, adicionou edição de objetos de texto do vim com comportamento aprimorado para palavras e finais de linha e interrupção de turno configurável, fez com que/permissionsreconhecesse perfis de permissão nomeados, incluiu um utilitário zsh corrigido nos pacotes para versões compatíveis do macOS e Linux e adicionou predefinições simplificadas deSandboxao Python SDK para APIs de threads e turnos. ↩ -
Notas da versão Hermes Agent v0.15.0. “A versão Velocity.” 1.302 commits, 747 PRs mesclados e 321 colaboradores da comunidade.
run_agent.pyfoi refatorado em 76% (de 16.083 para 3.821 linhas distribuídas em 14 módulos). Plataforma Kanban multiagente com decomposição automática, topologia de swarm, substituições de modelo por tarefa, tarefas agendadas e gerenciamento de worktrees.session_searchfoi reformulado e ficou 4.500× mais rápido, com a remoção da dependência LLM. Defesa contra promptware da classe Brainworm em três pontos críticos de segurança. Integração com o Bitwarden Secrets Manager, substituindo chaves específicas de cada provedor por um único token de inicialização. Pacotes de skills para carregar várias skills com um único comando slash. Orquestrador de sessões na TUI para gerenciar várias sessões em um único terminal. Provedores de geração de imagens Krea 2 e FAL; rodada de integração com a xAI (plugin de pesquisa na web, OAuth upstream, detecção de modelos desativados e pausas naturais na TTS). ↩ -
Notas da versão Claude Code v2.1.157 e o Changelog do Claude Code (canônico). 29 de maio de 2026. Plugins colocados no diretório
.claude/skills/de um projeto agora são carregados automaticamente, sem exigir um marketplace;claude plugin init <name>cria a estrutura inicial de um novo plugin nesse diretório;/pluginganhou preenchimento automático de argumentos. Além disso:EnterWorktreepode alternar entre worktrees gerenciadas por Claude no meio da sessão, worktrees em segundo plano permanecem desbloqueadas após o agente terminar para quegit worktree remove/prunefuncionem corretamente, e os eventos de telemetriatool_decisionincluemtool_parametersquandoOTEL_LOG_TOOL_DETAILS=1. Também inclui correções de bugs para imagens que não podem ser processadas (agora convertidas em placeholders de texto), solicitações de permissão de rede do sandbox nos modos automático/de bypass, encerramento de sessões em segundo plano ao serem estacionadas e renderização do terminal no tmux / VS Code / Cursor / Windsurf. ↩↩ -
Changelog do Claude Code (canônico) e notas da versão Codex CLI v0.137.0, junho de 2026. O Claude Code v2.1.162 (3 de junho) adicionou
waitingForaoclaude agents --json; a v2.1.163 (4 de junho) adicionouhookSpecificOutput.additionalContextpara feedback sem erro deStop/SubagentStop; a v2.1.166 (6 de junho) reforçou a autoridade deSendMessageentre sessões (mensagens retransmitidas não carregam mais a autoridade do usuário) e adicionou a configuraçãofallbackModel(até três opções alternativas, com uma única nova tentativa em caso de erros não repetíveis). O Codex CLI v0.137.0 (4 de junho) trouxe o multiagente v2 (runtime com thread,hide_spawn_agent_metadatadefinido como true por padrão e propagação de eventos do processo pai para o filho), uma extensão v1 de skills com resolução do catálogo por turno e eventos de colaboradores para o 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 os controles de simultaneidadeagents.max_threads/max_depth. O AGENTS.md (agents.md) não publica nenhuma alteração de especificação com versão. Verificação na 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
disableBundledSkillseCLAUDE_CODE_DISABLE_BUNDLED_SKILLS(oculta do modelo as skills incluídas, os workflows e os comandos slash integrados); a flag--safe-modeeCLAUDE_CODE_SAFE_MODE(inicia uma sessão com todas as personalizações desativadas: CLAUDE.md, plugins, skills, hooks e servidores MCP); e o comando/cd(move uma sessão para um novo diretório de trabalho sem interromper o cache do prompt). A v2.1.170 permite selecionar o Claude Fable 5 (claude-fable-5) por meio de/model claude-fable-5, enquanto o Opus 4.8 continua sendo o padrão agêntico do Claude Code. Lançamento do nível de modelo: Anthropic, “Claude Fable 5”, 9 de junho de 2026 — um nível “da classe Mythos” acima do Opus, descrito como o modelo mais poderoso da Anthropic considerado 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 reforça o multiagente v2 com payloads criptografados de mensagens entre agentes, um catálogo v2 de configurações de agentes, uma LRU de residência de agentes e simultaneidade calculada pela execução ativa, não pelo número de threads criadas. A v0.139.0 renomeia o API de ciclo de vida
close_agentparainterrupt_agente limita os avisos de inicialização de MCP dos subagents à thread proprietária, evitando que sejam duplicados no processo pai. A descoberta de AGENTS.md foi reforçada nas duas versões: o carregamento passa pelos sistemas de arquivos do ambiente e preserva os caminhos lógicos durante a descoberta, garantindo a seleção correta dos arquivos em espaços de trabalho remotos e com links simbólicos. ↩↩↩↩ -
Anthropic, notas da versão Claude Code v2.1.172 (10 de junho de 2026). Agora, sub-agents podem criar seus próprios sub-agents, com delegação recursiva compatível com até 5 níveis de profundidade; antes, a delegação era efetivamente limitada a um nível. ↩↩
-
Anthropic, notas da versão Claude Code v2.1.175 e notas da versão 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 as configurações do usuário/projeto ampliem a lista de permissões 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 usando*como curinga (por exemplo,Agent(model:opus)); carrega skills de diretórios.claude/skillsaninhados com desambiguação<dir>:<name>em caso de conflito de nomes; resolve agents, workflows e output-styles de diretórios.claude/aninhados, priorizando os mais próximos do cwd em caso de colisão (os salvamentos de workflows no escopo do projeto têm como destino o diretório.claude/workflows/existente mais próximo); avalia a criação de subagents com o classificador do modo automático antes da inicialização; e corrige as especificações no nível do servidor MCP (mcp__server,mcp__server__*,mcp__*) emdisallowedToolsde subagents, que antes eram ignoradas silenciosamente. ↩↩↩↩↩↩↩ -
OpenAI, notas de versão do Codex CLI rust-v0.140.0, 15 de junho de 2026 (promovida a estável a partir da linha v0.140.0-alpha). Adiciona
/importpara importar seletivamente a configuração inicial, a configuração do projeto e conversas recentes do Claude Code; exclusão permanente de sessões por meio decodex delete,/deleteethread/deletedo app-server, com proteções de confirmação; um menu unificado de menções com@para arquivos, plugins e skills; e visualizações da atividade de tokens em/usage. ↩↩ -
Anthropic, notas de versão do Claude Code v2.1.183, 19 de junho de 2026 — o modo automático bloqueia comandos git destrutivos (
git reset --hard,git checkout -- .,git clean -fd,git stash drop) quando você não solicitou o descarte do trabalho,git commit --amendem commits que não foram criados pelo agente nesta sessão eterraform destroy/pulumi destroy/cdk destroy, a menos que você tenha solicitado a stack específica. OpenAI, notas de versão do Codex CLI rust-v0.141.0, 18 de junho de 2026 (promovida a 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 os diretórios de trabalho e shells nativos do executor; o TLS oferece suporte a assinaturas de certificado P-521 para proxies corporativos. ↩↩↩ -
Changelog do Claude Code (canônico) — v2.1.193 (25 de junho de 2026): configuração
autoMode.classifyAllShell; motivos de recusa do modo automático na transcrição, na notificação e em/permissions. v2.1.195 (26 de junho de 2026): matchers de hooks com identificadores que contêm hífen (por exemplo,code-reviewer,mcp__brave-search) passam a usar correspondência exata em vez de correspondência por substring; usemcp__brave-search__.*para corresponder a todas as ferramentas de um servidor MCP com hífen. Notas de versão do Codex CLI v0.142.2 (25 de junho de 2026): comandos do PowerShell que contêm regiões AST executáveis que o classificador de segurança não consegue inspecionar agora exigem aprovação. Verificado nas duas fontes canônicas em 1º e 2 de julho de 2026 (PST). ↩↩↩ -
Changelog do Claude Code (canônico) e versões do GitHub. v2.1.196 (29 de junho de 2026): modelos padrão para toda a organização (definidos pelo administrador e exibidos como “Padrão da organização” em
/model);claude mcp list/getnão iniciam mais servidores.mcp.jsonautoaprovados pelo repositório em espaços de trabalho não confiáveis. v2.1.197 (30 de junho): Claude Sonnet 5 torna-se o modelo padrão distribuído (contexto nativo de 1M, preços promocionais de US$ 2/US$ 10 até 31 de agosto). v2.1.198 (1º de julho): subagents são executados em segundo plano por padrão; o agente Explore integrado herda o modelo da sessão (limitado ao Opus); subagents e a compactação herdam a configuração de raciocínio estendido da sessão; sessõesclaude agentsem segundo plano fazem commit, push e abrem um PR em modo rascunho após trabalhos de código em worktrees e acionam o hookNotificationcomagent_needs_input/agent_completed; o assistente de/agentsfoi removido (edite.claude/agents/diretamente ou peça ao Claude). v2.1.199 (2 de julho): invocações empilhadas de slash-skills carregam até 5 skills iniciais; o direcionamento incorreto provocado pela reutilização do nome de um agente emSendMessageé detectado; os hooksSessionStart/Setup/SubagentStartexibem o stderr quando o código de saída é 2. v2.1.200 (3 de julho): o modo de permissãodefaultpassa a ser identificado como “Manual” no CLI, em--help, no VS Code e no JetBrains, commanualaceito junto ao valor de configuração inalterado; as caixas de diálogoAskUserQuestionnão continuam mais automaticamente por padrão. v2.1.202 (6 de julho): um controle de “Tamanho dinâmico do fluxo de trabalho” em/config;/review <pr>volta a executar uma revisão em passagem única, enquanto/code-review <level> <pr#>executa a passagem multiagente. Oclaude-agent-sdkdo Anthropic está na v0.2.111 (6 de julho de 2026; inclui o Claude CLI v2.1.202), e o@anthropic-ai/claude-agent-sdkdo TypeScript, na v0.3.203; as linhas 0.2.x / 0.3.x são incrementais em relação à interface 0.1.x documentada (o trabalho recente se concentra na limpeza de subprocessos e na confiabilidade do streaming de NDJSON). Verificação na sessão atual em 7 de julho de 2026 (PST). ↩ -
Changelog do Claude Code (canônico), versões v2.1.207 e v2.1.208 do GitHub e Novidades no Claude Code. Julho de 2026. v2.1.203–v2.1.206 (início de julho): uma regra do modo automático bloqueia a adulteração de arquivos de transcrição; notificações de tarefas em segundo plano declaram explicitamente que não houve intervenção humana durante a execução da tarefa;
roots/listdo MCP inclui os diretórios de trabalho adicionais da sessão com notificaçõesroots/list_changed;/doctorpropõe reduzir o conteúdo de CLAUDE.md que pode ser derivado da base de código; a v2.1.204 também corrigiu o streaming deSessionStartno modo headless. v2.1.207: disponibilidade geral do modo automático no Amazon Bedrock, Google Vertex AI e Microsoft Foundry, com a configuração gerenciadadisableAutoModepara desativá-lo;CLAUDE_CODE_PROCESS_WRAPPERpara inicializadores de processos corporativos; rodadas de uso de ferramentas até 7 vezes mais rápidas com um grande número de ferramentas MCP e transcrições de sessão 79 vezes menores. v2.1.208: prompts de confirmação para remoções catastróficas se sobrepõem a--dangerously-skip-permissionse ao modo automático. ↩↩↩↩↩↩↩↩ -
Changelog do Claude Code (canônico) e versões v2.1.210, v2.1.211 e v2.1.212 do GitHub. Julho de 2026. v2.1.210: subagents isolados por worktree não podem mais alterar o checkout principal; o Agent tool foi reforçado contra injeção indireta de prompt proveniente de conteúdo lido por um subagent; o classificador do modo automático usa Sonnet 5 por padrão, fixado por sessão; gravações em
MEMORY.mdque excedem o limite de tamanho geram um erro em vez de serem truncadas silenciosamente. v2.1.211: decisõesaskdo hookPreToolUseestabelecem um prompt como resultado mínimo da permissão — o modo automático não pode substituí-lo por uma autorização para Bash sem sandbox;--forward-subagent-text/CLAUDE_CODE_FORWARD_SUBAGENT_TEXTencaminha o texto do subagent para a saída stream-json; regras de “sempre permitir” persistem na raiz do repositório entre worktrees; as prévias de permissão neutralizam caracteres de substituição bidirecional, de largura zero e visualmente semelhantes. v2.1.212: limite de criação de subagents por sessão (padrão de 200,CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION, redefinido por/clear); limite de WebSearch por sessão (200,CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION); o parâmetromodedo Task tool foi descontinuado em favor da herança do modo de permissão da sessão principal;/forkcria uma nova sessão em segundo plano, e a variante usada dentro da sessão foi renomeada como/subtask; chamadas do MCP que ultrapassam dois minutos passam automaticamente para segundo plano (CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS). ↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Anthropic, versões v0.3.205–v0.3.208 do
@anthropic-ai/claude-agent-sdkpara TypeScript. Julho de 2026. Recibos de interrupção tipados (UUIDsstill_queued; recursointerrupt_receipt_v1anunciado emsystem/init); framescommand_lifecycleque informam o estado queued/started/completed/cancelled/discarded de cada mensagem; tipoAgentToolCompletedOutput;canUseToolpode retornar{behavior: 'allow'}semupdatedInput. Correção de segurança na v0.3.208: uma interrupção do chamador recebida durante um hook pendente era convertida em sucesso do hook, permitindo que ferramentas controladas por um hookPreToolUsefossem executadas após a interrupção pelo chamador. ↩↩↩ -
Model Context Protocol, PR nº 3002. Incorporado à especificação preliminar em 16 de julho de 2026. Adiciona um objeto opcional
io.modelcontextprotocol/serverInfoao_metada resposta e tornaclientInfoopcional nas solicitações, restaurando a identidade do servidor depois que o núcleo sem estado da SEP-2575 removeu o handshake de inicialização com estado. A identidade é autodeclarada e não verificada: destina-se apenas à exibição e ao registro e NÃO DEVE orientar decisões de segurança. A revisão sem estado da especificação foi lançada em 28 de julho de 2026 e é a revisão atual da especificação (verificada novamente em 12 de agosto de 2026). ↩↩ -
OpenAI, versões rust-v0.143.0, rust-v0.144.0 e rust-v0.144.5 do Codex CLI. Julho de 2026. v0.143.0: as ferramentas do MCP são carregadas por padrão por meio da busca de ferramentas (carregamento adiado de ferramentas em vez de schemas carregados antecipadamente). v0.144.0: novo modo
writesde aprovação de apps — ações somente leitura são executadas sem solicitar confirmação, enquanto gravações exigem aprovação — e disponibilidade geral da autenticação interativa do MCP. v0.144.5: detecção ampliada de comandos perigosos. ↩↩ -
OpenAI,
openai-agents-pythonv0.18.2 (11 de julho de 2026) eopenai-agents-jsv0.13.2 (10 de julho de 2026). Ambas as versões adicionam suporte hospedado a múltiplos agentes em beta — orquestração de vários agentes gerenciada pela OpenAI como um serviço hospedado, equivalente ao beta público do Managed Multiagent Orchestration da Anthropic. ↩↩ -
Changelog da Claude Code (canônico), v2.1.214–v2.1.216, julho de 2026. v2.1.214: regras de permissão e condições
if:de hooks com padrões de caminhodir/**de segmento único agora são ancoradas em<cwd>/dir(use**/dir/**para qualquer profundidade); o comportamento anterior aprovava automaticamente regras de permissão comoEdit(src/**)para qualquerdir/aninhado na árvore; regras de negação e confirmação mantêm a correspondência em qualquer profundidade. Também: ferramentaEndConversation; um conjunto de reforços de permissão para Bash/PowerShell com falha segura; o código de saída 2 de hooks bloqueia mesmo quando o JSON de stdout falha na validação do schema; timestamps ISOmodifiedno frontmatter da memória sem truncamento silencioso; OTelmessage.uuid,client_request_id,tool_sourceeCLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH. v2.1.215: as skills integradas/verifye/code-reviewnão são mais invocadas automaticamente — somente por invocação explícita. v2.1.216: subagents isolados por worktree não podem mais redirecionar o git para o checkout compartilhado por meio degit -C,--git-dirouGIT_DIR/GIT_WORK_TREE; sessões de worktree não são mais resolvidas para um worktree residual de outro projeto; gravações de workflows e tarefas agendadas são recusadas quando.claudeé um link simbólico que aponta para fora do projeto;/rewindnão percorre mais links simbólicos nem hard links;sandbox.filesystem.disabledpermite sandboxing apenas para tráfego de saída da rede; sessões retomadas de agentes em segundo plano restauram o prompt e as restrições de ferramentas do agente; alterações em skills/comandos durante a sessão aparecem no menu de comandos com barra sem exigir reinicialização. Verificado no changelog canônico em 21 de julho de 2026 (PST). ↩↩↩↩↩ -
Anthropic, versões v0.3.214–v0.3.216 do
@anthropic-ai/claude-agent-sdkpara TypeScript eclaude-agent-sdkpara Python v0.2.124. Julho de 2026. TypeScript:set_permission_moderejeita modos desconhecidos;aborted: trueem mensagens truncadas por interrupção;tool_progressincluisubagent_typeesubagent_retry; subcategoria de notificação de tarefascheduled-trigger; origem"fork"deSessionStart; sidecartool_result_metacomnon_execution_kindeuser_feedback; contagem opcionalskippedLinksnas respostas derewindFiles;user_message_uuiderequest_sent_wall_msopcionais na mensagem de resultado bem-sucedido. Python v0.2.124 (Windows, classe BatBadBut): recusa-se a executar arquivos.bat/.cmd; metacaracteres decmd.exeem valores deresume/session_idgeramValueError; valores deextra_argsiniciados por hífen são vinculados como--flag=value. ↩↩↩ -
OpenAI, notas da versão rust-v0.145.0 do Codex CLI, julho de 2026. Estabiliza a interface V2 opcional de múltiplos agentes (modelos de subagents, níveis de raciocínio e simultaneidade configuráveis; funções de agente restauradas); expande
/importpara migrar configurações, servidores MCP, plugins, sessões, comandos e memórias no escopo do projeto provenientes da Claude Code e do Cursor. Reforços: timeouts na inicialização do MCP, atualizações serializadas do OAuth, descoberta não bloqueante do OAuth, detecção mais robusta de rm forçado, preservação dos motivos de rejeição e histórico experimental paginado de threads. ↩↩ -
Model Context Protocol, PRs de documentação da versão da especificação #3064, #3066 e #3098, incorporados em 21 de julho de 2026, antes do lançamento da especificação em 28 de julho. A revisão final apresentará Tasks como uma extensão opcional
io.modelcontextprotocol/tasks, e não como um recurso central, além de descontinuar o transporte HTTP+SSE em favor do Streamable HTTP. ↩ -
Changelog da Claude Code (canônico), v2.1.217, 21 de julho de 2026. Por padrão, subagents não iniciam mais subagents aninhados — defina
CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTHpara permitir níveis adicionais de aninhamento; novo limite de subagents executados simultaneamente (padrão: 20,CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS) para impedir que uma única mensagem dispare um número ilimitado de agentes em segundo plano;--max-budget-usdagora realmente interrompe subagents em segundo plano — quando o limite é atingido, novas inicializações são negadas e os agentes em segundo plano em execução são interrompidos; o isolamento de sessões em segundo plano canoniza diretórios de trabalho com links simbólicos, eliminando uma rota de escape da pasta do workspace. Verificado no changelog canônico em 22 de julho de 2026 (PST). ↩↩ -
Anthropic,
claude-agent-sdkpara Python v0.2.125 e@anthropic-ai/claude-agent-sdkpara TypeScript v0.3.217, 21 de julho de 2026. A versão v0.2.125 para Python inclui o CLI v2.1.217 sem alterações na interface do SDK; a versão TS v0.3.217 é lançada junto com ela. Ambas herdam os novos padrões de aninhamento e simultaneidade de subagents do CLI. ↩ -
Model Context Protocol, PR #3092, incorporado em 21 de julho de 2026. Correção normativa que alinha os códigos de erro do SEP-2575 ao schema renumerado do rascunho e ao conjunto de testes de conformidade, como parte da preparação para o lançamento da especificação em 28 de julho de 2026. ↩
-
Engenharia da Anthropic, “Como contemos a Claude em diferentes produtos”, 25 de maio de 2026. Três padrões de contenção adaptados às interfaces dos produtos: contêineres gVisor efêmeros com sistemas de arquivos por sessão no lado do servidor (claude.ai); sandboxing do sistema operacional com supervisão humana (Claude Code: Seatbelt no macOS, bubblewrap no Linux e o
sandbox-runtimede código aberto); VMs seladas em hipervisores da plataforma (Claude Cowork: framework Apple Virtualization no macOS, HCS no Windows, com o workspace e.claudemontados e nada mais). Princípios de design: primeiro conter na camada do ambiente e depois orientar na camada do modelo; ajustar a robustez do isolamento à capacidade de supervisão do usuário; preferir componentes consolidados (hipervisores, seccomp e runtimes de contêineres) em vez de código de isolamento personalizado; tratar configurações locais do projeto e saídas de ferramentas como não confiáveis; manter as credenciais fora do sandbox por meio de tokens por sessão, com escopo limitado e revogáveis de forma independente — isso é aplicado no Cowork por um proxy MITM defensivo dentro da VM, que rejeita solicitações sem o token provisionado da própria VM. ↩↩ -
Changelog da Claude Code (canônico), v2.1.218, 22 de julho de 2026. As verificações de rm perigoso,
&em segundo plano e caminhos suspeitos do Windows não abrem mais caixas de diálogo de permissão — o classificador do modo automático decide sobre elas; o modo de planejamento com auto não solicita mais confirmação para comandos Bash que o analisador estático não consegue comprovar como somente leitura — o classificador os avalia; hooks no frontmatter de agentes exigem que a confiança no workspace tenha sido aceita para a própria pasta do arquivo do agente; skills comcontext: forksão executadas em segundo plano por padrão (background: falsedesativa esse comportamento em cada skill);/code-reviewé executado como um subagent em segundo plano;/deep-researchsó é iniciado quando invocado manualmente; a linhagem de sessões fork é preservada após a compactação em sessões headless e SDK; o envio para segundo plano comCtrl+Baplica os mesmos limites de shell em segundo plano usados nos outros fluxos. Verificado no changelog canônico em 24 de julho de 2026 (PST). ↩ -
Anthropic,
@anthropic-ai/claude-agent-sdkpara TypeScript v0.3.218 eclaude-agent-sdkpara Python v0.2.126, 22 de julho de 2026. TypeScript: flagSkillToolOutput.background;api_error_statusinforma erros 429/529 no decorrer do stream;canonicalModeleprovideremmodelUsage. Python:ResultMessage.terminal_reason; entradas tipadas demodel_usagecomcanonicalModel/provider; inclui o CLI v2.1.218. ↩ -
Changelog de Claude Code (canônico), v2.1.219 (24 de julho de 2026) e v2.1.220 (25 de julho de 2026). v2.1.219: “Agora, subagents podem criar subagents aninhados até a profundidade 3 por padrão (antes era 1); defina
CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1para desativar o aninhamento”; Claude Opus 5 (claude-opus-5) adicionado como o modelo Opus padrão — contexto de 1 milhão, modo rápido por US$ 10/US$ 50 por MTok;sandbox.network.strictAllowlistbloqueia hosts que não estão na lista de permissões para comandos em sandbox sem solicitar confirmação; novo hookDirectoryAdded, acionado depois que/add-dirou a solicitação de controleregister_repo_rootdo SDK registra um diretório de trabalho durante a sessão; workflows dinâmicos adotam por padrão uma diretriz de tamanho médio (“procure usar menos de 15 agentes”), configurável em qualquer arquivo de configurações por meio deworkflowSizeGuideline(a linha correspondente em/configfica oculta enquanto houver uma configuração desse tipo) e exibida na linha de status do workflow em execução; encaminhamento de subagents aninhados em stream-json — subagents de profundidade 2 ou superior aparecem com--forward-subagent-text, identificados pelo id detool_usedo Agent que os criou;mcp_server_errorsno evento de inicialização stream-json headless, listando entradas de--mcp-configignoradas pela validação da configuração, com um aviso na inicialização em execuções no terminal; status HTTP e texto do erro emclaude mcp liste/mcpquando a conexão falha, além de um aviso para valores de configuração do MCP com espaços ocultos no início ou no fim; entradas${VAR}das listas gerenciadas de permissões/bloqueios do MCP passam a ser resolvidas com base no ambiente de inicialização e no ambiente das configurações gerenciadas, em vez do ambiente do arquivo de configurações;claude -pnão descarta mais o texto já produzido quando um turno é interrompido por um erro do API durante o streaming;CLAUDE_CODE_GIT_BASH_PATHé ignorado com um aviso quando o caminho não aponta para um binário bash/sh; Opus 4.7 removido do modo rápido (/fastagora se aplica ao Opus 5 e ao Opus 4.8); a skill claude-api incluída passa a usar Opus 5 por padrão, com um caminho de migração a partir do Opus 4.8. v2.1.220: apenas correções de bugs e melhorias de confiabilidade. O fallback do Fable-5 no modo automático para “o melhor modelo Opus disponível” remonta à v2.1.176 e agora resulta no Opus 5. Verificado no changelog canônico em 25 de julho de 2026. ↩↩↩↩↩↩↩↩↩↩ -
Anthropic,
@anthropic-ai/claude-agent-sdkTypeScript v0.3.219 e v0.3.220;claude-agent-sdkPython v0.2.127 e v0.2.128. 24–25 de julho de 2026. TypeScript v0.3.219: evento de hook de ciclo de vidaDirectoryAddedadicionado ao protocolo de controle; a opçãocancel_queuedna solicitação de controle de interrupção (capacidadeinterrupt_cancel_queued_v1) cancela mensagens na fila e aguardando despacho junto com a interrupção;fast_mode_disabled_reasonnas mensagens de resultado e inicialização; a resposta de inicialização não informa mais ofast_mode_statedo modelo usado na criação após uma troca de modelo;sandbox.network.strictAllowlisteworkflowSizeGuidelineadicionados aos tipos de configurações do SDK. Python v0.2.127: corrigido o fechamento prematuro do stdin enquanto tarefas em segundo plano ainda estavam em execução —query()fechava o stdin no primeiro frameresultenquanto subagents em segundo plano ainda estavam ativos, fazendo com que suas chamadas de ferramenta SDK-MCP falhassem com"Stream closed"e ignorassem silenciosamente os hooksPreToolUse; agora, o stdin permanece aberto até que todas as tarefas em andamento sejam concluídas e o frame de resultado final chegue (#1103). v0.3.220 / v0.2.128: atualizações de paridade com o CLI v2.1.220. ↩↩↩↩ -
Verificação nos registros em 12 de agosto de 2026:
pypi.org/pypi/claude-agent-sdk/jsonretorna a versão 0.2.137;registry.npmjs.org/@anthropic-ai/claude-agent-sdkretorna a dist-tag latest 0.3.229. ↩↩ -
Notas de versão do Claude Code v2.1.224, 7 de agosto de 2026 (
SendMessage/ListAgentsentre sessões,crossSessionInbound, runners auto-hospedados), com o contrato do recurso em code.claude.com/docs/en/cross-session-messaging; e O modo automático agora é o padrão no Claude Code para os planos Pro, Max e Team, Anthropic, 7 de agosto de 2026 — em vigor a partir de 14 de agosto de 2026; desative por sessão com Shift+Tab, fixe o modo por meio dedefaultModeou desative-o em toda a organização por meio dedisableAutoMode. ↩↩↩↩ -
Documentação sobre subagents e notas de versão do Claude Code v2.1.232. Texto literal da documentação: “Um fork é um subagent que herda toda a conversa até aquele momento, em vez de começar do zero. Isso elimina o isolamento de entrada que os subagents normalmente oferecem: um fork vê o mesmo prompt do sistema, as mesmas ferramentas, o mesmo modelo e o mesmo histórico de mensagens da sessão principal”; “As chamadas de ferramenta do próprio fork continuam fora da sua conversa, e somente o resultado final retorna”; “O Claude Code ativa o modo fork por padrão em sessões interativas e o mantém desativado por padrão no modo não interativo com
-pe no SDK do Agent. O padrão interativo exige o Claude Code v2.1.232 ou posterior.” Fallback do modelo dos integrantes da equipe conforme a documentação de agent teams: “teammateDefaultModelfoi removido na v2.1.234… Informe o modelo no prompt ou definaCLAUDE_CODE_SUBAGENT_MODEL”, enquanto, nos demais casos, os integrantes da equipe executam no “modelo atual do líder”. Consultado em 18 de agosto de 2026. ↩↩ -
Agent Plugins: The Portable Agent Plugin Standard, versão 1.0.0 da especificação, lançada em 6 de agosto de 2026. Autodescrição: “o formato de pacote portátil para agentes de IA”. Manifesto
plugin.jsonobrigatório;skills/opcional (cada subdiretório imediato com umSKILL.mdcorresponde a uma Agent Skill);mcp.jsonopcional (stdio, Streamable HTTP, HTTP+SSE legado); namespaces de cliente em domínio reverso. Clientes de lançamento: VS Code, Cursor, GitHub Copilot, ChatGPT & Codex, Kiro; especificação desenvolvida com a participação da Amazon, Anysphere, GitHub, Microsoft, OpenAI e Vercel, com o Google entrando para o grupo de mantenedores no dia do lançamento. A Anthropic não faz parte da coalizão. ↩↩ -
claude-agent-sdkno PyPI e seu CHANGELOG;@anthropic-ai/claude-agent-sdkno npm. Verificado em 1º de agosto de 2026: Python 0.2.128 (changelog: “Atualizado o CLI da Claude incluído para a versão 2.1.220”; requermcp<2.0.0,>=1.23.0), TypeScript 0.3.220 (publicado em 24 de julho de 2026, “paridade com o Claude Code v2.1.220”). Os números anteriores neste parágrafo (Python v0.2.111 incluindo o CLI v2.1.202, TypeScript v0.3.203) estavam defasados em 17 versões em cada linha, enquanto o restante deste guia já acompanhava as versões 0.2.128 e 0.3.220. ↩↩↩ -
Anthropic, “Apresentando o Claude Opus 5”. 24 de julho de 2026.
claude-opus-5; “US$ 5 por milhão de tokens de entrada e US$ 25 por milhão de tokens de saída”; o modo rápido funciona “cerca de 2,5 vezes mais rápido que a velocidade padrão” por “duas vezes o preço-base do Opus 5” (US$ 10/US$ 50 por MTok, de acordo com o changelog do Claude Code v2.1.219, que também informa a janela de contexto de 1 milhão). Benchmarks: “No Frontier-Bench v0.1, o Opus 5 supera todos os outros modelos e mais que dobra o desempenho do Opus 4.8”; no CursorBench 3.2, fica “a 0,5% da pontuação máxima do Fable 5, mas pela metade do custo”; “No ARC-AGI 3… a pontuação do Opus 5 é três vezes maior que a do segundo melhor modelo”; no OSWorld 2.0, supera “o melhor resultado do Fable 5 por pouco mais de um terço do custo”. Caracterizado como “um modelo criterioso e proativo”, “muito mais competente para verificar o próprio trabalho e iterar com cuidado.” ↩↩