Lobster
Lobster é um shell de workflow que permite ao OpenClaw executar sequências de ferramentas em várias etapas como uma única operação determinística, com checkpoints de aprovação explícitos.Hook
Seu assistente pode construir as ferramentas que o gerenciam. Peça um workflow e, 30 minutos depois, você tem uma CLI mais pipelines que rodam como uma única chamada. Lobster é a peça que faltava: pipelines determinísticos, aprovações explícitas e estado retomável.Why
Hoje, workflows complexos exigem muitas chamadas de ferramentas de ida e volta. Cada chamada custa tokens, e o LLM precisa orquestrar cada etapa. Lobster move essa orquestração para um runtime tipado:- Uma chamada em vez de muitas: o OpenClaw executa uma chamada de ferramenta do Lobster e obtém um resultado estruturado.
- Aprovações integradas: efeitos colaterais (enviar e-mail, postar comentário) interrompem o workflow até serem explicitamente aprovados.
- Retomável: workflows interrompidos retornam um token; aprove e retome sem reexecutar tudo.
Why a DSL instead of plain programs?
Lobster é intencionalmente pequeno. O objetivo não é “uma nova linguagem”, e sim uma especificação de pipeline previsível e amigável para IA, com aprovações de primeira classe e tokens de retomada.- Aprovar/retomar é nativo: um programa normal pode solicitar um humano, mas não consegue pausar e retomar com um token durável sem você inventar esse runtime.
- Determinismo + auditabilidade: pipelines são dados, então é fácil registrar logs, fazer diff, reproduzir e revisar.
- Superfície restrita para IA: uma gramática pequena + encadeamento JSON reduz caminhos de código “criativos” e torna a validação realista.
- Política de segurança embutida: timeouts, limites de saída, verificações de sandbox e allowlists são aplicados pelo runtime, não por cada script.
- Ainda programável: cada etapa pode chamar qualquer CLI ou script. Se você quiser JS/TS, gere arquivos
.lobstera partir de código.
Como funciona
O OpenClaw inicia a CLI locallobster em modo de ferramenta e analisa um envelope JSON a partir do stdout.
Se o pipeline pausar para aprovação, a ferramenta retorna um resumeToken para você continuar depois.
Padrão: CLI pequena + pipes JSON + aprovações
Crie comandos pequenos que falem JSON e, depois, encadeie-os em uma única chamada do Lobster. (Nomes de comandos de exemplo abaixo — substitua pelos seus.)Etapas de LLM somente JSON (llm-task)
Para workflows que precisam de uma etapa estruturada de LLM, habilite a ferramenta de plugin opcionalllm-task e chame-a a partir do Lobster. Isso mantém o workflow
determinístico enquanto ainda permite classificar/resumir/redigir com um modelo.
Habilite a ferramenta:
Arquivos de workflow (.lobster)
O Lobster pode executar arquivos de workflow YAML/JSON com os camposname, args, steps, env, condition e approval. Em chamadas de ferramenta do OpenClaw, defina pipeline para o caminho do arquivo.
stdin: $step.stdoutestdin: $step.jsonpassam a saída de uma etapa anterior.condition(ouwhen) pode condicionar etapas com base em$step.approved.
Instalar o Lobster
Instale a CLI do Lobster no mesmo host que executa o Gateway do OpenClaw (veja o repositório do Lobster) e garanta quelobster esteja no PATH.
Se você quiser usar um local de binário personalizado, passe um lobsterPath absoluto na chamada da ferramenta.
Habilitar a ferramenta
Lobster é uma ferramenta de plugin opcional (não habilitada por padrão). Recomendado (aditivo, seguro):tools.allow: ["lobster"] a menos que você pretenda executar em modo restritivo de allowlist.
Nota: allowlists são opt-in para plugins opcionais. Se sua allowlist nomear apenas
ferramentas de plugin (como lobster), o OpenClaw mantém as ferramentas centrais habilitadas. Para restringir ferramentas centrais,
inclua também na allowlist as ferramentas ou grupos centrais desejados.
Exemplo: triagem de e-mail
Sem Lobster:Parâmetros da ferramenta
run
Executa um pipeline em modo de ferramenta.
resume
Continua um workflow interrompido após aprovação.
Entradas opcionais
lobsterPath: Caminho absoluto para o binário do Lobster (omita para usarPATH).cwd: Diretório de trabalho para o pipeline (o padrão é o diretório de trabalho do processo atual).timeoutMs: Encerra o subprocesso se exceder essa duração (padrão: 20000).maxStdoutBytes: Encerra o subprocesso se stdout exceder esse tamanho (padrão: 512000).argsJson: String JSON passada paralobster run --args-json(apenas arquivos de workflow).
Envelope de saída
O Lobster retorna um envelope JSON com um de três status:ok→ concluído com sucessoneeds_approval→ pausado;requiresApproval.resumeTokené necessário para retomarcancelled→ explicitamente negado ou cancelado
content (JSON formatado) quanto em details (objeto bruto).
Aprovações
SerequiresApproval estiver presente, inspecione o prompt e decida:
approve: true→ retomar e continuar os efeitos colateraisapprove: false→ cancelar e finalizar o workflow
approve --preview-from-stdin --limit N para anexar uma prévia JSON às solicitações de aprovação sem cola personalizada de jq/heredoc. Tokens de retomada agora são compactos: o Lobster armazena o estado de retomada do workflow em seu diretório de estado e devolve uma pequena chave de token.
OpenProse
OpenProse combina bem com o Lobster: use/prose para orquestrar a preparação multiagente e, em seguida, execute um pipeline do Lobster para aprovações determinísticas. Se um programa Prose precisar do Lobster, permita a ferramenta lobster para subagentes via tools.subagents.tools. Veja OpenProse.
Segurança
- Apenas subprocesso local — sem chamadas de rede pelo próprio plugin.
- Sem segredos — o Lobster não gerencia OAuth; ele chama ferramentas do OpenClaw que fazem isso.
- Ciente de sandbox — desativado quando o contexto da ferramenta está em sandbox.
- Endurecido —
lobsterPathdeve ser absoluto se especificado; timeouts e limites de saída são aplicados.
Solução de problemas
lobster subprocess timed out→ aumentetimeoutMsou divida um pipeline longo.lobster output exceeded maxStdoutBytes→ elevemaxStdoutBytesou reduza o tamanho da saída.lobster returned invalid JSON→ garanta que o pipeline execute em modo de ferramenta e imprima apenas JSON.lobster failed (code …)→ execute o mesmo pipeline em um terminal para inspecionar stderr.
Saiba mais
Estudo de caso: workflows da comunidade
Um exemplo público: uma CLI de “segundo cérebro” + pipelines do Lobster que gerenciam três cofres Markdown (pessoal, parceiro, compartilhado). A CLI emite JSON para estatísticas, listagens de inbox e varreduras de itens obsoletos; o Lobster encadeia esses comandos em workflows comoweekly-review, inbox-triage, memory-consolidation e shared-task-sync, cada um com portões de aprovação. A IA cuida do julgamento (categorização) quando disponível e recorre a regras determinísticas quando não.