// configurar · 03

Canais e gateway

O gateway é channel-agnóstico: uma abstração Channel (poll/send/allowed) com um bot por agente, sessões persistentes e retomáveis, e go/no-go por chat. okami gatewa…

Modelo do gateway

Cada agente tem um Channel (seu bot) → sessões por chat (histórico injetado como contexto = continuidade) → run_task no workspace do agente. As sessões usam um transcript append-only de 2 camadas (estilo OpenClaw): um mapa pequeno de metadados reescrito atomicamente + um .jsonl em árvore, uma linha por turno. Um crash perde no máximo a última linha — e o restart não perde o contexto.

canalestado
terminalTUI de tela cheia + REPL concorrente
telegramDM + grupo + voz (Whisper local → Edge TTS, pt-BR)
slack · discord · mattermostadapters sobre a mesma interface Channel
paperclipcontrol plane que acorda o agente num heartbeat

Telegram

O token do bot vai no agent.yaml de cada agente (channels.telegram.token); allow_chats restringe quem pode falar. Com o extra voice, áudio recebido é transcrito por Whisper local e a resposta volta em áudio via Edge TTS.

uv sync --extra voice    # habilita STT/TTS
okami gateway            # sobe um long-poll por agente

Slash commands no chat

/new · /reset limpam a conversa; /stop cancela de verdade (checado a cada passo do harness); /yolo · /normal alternam a auto-aprovação por sessão. Concorrência: uma tarefa por sessão; mensagem nova enquanto ocupado entra na fila.

Paperclip (heartbeat)

O Paperclip é um control plane que acorda o agente num pulso. okami heartbeat faz UMA batida:

  1. GET /api/agents/me e lista as issues atribuídas.
  2. Checkout da issue (409 = de outro agente; nunca repete).
  3. Monta o contexto e roda no harness (run_task).
  4. PATCH do status: done · blocked · in_review.

Go/No-Go vira um POST .../interactions (request_confirmation): --mode defer adia ações sensíveis para confirmação humana. As env do Paperclip são injetadas por-run — você não preenche à mão.

Abrir esta página nos docs interativos