Context Gatekeeper
Objetivo
Reduzir o volume de tokens enviados ao modelo preservando apenas o essencial: o resumo das decisões, os próximos passos e os trechos mais recentes da conversa. Este skill roda em paralelo à sua rotina habitual, produzindo o artefato
context/current-summary.md que serve como contexto de substituição (em vez de reenviar toda a conversa).
Fluxo mínimo
- 1. Registre as trocas: a cada prompt/resposta, grave uma linha formatada
ROLE: texto em um arquivo de histórico (context/history.txt ou qualquer caminho acessível). Exemplo:
USER: Quero definir metas para o Q2
ASSISTANT: Fiz um plano com marcos e métricas
- 2. Execute o guardião:
python skills/context-gatekeeper/scripts/context_gatekeeper.py \
--history context/history.txt \
--summary context/current-summary.md
O script limita o resumo (até 6 sentenças por padrão), extrai atividades abertas (TODO, próxima ação, tarefa, follow-up) e inclui as últimas 4 jogadas para contexto imediato.
- 3. Use o resumo: antes de chamar a API (ou responder ao usuário), injete o conteúdo de
context/current-summary.md e cite os itens pendentes. Apenas depois disso, se for necessário, adicione as últimas trocas concretas (máximo de 2-3 mensagens) para clareza imediata. - Repita: atualize
context/history.txt com a nova resposta e execute o script novamente antes do próximo turno.
Argumentos do script
- -
--history: caminho do arquivo com o log das trocas (cada linha deve ser ROLE: texto). Usa STDIN se omitido. - INLINECODE7 : destino do resumo (substitui o arquivo se já existir).
- INLINECODE8 : limite de sentenças resumidas (padrão 6).
- INLINECODE9 : quantas trocas finais aparecerão na seção "Últimos turnos" (padrão 4).
Dica de operação diária
- - Monte um cron/loop leve que chame o script antes de cada resposta automática.
- Guarde um paralelo
context/pending-tasks.md e copie a seção "Pendências" do resumo para lá. - Sempre cite o caminho do resumo no parágrafo inicial da resposta (por exemplo: "Resumo compacto: ...") para facilitar auditoria.
Por quê isso funciona?
OpenClaw já persiste memórias em arquivos Markdown e executa
/compact quando precisa. Este skill assume a mesma disciplina: em vez de confiar nos 100+ mensagens antigas que ainda estão no contexto, você carrega um briefing de 1 página antes de cada chamada. Economiza tokens e mantém o modelo focado no que realmente importa (decisões, pendências, mudanças recentes).
上下文守门员
目标
减少发送给模型的令牌数量,仅保留核心内容:决策摘要、后续步骤以及对话中最新的片段。此技能与您的常规流程并行运行,生成context/current-summary.md工件,作为替代上下文(而非重新发送整个对话)。
最小流程
- 1. 记录交互:每次提示/响应时,在历史文件(context/history.txt或任何可访问路径)中记录一行格式为角色: 文本的内容。示例:
USER: 我想设定Q2的目标
ASSISTANT: 我制定了一个包含里程碑和指标的计划
- 2. 执行守门员:
bash
python skills/context-gatekeeper/scripts/context_gatekeeper.py \
--history context/history.txt \
--summary context/current-summary.md
脚本会限制摘要(默认最多6个句子),提取未完成的活动(待办事项、下一步行动、任务、跟进事项),并包含最近4轮交互作为即时上下文。
- 3. 使用摘要:在调用API(或回复用户)之前,注入context/current-summary.md的内容并引用待办事项。仅在此之后,如有必要,添加最近的具体交互(最多2-3条消息)以提供即时清晰度。
- 重复:用新的响应更新context/history.txt,并在下一轮之前再次运行脚本。
脚本参数
- - --history:包含交互日志的文件路径(每行应为角色: 文本格式)。如果省略,则使用标准输入。
- --summary:摘要的目标路径(如果文件已存在则替换)。
- --max-summary-sents:摘要句子的数量限制(默认为6)。
- --max-recent-turns:在最近轮次部分显示的最终交互次数(默认为4)。
日常操作提示
- - 设置一个轻量级的定时任务/循环,在每次自动回复之前调用脚本。
- 维护一个并行的context/pending-tasks.md文件,并将摘要中的待办事项部分复制到其中。
- 始终在回复的初始段落中引用摘要路径(例如:紧凑摘要:...),以便于审计。
为什么这有效?
OpenClaw已经将记忆持久化到Markdown文件中,并在需要时执行/compact。此技能采用相同的原则:与其依赖上下文中仍存在的100多条旧消息,不如在每次调用前加载一页简报。这样可以节省令牌,并使模型专注于真正重要的内容(决策、待办事项、近期变更)。