For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegação principal
Theme

Subagentes

Use subagentes no ChatGPT e no Codex e configure agentes personalizados do Codex

O ChatGPT Work e o Codex podem executar fluxos de trabalho com subagentes. Para isso, iniciam agentes especializados em paralelo e reúnem os resultados em uma única resposta. Isso pode ser especialmente útil em tarefas complexas que podem ser divididas em várias partes independentes, como explorar uma base de código ou implementar um recurso a partir de um plano com várias etapas.

Nos clientes locais do Codex, você também pode definir agentes personalizados com configurações de modelo e instruções específicas para cada tarefa.

Disponibilidade

As versões atuais do Codex habilitam os fluxos de trabalho com subagentes por padrão. A atividade dos subagentes aparece no aplicativo do ChatGPT para desktop, na CLI do Codex e na extensão para IDE.

Como cada subagente faz suas próprias chamadas ao modelo e às ferramentas, os fluxos de trabalho com subagentes consomem mais tokens do que execuções equivalentes com um único agente.

Em um chat do aplicativo, peça ao Codex que delegue partes independentes do trabalho a subagentes. Nas versões locais atuais, o Codex delega tarefas quando você pede diretamente ou quando as instruções aplicáveis de um arquivo AGENTS.md ou de uma habilidade solicitam a delegação. O aplicativo exibe a conversa de cada subagente para que você possa examinar o trabalho realizado e o resumo enviado ao chat principal.

Vantagens dos fluxos de trabalho com subagentes

Mesmo com janelas de contexto grandes, os modelos têm limites. É no chat principal que você define requisitos e restrições e toma decisões. Se esse chat acumular muitos resultados intermediários, como anotações da exploração, logs de testes, rastreamentos de pilha e saídas de comandos, a sessão pode se tornar menos confiável com o tempo.

Dois termos costumam descrever esse problema:

  • Poluição do contexto: fica difícil encontrar informações úteis em meio aos resultados intermediários.
  • Deterioração do contexto: o desempenho piora à medida que o chat acumula detalhes menos relevantes.

Para saber mais, consulte o artigo da Chroma sobre deterioração do contexto.

Os fluxos de trabalho com subagentes mantêm os detalhes intermediários fora da conversa principal:

  • Mantenha o agente principal focado nos requisitos, nas decisões e nos resultados finais.
  • Execute subagentes especializados em paralelo para explorar o código, executar testes ou analisar logs.
  • Peça aos subagentes que retornem resumos em vez de resultados intermediários brutos.

Os subagentes também podem economizar tempo quando as tarefas são independentes e podem ser executadas em paralelo. Além disso, facilitam a execução de tarefas maiores ao dividi-las em partes de escopo delimitado. Por exemplo, o Codex pode dividir a análise de um documento com milhões de tokens em problemas menores e enviar as principais conclusões à conversa principal.

Para começar, use agentes em paralelo em tarefas que envolvam principalmente leitura, como exploração, testes, triagem e elaboração de resumos. Tenha mais cuidado ao executar em paralelo tarefas que envolvam muitas alterações. Agentes que editam o código ao mesmo tempo podem gerar conflitos e exigir mais esforço de coordenação.

Termos básicos

O Codex usa alguns termos relacionados nos fluxos de trabalho com subagentes:

  • Fluxo de trabalho com subagentes: fluxo em que o Codex executa agentes em paralelo e combina seus resultados.
  • Subagente: agente que o Codex inicia para executar uma tarefa específica delegada a ele.
  • Conversa do agente: conversa em que um subagente realiza seu trabalho. Nos clientes compatíveis, você pode abrir essas conversas para acompanhar o progresso ou examinar os resultados.

Como iniciar fluxos de trabalho com subagentes

Peça diretamente que o Codex use subagentes ou execute agentes em paralelo. O Codex também pode delegar tarefas quando as instruções aplicáveis do projeto ou de uma habilidade solicitam a delegação.

Na prática, para iniciar o fluxo manualmente, dê instruções diretas, como “inicie dois agentes”, “delegue este trabalho em paralelo” ou “use um agente por item”. Os fluxos de trabalho com subagentes consomem mais tokens do que execuções equivalentes com um único agente, pois cada subagente faz suas próprias chamadas ao modelo e às ferramentas.

Um bom prompt para subagentes deve explicar como dividir o trabalho, se o Codex deve aguardar todos os agentes antes de prosseguir e que tipo de resumo ou resultado deve retornar.

Revise esta branch com subagentes em paralelo. Inicie um subagente para identificar riscos de segurança, outro para identificar lacunas na cobertura dos testes e um terceiro para avaliar a facilidade de manutenção do código. Aguarde até que os três terminem. Depois, resuma o que encontraram por categoria, citando os arquivos correspondentes.

Escolha do modelo e do esforço de raciocínio

Agentes diferentes precisam de configurações diferentes de modelo e raciocínio.

Se você não configurar o modelo do subagente nem model_reasoning_effort, o subagente herdará o modelo e o esforço de raciocínio do agente pai. Se o pedido de criação especificar um modelo ou um valor padrão em [agents] selecionar um modelo, e não houver esforço de raciocínio especificado ou configurado, o subagente usará o esforço padrão desse modelo. Para equilibrar inteligência, velocidade e custo em cada tarefa, solicite um modelo ou esforço de raciocínio específico no prompt, configure os valores padrão de [agents] em config.toml ou defina model e model_reasoning_effort diretamente no arquivo do agente personalizado. Por exemplo, use gpt-6-luna para verificações rápidas ou configure gpt-6.1-sol com um esforço maior para tarefas que exigem raciocínio mais aprofundado.

Para a maioria das tarefas no Codex, comece com gpt-6.1-sol se a conta com a qual você entrou ou o seu espaço de trabalho tiver acesso. Caso contrário, escolha um modelo disponível para você. Use gpt-6-luna se quiser uma opção mais rápida e de menor custo para tarefas mais simples dos subagentes.

Escolha do modelo

  • gpt-6.1-sol: comece com este modelo para agentes que executam tarefas exigentes. Use-o em trabalhos com várias etapas e requisitos ambíguos que exijam planejamento, uso de ferramentas, validação e acompanhamento até a conclusão em um contexto mais amplo.
  • gpt-6-luna: use para agentes rápidos com escopo delimitado que executam tarefas bem definidas, repetíveis ou em grande volume.

Esforço de raciocínio (model_reasoning_effort)

Para o GPT-6.1 Sol, use um esforço de raciocínio compatível com o cliente e o modelo selecionado. Ao configurar o modelo explicitamente, comece com high para o GPT-6 Luna ou low para o GPT-6 Astra. Ajuste o esforço de acordo com a tarefa, usando um nível compatível com o modelo selecionado.

  • ultra: use para obter o raciocínio mais aprofundado, se o modelo selecionado oferecer suporte a esse nível.
  • max e xhigh: use para tarefas que exigem um esforço de raciocínio especialmente alto, se o modelo selecionado oferecer suporte a esses níveis.
  • high: use quando um agente precisar acompanhar uma lógica complexa, verificar premissas ou analisar casos extremos (por exemplo, agentes de revisão ou de segurança).
  • medium: equilibra velocidade e profundidade.
  • low: use quando a tarefa for simples e a velocidade for a prioridade.

Um esforço de raciocínio maior aumenta o tempo de resposta e o consumo de tokens, mas pode melhorar a qualidade dos resultados em tarefas complexas. Para mais detalhes, consulte Modelos, Noções básicas de configuração e Referência de configuração.

Orquestração e controles de conversa

O ChatGPT ou o Codex coordena os agentes: inicia novos subagentes, encaminha instruções adicionais, aguarda os resultados e encerra as conversas dos agentes.

Quando vários agentes estão em execução, o Codex aguarda até que todos os resultados solicitados estejam disponíveis e então retorna uma resposta consolidada.

Nas versões locais atuais, o Codex inicia agentes após um pedido direto ou quando uma instrução aplicável do projeto ou de uma habilidade solicita isso.

Para ver como funciona, experimente este prompt no seu projeto:

Quero revisar os pontos abaixo no pull request atual, comparando esta branch com a main. Inicie um agente para cada ponto, aguarde até que todos terminem e resuma o resultado de cada item.
1. Problemas de segurança
2. Qualidade do código
3. Bugs
4. Condições de corrida
5. Falhas intermitentes nos testes
6. Facilidade de manutenção do código

Como gerenciar subagentes

  • Na atividade exibida na conversa principal, abra a conversa de um subagente para examinar seu trabalho.
  • Peça diretamente ao Codex que oriente ou interrompa um subagente em execução ou que encerre conversas de subagentes que já terminaram.

Aprovações e controles do sandbox

Os subagentes herdam a política de sandbox atual.

Os subagentes herdam o modo de permissão selecionado abaixo do editor de mensagens. Escolha o modo de permissão do turno do agente pai antes de pedir ao Codex que delegue tarefas.

Defina os controles de sandbox e aprovação na sessão do agente pai. As instruções de um agente personalizado podem pedir que ele evite alterações, mas não criam um sandbox separado de somente leitura.

Agentes personalizados

O Codex inclui os seguintes agentes integrados:

  • default: agente de uso geral usado quando nenhum agente mais específico é selecionado.
  • worker: agente voltado à execução de tarefas de implementação e correção.
  • explorer: agente que explora a base de código principalmente por meio de leitura.

Para definir seus próprios agentes personalizados, adicione arquivos TOML individuais em ~/.codex/agents/ para agentes pessoais ou em .codex/agents/ para agentes específicos de um projeto.

Cada arquivo define um agente personalizado. Agentes personalizados podem alterar configurações de modelo e instruções ou desabilitar recursos compatíveis. Eles herdam as permissões, o provedor e os servidores MCP do agente pai. O arquivo de um agente personalizado não pode substituir essas configurações.

Cada arquivo de agente personalizado deve definir:

  • name
  • description
  • developer_instructions

Se o arquivo de um agente personalizado definir model ou model_reasoning_effort, o valor do arquivo terá precedência. Antes de aplicar o arquivo, o Codex determina o valor de cada configuração nesta ordem: primeiro, o valor especificado no pedido de criação do agente, depois, o valor padrão correspondente em [agents] e, por fim, o valor do agente pai. Se o pedido de criação ou um valor padrão em [agents] selecionar um modelo, mas nenhum dos dois especificar o esforço de raciocínio, o Codex usará o esforço padrão desse modelo. Um arquivo de agente personalizado que define apenas model preserva o esforço determinado anteriormente. Defina também model_reasoning_effort no arquivo se o modelo selecionado não oferecer suporte a esse esforço ou se você quiser usar outro. Os subagentes herdam as habilidades do agente pai, e um agente personalizado pode desabilitar habilidades específicas com skills.config.

Configurações globais

As configurações globais de subagentes continuam na seção [agents] da sua configuração.

Campo Tipo Obrigatório Finalidade
agents.enabled boolean Não Habilita ou desabilita as ferramentas para trabalhar com vários agentes.
agents.max_concurrent_threads_per_session number Não Limita o número de conversas de agentes criados que podem ficar abertas ao mesmo tempo, excluindo a conversa principal.
agents.default_subagent_model string Não Define o modelo padrão para os agentes criados.
agents.default_subagent_reasoning_effort string Não Define o esforço de raciocínio padrão para os agentes criados.
agents.interrupt_message boolean Não Registra uma mensagem visível para o modelo quando o turno de um agente é interrompido.

Observações:

  • O valor padrão de agents.enabled é true. Defina-o como false para desabilitar as ferramentas para trabalhar com vários agentes.
  • Se você não definir agents.max_concurrent_threads_per_session, o Codex escolherá o valor padrão. Configurações existentes podem continuar usando agents.max_threads como nome alternativo para manter a compatibilidade com versões anteriores.
  • Os valores especificados no pedido de criação do agente têm precedência sobre agents.default_subagent_model e agents.default_subagent_reasoning_effort.
  • O valor padrão de agents.interrupt_message é true. Defina-o como false para omitir do contexto do agente a mensagem de interrupção que o modelo receberia.
  • Se um agente personalizado tiver o mesmo nome que um agente integrado, como explorer, o agente personalizado terá precedência.

Schema do arquivo de agente personalizado

Campo Tipo Obrigatório Finalidade
name string Sim Nome que o Codex usa para iniciar o agente ou fazer referência a ele.
description string Sim Descrição que orienta o leitor sobre quando o Codex deve usar o agente.
developer_instructions string Sim Instruções principais que definem o comportamento do agente.

Use model, model_reasoning_effort, model_reasoning_summary e model_verbosity para personalizar o comportamento do modelo. Consulte a referência de configuração para saber quais valores são aceitos.

Para restringir os recursos de um agente personalizado, defina como false as chaves de recursos compatíveis: features.shell_tool, features.apps, features.plugins, features.memories ou features.request_permissions_tool. Desabilite habilidades específicas com skills.config ou as habilidades incluídas no pacote com skills.bundled.enabled = false. Defina skills.include_instructions = false para omitir o bloco de instruções de habilidades incluído automaticamente. Os requisitos gerenciados continuam em vigor.

Outras configurações de sessão, como sandbox_mode, approval_policy, model_provider e mcp_servers, não substituem a configuração do agente pai quando são incluídas no arquivo de um agente personalizado. O nível de serviço também segue a preferência da sessão raiz. Configure os servidores MCP na sessão do agente pai para que o agente personalizado possa usá-los.

O Codex identifica o agente personalizado pelo campo name. A convenção mais simples é dar ao arquivo o mesmo nome do agente, mas o que determina a identidade do agente é o campo name.

Exemplos de agentes personalizados

Os agentes personalizados mais eficazes têm escopo delimitado e critérios claros de atuação. Atribua a cada agente uma tarefa bem definida, um conjunto de ferramentas adequado à tarefa e instruções que o mantenham dentro desse escopo.

Os exemplos usam o GPT-6.1 Sol quando a conta com a qual você entrou ou o seu espaço de trabalho tem acesso. Caso ele não esteja disponível, escolha um modelo ao qual você tenha acesso.

Exemplo 1: revisão de pull request

Neste exemplo, três agentes personalizados dividem a revisão, cada um com uma função específica:

  • pr_explorer mapeia a base de código e reúne evidências.
  • reviewer identifica riscos relacionados ao funcionamento correto do código, à segurança e aos testes.
  • docs_researcher consulta a documentação do framework ou da API por meio de um servidor MCP dedicado.

Configuração do projeto (.codex/config.toml):

[agents]
max_concurrent_threads_per_session = 8

[mcp_servers.openaiDeveloperDocs]
url = "https://developers.openai.com/mcp"

.codex/agents/pr-explorer.toml:

name = "pr_explorer"
description = "Read-only codebase explorer for gathering evidence before changes are proposed."
model = "gpt-6-luna"
model_reasoning_effort = "high"
developer_instructions = """
Stay in exploration mode.
Do not edit files.
Trace the real execution path, cite files and symbols, and avoid proposing fixes unless the parent agent asks for them.
Prefer fast search and targeted file reads over broad scans.
"""

.codex/agents/reviewer.toml:

name = "reviewer"
description = "PR reviewer focused on correctness, security, and missing tests."
model = "gpt-6.1-sol"
model_reasoning_effort = "medium"
developer_instructions = """
Review code like an owner.
Do not edit files.
Prioritize correctness, security, behavior regressions, and missing test coverage.
Lead with concrete findings, include reproduction steps when possible, and avoid style-only comments unless they hide a real bug.
"""

.codex/agents/docs-researcher.toml:

name = "docs_researcher"
description = "Documentation specialist that uses the docs MCP server to verify APIs and framework behavior."
model = "gpt-6-luna"
model_reasoning_effort = "high"
developer_instructions = """
Use the docs MCP server to confirm APIs, options, and version-specific behavior.
Return concise answers with links or exact references when available.
Do not make code changes.
"""

Essa configuração funciona bem com prompts como este:

Revise esta branch comparando-a com a main. Peça ao pr_explorer que mapeie os caminhos de execução afetados, ao reviewer que identifique riscos reais e ao docs_researcher que verifique as APIs do framework das quais a alteração depende.

Exemplo 2: depuração da integração do frontend

Essa divisão de tarefas é útil para investigar regressões na interface, fluxos que falham de forma intermitente no navegador ou bugs de integração que envolvem tanto o código do aplicativo quanto o produto em execução.

Configuração do projeto (.codex/config.toml):

[agents]
max_concurrent_threads_per_session = 6

[mcp_servers.chrome_devtools]
url = "http://localhost:3000/mcp"
startup_timeout_sec = 20

.codex/agents/code-mapper.toml:

name = "code_mapper"
description = "Read-only codebase explorer for locating the relevant frontend and backend code paths."
model = "gpt-6-luna"
model_reasoning_effort = "high"
developer_instructions = """
Map the code that owns the failing UI flow.
Do not edit files.
Identify entry points, state transitions, and likely files before the worker starts editing.
"""

.codex/agents/browser-debugger.toml:

name = "browser_debugger"
description = "UI debugger that uses browser tooling to reproduce issues and capture evidence."
model = "gpt-6.1-sol"
model_reasoning_effort = "medium"
developer_instructions = """
Reproduce the issue in the browser, capture exact steps, and report what the UI actually does.
Use browser tooling for screenshots, console output, and network evidence.
Do not edit application code.
"""

.codex/agents/ui-fixer.toml:

name = "ui_fixer"
description = "Implementation-focused agent for small, targeted fixes after the issue is understood."
model = "gpt-6-luna"
model_reasoning_effort = "high"
developer_instructions = """
Own the fix once the issue is reproduced.
Make the smallest defensible change, keep unrelated files untouched, and validate only the behavior you changed.
"""

[[skills.config]]
path = "/Users/me/.agents/skills/docs-editor/SKILL.md"
enabled = false

Essa configuração funciona bem com prompts como este:

Investigue por que a janela modal de configurações não salva as alterações. Peça ao browser_debugger que reproduza a falha e ao code_mapper que rastreie o caminho de execução responsável. Assim que estiver claro como a falha ocorre, peça ao ui_fixer que implemente a menor correção possível.