name: context-stages description: Abra isto para uma tarefa longa ou em vários estágios com o mod context-editor: quando abrir e fechar estágios, como comprimir um bloco finalizado, a marca de otimização, a telemetria e o que significam as linhas "Later, sua context_…" ou [context-editor].
Gerenciando seu contexto em estágios
O mod context-editor permite que você edite sua própria conversa. Você decide quando limpar, de acordo com o estado lógico do trabalho. A atenção se degrada à medida que o contexto cresce: comprima o que já foi processado assim que uma parte do trabalho for concluída. A compactação automática do host é apenas uma rede de segurança.
Ferramentas: context_tag, context_list, context_edit, context_note. Regras de curadoria (lições de falhas, correções, citações, itens de estado, linhas do host): context_list com "rules": true.
Estágios
Um estágio é um bloco lógico do seu trabalho: uma fase, uma subtarefa, uma correção.
- Abra-o no início do bloco:
{"tags":[{"op":"open","stage":"leia os arquivos de configuração"}]}. O bloco começa com a resposta que o abre; com"index"ele começa naquela linha decontext_list. - Feche-o quando o bloco estiver concluído e seu resultado for conhecido:
{"tags":[{"op":"close"}]}. O resultado nomeia as linhas do bloco#a..#b, seu tamanho e mídia, candidatos a limpeza, a telemetria e o conselho. Seus índices são atuais: você pode editar por eles imediatamente. - Os estágios são planos: abrir um estágio fecha primeiro o que está aberto.
- Para fechar um bloco que você nunca abriu:
{"tags":[{"op":"open","stage":"<nome>","index":<sua primeira linha>},{"op":"close"}]}. context_listmostra[stage ▶ nome]na primeira linha do estágio aberto,[block ▶ nome]..[block end]ao redor do último bloco fechado.
Comprimindo um bloco
Após um fechamento, revise o bloco como um todo e enfileire UM context_edit para o que nele está processado ou é excesso: saídas de ferramentas que você usou, leituras repetidas e obsoletas, becos sem saída, mídia que você já visualizou (uma descrição, se a tarefa permitir: summarize para um resultado de ferramenta, describe para uma imagem, documento ou texto colado no prompt da pessoa, cujas palavras digitadas permanecem literais; anexos que o host adicionou àquele prompt, como conteúdos de arquivo de @path e lembretes, vão junto, então releia arquivos se necessário). Se nada precisar de compressão, não enfileire nada.
Escreva um registro do estágio no lugar das linhas processadas, por exemplo, como o resumo de um collapse:
- objetivo do estágio;
- decisões, com o motivo, as palavras literais da pessoa por trás delas e por que outras opções foram rejeitadas;
- fatos verificados com suas fontes (caminhos, números de linha, versões, URLs);
- artefatos alterados (arquivos, commits, configurações);
- perguntas em aberto.
Pares sinalizados com ~ em context_list (Read, Grep, Glob) são reproduzíveis: reduza-os a um ponteiro (o quê, onde, o que foi encontrado; leia novamente se necessário). Todo o resto precisa de um resumo cuidadoso ou permanece: sondas ao vivo, relatórios de subagentes, conteúdo da web. As mensagens da pessoa, incluindo respostas às suas perguntas (AskUserQuestion), permanecem literais nesta sessão: context_edit e context_tag recusam uma edição que as cubra; divida o intervalo ao redor delas.
Geralmente mantenha literais as regras e habilidades ainda em vigor e as conclusões que você precisará em seguida. Um alvo [pin] não pode ser editado; os pins são seus para definir e remover (o mod fixa apenas o documento de uma transferência ou resumo inicial).
As edições são aplicadas quando seu turno termina: termine-o com uma linha de status, e a sessão continua sozinha (context_edit fornece as opções). Uma aplicação reescreve o cache do prompt uma vez: agrupe as edições de um bloco em uma única chamada. "keep_cache": true mantém o cache até a edição mais antiga se ela estiver dentro das últimas ~20 posições quando o turno terminar (linha Cache:). Suas chamadas context_* saem da conversa; tags e notas permanecem.
Becos sem saída
Quando você abandonar um ramo, marque-o imediatamente: etiquete o trecho como disposable com uma nota, {"op":"add","kind":"disposable","index":<primeira linha>,"to":<última linha>,"note":"beco sem saída: X falha porque Y"} (o intervalo contém cada chamada de ferramenta com seu resultado; context_tag avisa quando cobre mensagens da pessoa). Uma única linha de texto sua ou uma saída por ref/tool_use_id também funciona. As substituições são enfileiradas quando você fecha o estágio ou avança a partir de um bloco que marcou; um intervalo se torna um collapse.
Marca de otimização
Quando você terminar seu turno para a pessoa e o bloco estiver concluído, termine sua resposta com esta linha, sozinha:
[context-editor: optimize]
- Apenas sozinha na última linha não vazia; no meio do texto, compartilhando sua linha, ou no turno
/compactela não faz nada. - Ela fecha o estágio aberto (se nenhum: o bloco desde o último fechado; um estágio fechado pela ferramenta naquele turno permanece como bloco). O bloco então espera; nada é comprimido.
- O próximo prompt nomeia o bloco: comprima-o naquele turno se o trabalho avançar para o próximo estágio, senão deixe-o. Abrir um estágio relata-o com índices; isso ou um
context_editaceito encerra a espera e enfileira suas substituiçõesdisposable. - Seguindo um plano por conta própria: abra um estágio por fase; no próximo comprima o bloco anterior e termine o turno com uma linha de status; a sessão continua. No meio do trabalho, feche estágios pela ferramenta.
Telemetria
context_list com "count":0 fornece apenas o cabeçalho (sua descrição lista as linhas). Effect: … M reread(s) of compressed content: muitos significam que você está comprimindo demais. Os tamanhos são estimativas calibradas (approx. até serem conhecidos). Uma linha [context-editor: suggestion] (à medida que o contexto cresce, ou com o próximo prompt da pessoa após muita leitura) propõe um lote com ganho, custo de cache e veredito; ela apenas informa. Decida pelo estado do trabalho, não pelos números.
Candidatos
[review: big]saída grande;[review: search]resultado de pesquisa (após alguns turnos);[review: stale]uma leitura de um arquivo que você editou desde então: seu conteúdo está desatualizado, reduza-o a um ponteiro;[review: superseded]uma leitura de um arquivo cuja leitura posterior mostrou conteúdo alterado: também desatualizado;[review: duplicate]uma cópia anterior da mesma saída ou intervalo de leitura: descarte ou reduza;[review: agent]seu próprio marcador (opcionalttl_turns). Uma revisão sugere uma olhada, não uma edição.[disposable: note]: sua própria substituição (veja Becos sem saída).
O relatório de fechamento lista os candidatos do bloco por motivo, conta seus pares ~ e fornece textos de substituição prontos para leituras desatualizadas e duplicadas.
Slot de estado
Mantenha o estado da tarefa (objetivo, plano, concluído, próximo) em UMA de suas próprias linhas de texto etiquetada como state: {"tags":[{"op":"add","kind":"state","index":<linha>}]}. Atualize-a no local com uma rewrite daquela linha, nunca anexando um novo estado no final. Ou mantenha-o como itens: context_edit com {"op":"state","changes":[{"do":"add","kind":"plan","text":"…"}]} (set, mark prejudicial/desatualizado, unmark, remove por id como p3); a aplicação reconstrói o slot a partir deles, e enquanto ele tem itens apenas a operação state o altera. A tag segue a linha reconstruída. Uma nova tag state move o slot. Cada atualização é uma aplicação: faça-a junto com as edições de um bloco, não sozinha.
Notas
context_note mantém notas sem custo de token (sua descrição fornece as operações e onde elas aparecem).
- Marque imediatamente o que descartar ou comprimir depois, e como:
{"notes":[{"op":"add","ref":"last","text":"descarte após a correção ser verificada"}]}. "remind_in_turns":2traz uma nota de volta uma vez, dois turnos depois. Vincule linhas pelo que elas contêm.
Escreva sobre o conteúdo, não números de linha: os índices mudam após uma aplicação. Um fechamento de estágio lista as notas em seu bloco.
Linhas comprimidas e textos do mod
Texto iniciado com Later, sua context_edit (ou context_tag) é sua própria substituição: você leu o original ali, depois o comprimiu para economizar contexto. Você fez a substituição; a fonte que ela nomeia (the full output of Read docs/x.md) diz de onde veio seu conteúdo. Antes de chamar algo nele de inventado, abra o arquivo.
… summarize call replaced the full output of <source> you had read here …,… collapse call replaced these N rows you had read (what they held) …(sua entradacollapsedna chamada lista o mesmo), e similarmenterewrite,describe: seu texto segue os dois pontos. Após umdescribeno prompt de uma pessoa, o texto dela segue o seu. Os mais antigos leem[context-editor] you read …, then replaced ….(original: <path>, open with Read),(media: <path>),media carried as files: o arquivo.Readapenas o que você precisa; ele volta no final da conversa.- Texto que começa com
[context-editoroucontext-editor:é do mod, não da pessoa ou de uma ferramenta.context-editor: applied N edit(s): …: o relatório de aplicação; as chamadascontext_*que fizeram as substituições são removidas, mas o que você citou de seus resultados é real. Uma linha/compactcujos argumentos começam comcontext-editor:é um comando do mod;… repair the resumed conversation …: o mod descartou respostas que uma retomada havia carregado duas vezes; pensamentos anteriores se foram. id cN,reminder from your note nN,[context-editor: suggestion],[context-editor: N chars cut], um prompt de retomada que você definiu, o turno/compact, um documento de transferência: textos de serviço do mod.