O OpenClaw cria um prompt de sistema personalizado para cada execução de agente. O prompt é controlado pelo OpenClaw e não usa o prompt padrão do pi-coding-agent. O prompt é montado pelo OpenClaw e injetado em cada execução de agente. A montagem do prompt tem três camadas:Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
buildAgentSystemPromptrenderiza o prompt a partir de entradas explícitas. Ele deve permanecer um renderizador puro e não deve ler a configuração global diretamente.resolveAgentSystemPromptConfigresolve controles de prompt baseados em configuração, como exibição do proprietário, dicas de TTS, aliases de modelo, modo de citação de memória e modo de delegação de subagente para um agente específico.- Adaptadores de runtime (incorporado, CLI, pré-visualizações de comando/exportação, Compaction) coletam fatos ativos, como ferramentas, estado do sandbox, capacidades do canal, arquivos de contexto e contribuições de prompt do provedor, depois chamam a fachada de prompt configurada.
- substituir um pequeno conjunto de seções centrais nomeadas (
interaction_style,tool_call_style,execution_bias) - injetar um prefixo estável acima do limite do cache de prompt
- injetar um sufixo dinâmico abaixo do limite do cache de prompt
before_prompt_build para compatibilidade ou mudanças de prompt realmente globais,
não para comportamento normal de provedor.
A sobreposição da família OpenAI GPT-5 mantém a regra central de execução pequena e adiciona
orientações específicas do modelo para fixação de persona, saída concisa, disciplina de ferramentas,
busca paralela, cobertura de entregáveis, verificação, contexto ausente e
higiene de ferramentas de terminal.
Estrutura
O prompt é intencionalmente compacto e usa seções fixas:- Ferramentas: lembrete de fonte da verdade de ferramenta estruturada mais orientação de uso de ferramentas em runtime.
- Viés de execução: orientação compacta de acompanhamento: agir no turno em solicitações acionáveis, continuar até concluir ou ficar bloqueado, recuperar-se de resultados fracos de ferramentas, verificar estado mutável ao vivo e verificar antes de finalizar.
- Segurança: breve lembrete de proteções para evitar comportamento de busca de poder ou contorno de supervisão.
- Skills (quando disponíveis): informa ao modelo como carregar instruções de Skills sob demanda.
- Controle do OpenClaw: instrui o modelo a preferir a ferramenta
gatewaypara trabalho de configuração/reinicialização e evitar inventar comandos de CLI. - Autoatualização do OpenClaw: como inspecionar a configuração com segurança usando
config.schema.lookup, aplicar patches na configuração comconfig.patch, substituir a configuração completa comconfig.applye executarupdate.runsomente mediante solicitação explícita do usuário. A ferramentagateway, exclusiva do proprietário, também se recusa a reescrevertools.exec.ask/tools.exec.security, incluindo aliases legadostools.bash.*que normalizam para esses caminhos exec protegidos. - Workspace: diretório de trabalho (
agents.defaults.workspace). - Documentação: caminho local para docs/source do OpenClaw e quando lê-los.
- Arquivos do workspace (injetados): indica que arquivos de bootstrap estão incluídos abaixo.
- Sandbox (quando habilitado): indica runtime em sandbox, caminhos do sandbox e se exec elevado está disponível.
- Data e hora atuais: apenas fuso horário (estável para cache; o relógio ao vivo vem de
session_status). - Diretivas de saída do assistente: sintaxe compacta de anexo, nota de voz e tag de resposta.
- Heartbeats: prompt de Heartbeat e comportamento de confirmação, quando Heartbeats estão habilitados para o agente padrão.
- Runtime: host, SO, Node, modelo, raiz do repositório (quando detectada), nível de raciocínio (uma linha).
- Raciocínio: nível atual de visibilidade + dica do alternador /reasoning.
- use Cron para acompanhamento futuro (
check back later, lembretes, trabalho recorrente) em vez de loops de espera comexec, truques de atrasoyieldMsou polling repetido deprocess - use
exec/processsomente para comandos que começam agora e continuam executando em segundo plano - quando o despertar automático por conclusão estiver habilitado, inicie o comando uma vez e conte com o caminho de despertar baseado em push quando ele emitir saída ou falhar
- use
processpara logs, status, entrada ou intervenção quando precisar inspecionar um comando em execução - se a tarefa for maior, prefira
sessions_spawn; a conclusão do subagente é baseada em push e se anuncia automaticamente de volta ao solicitante - não faça polling de
subagents list/sessions_listem loop apenas para esperar a conclusão
agents.defaults.subagents.delegationMode pode reforçar essa orientação. O
modo padrão suggest mantém o incentivo básico. prefer adiciona uma seção dedicada
Delegação de subagente instruindo o agente principal a atuar como um coordenador responsivo
e encaminhar qualquer coisa mais envolvida do que uma resposta direta por meio de
sessions_spawn. Isso é apenas prompt; a política de ferramentas ainda controla se
sessions_spawn está disponível.
Quando a ferramenta experimental update_plan está habilitada, Ferramentas também instrui o
modelo a usá-la somente para trabalho não trivial em várias etapas, manter exatamente uma
etapa in_progress e evitar repetir o plano inteiro após cada atualização.
As proteções de segurança no prompt de sistema são consultivas. Elas orientam o comportamento do modelo, mas não impõem política. Use política de ferramentas, aprovações de exec, sandboxing e allowlists de canal para imposição rígida; operadores podem desativá-las por design.
Em canais com cartões/botões de aprovação nativos, o prompt de runtime agora instrui o
agente a usar primeiro essa IU de aprovação nativa. Ele só deve incluir um comando manual
/approve quando o resultado da ferramenta disser que aprovações por chat não estão disponíveis ou
que a aprovação manual é o único caminho.
Modos de prompt
O OpenClaw pode renderizar prompts de sistema menores para subagentes. O runtime define umpromptMode para cada execução (não uma configuração visível ao usuário):
full(padrão): inclui todas as seções acima.minimal: usado para subagentes; omite Recuperação de memória, Autoatualização do OpenClaw, Aliases de modelo, Identidade do usuário, Diretivas de saída do assistente, Mensagens, Respostas silenciosas e Heartbeats. Ferramentas, Segurança, Skills quando fornecidas, Workspace, Sandbox, Data e hora atuais (quando conhecidas), Runtime e contexto injetado permanecem disponíveis.none: retorna apenas a linha de identidade base.
promptMode=minimal, prompts extras injetados são rotulados como Contexto de subagente
em vez de Contexto de chat em grupo.
Para execuções de resposta automática de canal, o OpenClaw pode omitir a seção genérica Respostas silenciosas
quando o contexto de chat direto/em grupo já inclui o comportamento
NO_REPLY resolvido e específico da conversa. Isso evita repetir a mecânica de tokens
tanto no prompt de sistema global quanto no contexto do canal.
Snapshots de prompt
O OpenClaw mantém snapshots de prompt commitados para o caminho feliz do runtime Codex emtest/fixtures/agents/prompt-snapshots/codex-runtime-happy-path/. Eles renderizam
parâmetros selecionados de thread/turno do servidor de aplicativo, mais uma pilha reconstruída de camadas de prompt
vinculadas ao modelo para turnos diretos no Telegram, grupos do Discord e Heartbeat. Essa pilha
inclui uma fixture fixada de prompt de modelo Codex gpt-5.5 gerada a partir do formato de
catálogo/cache de modelos do Codex, o texto de desenvolvedor de permissões do caminho feliz do Codex,
instruções de desenvolvedor do OpenClaw, instruções de modo de colaboração com escopo de turno
quando o OpenClaw as fornece, entrada do turno do usuário e referências às especificações dinâmicas de ferramentas.
Atualize a fixture fixada de prompt de modelo Codex com
pnpm prompt:snapshots:sync-codex-model. Por padrão, o script procura
o cache de runtime do Codex em $CODEX_HOME/models_cache.json, depois em
~/.codex/models_cache.json e só então recorre à convenção de checkout Codex do mantenedor
em ~/code/codex/codex-rs/models-manager/models.json. Se
nenhuma dessas fontes existir, o comando sai sem alterar a fixture commitada.
Passe --catalog <path> para atualizar a partir de um arquivo models_cache.json
ou models.json específico.
Esses snapshots ainda não são uma captura bruta byte a byte da solicitação OpenAI. O Codex
pode adicionar contexto de workspace controlado pelo runtime, como AGENTS.md, contexto de ambiente,
memórias, instruções de app/plugin e instruções integradas do modo de colaboração
Default dentro do runtime Codex depois que o OpenClaw envia
parâmetros de thread e turno.
Regere-os com pnpm prompt:snapshots:gen e verifique desvios com
pnpm prompt:snapshots:check. A CI executa a verificação de desvio no shard de limite
adicional para que mudanças de prompt e atualizações de snapshot permaneçam anexadas ao mesmo
PR.
Injeção de bootstrap do workspace
Arquivos de bootstrap são aparados e anexados em Contexto do projeto para que o modelo veja contexto de identidade e perfil sem precisar de leituras explícitas:AGENTS.mdSOUL.mdTOOLS.mdIDENTITY.mdUSER.mdHEARTBEAT.mdBOOTSTRAP.md(somente em workspaces totalmente novos)MEMORY.mdquando presente
HEARTBEAT.md é omitido em execuções normais quando
Heartbeats estão desabilitados para o agente padrão ou
agents.defaults.heartbeat.includeSystemPromptSection é false. Mantenha os arquivos injetados
concisos, especialmente MEMORY.md. MEMORY.md deve permanecer um
resumo curado de longo prazo; notas diárias detalhadas pertencem a memory/*.md, onde
memory_search e memory_get podem recuperá-las sob demanda. Arquivos MEMORY.md
grandes demais aumentam o uso do prompt e podem ser parcialmente injetados por causa
dos limites de arquivos de bootstrap abaixo.
Quando uma sessão é executada no harness Codex nativo, o Codex carrega AGENTS.md
por meio de sua própria descoberta de documentos de projeto. O OpenClaw ainda resolve os arquivos
de bootstrap restantes e os encaminha como instruções de configuração do Codex, então SOUL.md,
TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md, BOOTSTRAP.md e
MEMORY.md mantêm o mesmo papel de contexto de workspace sem duplicar
AGENTS.md.
Arquivos diários
memory/*.md não fazem parte do Contexto do projeto de bootstrap normal. Em turnos comuns, eles são acessados sob demanda por meio das ferramentas memory_search e memory_get, portanto não contam contra a janela de contexto, a menos que o modelo os leia explicitamente. Turnos simples /new e /reset são a exceção: o runtime pode prefixar memória diária recente como um bloco único de contexto de inicialização para esse primeiro turno.agents.defaults.bootstrapMaxChars (padrão: 12000). O total de conteúdo de bootstrap injetado
entre arquivos é limitado por agents.defaults.bootstrapTotalMaxChars
(padrão: 60000). Arquivos ausentes injetam um breve marcador de arquivo ausente. Quando ocorre truncamento,
o OpenClaw pode injetar um aviso conciso de prompt de sistema; controle isso com
agents.defaults.bootstrapPromptTruncationWarning (off, once, always;
padrão: once). Contagens brutas/injetadas detalhadas permanecem em diagnósticos como
/context, /status, doctor e logs.
Para arquivos de memória, truncamento não é perda de dados: o arquivo permanece intacto no disco,
mas o modelo só vê a cópia injetada encurtada até ler ou pesquisar
a memória diretamente. Se MEMORY.md for truncado repetidamente, destile-o em um
resumo durável mais curto e mova o histórico detalhado para memory/*.md, ou
aumente intencionalmente os limites de bootstrap.
Sessões de subagente injetam apenas AGENTS.md e TOOLS.md (outros arquivos de bootstrap
são filtrados para manter o contexto do subagente pequeno).
Hooks internos podem interceptar esta etapa por meio de agent:bootstrap para modificar ou substituir
os arquivos de bootstrap injetados (por exemplo, trocar SOUL.md por uma persona alternativa).
Se você quiser fazer o agente soar menos genérico, comece com
Guia de personalidade SOUL.md.
Para inspecionar quanto cada arquivo injetado contribui (bruto vs. injetado, truncamento, além da sobrecarga do esquema da ferramenta), use /context list ou /context detail. Consulte Contexto.
Tratamento de tempo
O prompt do sistema inclui uma seção dedicada Data e hora atuais quando o fuso horário do usuário é conhecido. Para manter o cache do prompt estável, agora ele inclui apenas o fuso horário (sem relógio dinâmico nem formato de hora). Usesession_status quando o agente precisar da hora atual; o cartão de status
inclui uma linha de timestamp. A mesma ferramenta pode opcionalmente definir uma substituição de modelo por sessão
(model=default limpa essa substituição).
Configure com:
agents.defaults.userTimezoneagents.defaults.timeFormat(auto|12|24)
Skills
Quando existirem Skills elegíveis, o OpenClaw injeta uma lista de Skills disponíveis compacta (formatSkillsForPrompt) que inclui o caminho do arquivo para cada Skill. O
prompt instrui o modelo a usar read para carregar o SKILL.md no local listado
(workspace, gerenciado ou empacotado). Se nenhuma Skill for elegível, a seção
Skills é omitida.
A elegibilidade inclui gates de metadados de Skills, verificações de ambiente/configuração em tempo de execução
e a lista efetiva de Skills permitidas do agente quando agents.defaults.skills ou
agents.list[].skills está configurado.
Skills empacotadas por Plugin são elegíveis apenas quando o Plugin proprietário está habilitado.
Isso permite que Plugins de ferramentas exponham guias operacionais mais aprofundados sem incorporar toda
essa orientação diretamente em cada descrição de ferramenta.
- Padrão global:
skills.limits.maxSkillsPromptChars - Substituição por agente:
agents.list[].skillsLimits.maxSkillsPromptChars
agents.defaults.contextLimits.*agents.list[].contextLimits.*
memory_get, resultados de ferramentas ao vivo e atualizações de AGENTS.md pós-Compaction.
Documentação
O prompt do sistema inclui uma seção Documentação. Quando a documentação local está disponível, ela aponta para o diretório local de documentação do OpenClaw (docs/ em um checkout do Git ou a documentação do pacote npm
empacotado). Se a documentação local não estiver disponível, ela recorre a
https://docs.openclaw.ai.
A mesma seção também inclui o local do código-fonte do OpenClaw. Checkouts do Git expõem a raiz local
do código-fonte para que o agente possa inspecionar o código diretamente. Instalações por pacote incluem a URL
do código-fonte no GitHub e orientam o agente a revisar o código-fonte lá sempre que a documentação estiver incompleta ou
desatualizada. O prompt também observa o espelho público da documentação, o Discord da comunidade e o ClawHub
(https://clawhub.ai) para descoberta de Skills. Ele orienta o modelo a
consultar primeiro a documentação para comportamento, comandos, configuração ou arquitetura do OpenClaw, e a
executar openclaw status por conta própria quando possível (perguntando ao usuário apenas quando não tiver acesso).
Especificamente para configuração, ele orienta os agentes para a ação da ferramenta gateway
config.schema.lookup para documentação e restrições exatas no nível de campo, depois para
docs/gateway/configuration.md e docs/gateway/configuration-reference.md
para orientação mais ampla.