stevengaojn2010/agent-pulse

Uma habilidade OpenClaw leve que relata a carga e a capacidade de interrupção do agente.

O que é agent-pulse?

Agent Pulse é uma habilidade projetada para fornecer um relatório conciso e padronizado sobre o estado atual de um agente, cobrindo sua carga de trabalho e capacidade de ser interrompido. O objetivo é permitir verificações de status rápidas e consistentes, seja para um desenvolvedor ou outro sistema, sem influenciar artificialmente o estado do agente. A habilidade responde a gatilhos específicos de linguagem natural (como "você está ocupado?") ou comandos explícitos como "/pulse", retornando um cartão de pulso fixo com campos como `status`, `interruptibility` e `acceptNewTask`. A decisão é baseada em sinais de baixo custo do ambiente de execução (como ferramentas ativas, mensagens na fila ou dependências pendentes) e, em seguida, avaliada por um script Python incluído para mapear esses sinais em um resultado de pulso. A ferramenta prioriza regras determinísticas e evita inferências não fundamentadas, tornando-a ideal para plataformas OpenClaw onde a transparência e a previsibilidade do estado do agente são importantes.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add stevengaojn2010/agent-pulse

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Agent Pulse

Visão geral

Use esta habilidade como um protocolo estrito de verificação de status. Retorne um cartão de pulso compacto sobre a carga atual e a capacidade de interrupção, com palavras e campos fixos.

O padrão é o status basal, não o status autoinfluenciado. A própria solicitação de pulso não deve fazer o agente parecer mais ocupado do que estava imediatamente antes da verificação.

Gatilhos padrão

Trate estes como solicitações diretas de pulso:

  • Agent Pulse
  • /pulse
  • 你现在忙吗
  • 忙不忙
  • 现在方便吗
  • 现在负荷怎么样
  • 能接新任务吗
  • 能插个任务吗
  • 现在能接活吗

Se o usuário usar explicitamente Agent Pulse ou /pulse, sempre retorne o formato fixo do cartão de pulso e não mude para explicação conversacional, a menos que seja solicitado.

Contrato de saída fixo

Retorne exatamente estas quatro linhas após o rótulo da primeira linha:

Agent Pulse
status: <idle|light|busy|blocked|unknown>
interruptibility: <high|medium|low>
acceptNewTask: <yes|caution|no>
reason: <motivo curto>

Regras:

  • Sem parágrafos extras por padrão
  • Sem marcadores por padrão
  • Sem explicações longas, a menos que o usuário pergunte o porquê
  • Mantenha reason com menos de 12 palavras quando possível

Significados dos status

  • idle: não ocupado ativamente; fácil de interromper
  • light: ativo, mas sem carga; pode aceitar trabalho
  • busy: atualmente ocupado; a interrupção deve ser minimizada
  • blocked: aguardando dependência/ferramenta/humano
  • unknown: sinaliza informações insuficientes ou conflitantes

Fluxo de decisão

1. Coletar sinais de baixo custo

Use apenas sinais baratos primeiro:

  • tarefa ou fluxo em execução
  • mensagens na fila
  • estado bloqueado ou de espera
  • recência de atividade recente
  • sinais óbvios de acúmulo
  • projeto ativo sendo avançado
  • itens de ação pendentes ainda não entregues
  • trabalho já iniciado, mesmo que nenhuma ferramenta pesada esteja em execução no momento
  • trabalho crítico para lançamento ou com prazo próximo
  • atividade atual da ferramenta ou execução quando visível
  • se o agente está aguardando o usuário ou uma dependência externa

Para ambientes do estilo OpenClaw, prefira sinais de runtime visíveis em vez de introspecção. Boas fontes incluem atividade recente de ferramentas, execuções em segundo plano pendentes, trabalho não entregue já em andamento e uma verificação rápida de session_status quando necessário. Não conte notificações de conclusão assíncrona de rotina ou a própria consulta de pulso como evidência de carga de trabalho.

2. Avaliar com o script incluído

Use scripts/pulse_eval.py para mapear o JSON de sinal no resultado do pulso.

3. Retornar cartão fixo

Se o gatilho for Agent Pulse ou /pulse, gere apenas o cartão fixo. Se o gatilho for linguagem natural, o cartão fixo ainda é preferido, a menos que o usuário queira claramente uma explicação.

Diretrizes de segurança

  • Prefira regras determinísticas em vez de julgamento do modelo
  • Não faça afirmações exageradas de precisão
  • Não infira estado interno oculto sem evidências
  • Se os sinais forem fracos, use unknown
  • Use no apenas para estados genuinamente sobrecarregados ou de voo arriscados
  • Não seja proativo; exija um gatilho de pulso explícito por padrão
  • Não trate a consulta de pulso em si como evidência de carga de trabalho

Padrões de implantação

Para reproduzir o comportamento pretendido do produto em diferentes usuários/ambientes:

  • disparar apenas em solicitações de pulso explícitas
  • retornar o cartão de pulso fixo por padrão
  • preferir status basal em vez de status autoinfluenciado
  • usar regras primeiro, raciocínio do modelo em segundo lugar
  • manter a saída compacta, a menos que o usuário pergunte o porquê

Recursos

scripts/

  • scripts/pulse_eval.py converte sinais simples em um resultado de pulso
  • scripts/render_pulse.py renderiza o cartão de saída fixo exato

references/

  • references/rules.md contém os limites de classificação e a política de saída
  • references/openclaw-signals.md mostra uma receita prática de mapeamento de sinais para runtimes do estilo OpenClaw

Habilidades Relacionadas