Ir al contenido

Automatiza flujos con Lobster y OpenClaw: Guía rápida

¿Alguna vez has sentido que pierdes el control cuando tu asistente empieza a encadenar herramientas sin parar? Es frustrante ver cómo se gastan tokens en pasos intermedios que podrías haber validado de un vistazo. Lobster soluciona esto dándote el control total sobre flujos complejos.

Con Lobster, puedes transformar procesos caóticos en pipelines ordenados. No se trata de añadir más complejidad, sino de asegurar que cada paso ocurra exactamente como esperas, con la opción de intervenir antes de que ocurra cualquier cambio importante.

Lobster es un workflow shell que permite a OpenClaw ejecutar secuencias de herramientas de varios pasos como una única operación determinista con puntos de control de aprobación explícitos.

Lobster es una capa de autoría por encima del trabajo en segundo plano. Si encuentras terminología antigua como ClawFlow, considéralo un nombre histórico relacionado con el mismo runtime orientado a tareas; la interfaz de CLI actual para el operador es openclaw tasks.

Tu asistente puede construir las herramientas que lo gestionan a sí mismo. Pide un flujo de trabajo y, 30 minutos después, tendrás una CLI y pipelines que se ejecutan en una sola llamada. Lobster es la pieza que faltaba: pipelines deterministas, aprobaciones explícitas y estado reanudable.

Hoy en día, los flujos de trabajo complejos requieren muchas llamadas de herramientas de ida y vuelta. Cada llamada cuesta tokens y el LLM tiene que orquestar cada paso. Lobster mueve esa orquestación a un runtime tipado:

  • Una llamada en lugar de muchas: OpenClaw ejecuta una llamada a la herramienta Lobster y obtiene un resultado estructurado.
  • Aprobaciones integradas: Los efectos secundarios (enviar un email, publicar un comentario) detienen el flujo de trabajo hasta que se aprueban explícitamente.
  • Reanudable: Los flujos de trabajo detenidos devuelven un token; aprueba y reanuda sin tener que volver a ejecutar todo.

¿Por qué un DSL en lugar de programas comunes?

Sección titulada «¿Por qué un DSL en lugar de programas comunes?»

Lobster es intencionalmente pequeño. El objetivo no es crear “un nuevo lenguaje”, sino una especificación de pipeline predecible y amigable para la AI con aprobaciones de primera clase y tokens de reanudación.

  • Aprobación/reanudación integrada: Un programa normal puede pedir confirmación a un humano, pero no puede pausar y reanudar con un token duradero sin que tú mismo inventes ese runtime.
  • Determinismo y auditabilidad: Los pipelines son datos, por lo que son fáciles de registrar, comparar, reproducir y revisar.
  • Superficie restringida para la AI: Una gramática diminuta y el uso de tuberías JSON reducen las rutas de código “creativas” y hacen que la validación sea realista.
  • Políticas de seguridad integradas: El runtime aplica tiempos de espera, límites de salida, comprobaciones de sandbox y listas de permitidos, no cada script por separado.
  • Sigue siendo programable: Cada paso puede llamar a cualquier CLI o script. Si quieres usar JS/TS, genera archivos .lobster desde tu código.

OpenClaw lanza la CLI local de lobster en tool mode y analiza un sobre JSON desde la salida estándar (stdout). Si el pipeline se pausa para una aprobación, la herramienta devuelve un resumeToken para que puedas continuar más tarde.

Patrón: CLI pequeña + tuberías JSON + aprobaciones

Sección titulada «Patrón: CLI pequeña + tuberías JSON + aprobaciones»

Construye comandos pequeños que hablen JSON y luego encadénalos en una sola llamada de Lobster. (Los nombres de comandos a continuación son ejemplos; usa los tuyos propios).

Ventana de terminal
inbox list --json
inbox categorize --json
inbox apply --json
{
"action": "run",
"pipeline": "exec --json --shell 'inbox list --json' | exec --stdin json --shell 'inbox categorize --json' | exec --stdin json --shell 'inbox apply --json' | approve --preview-from-stdin --limit 5 --prompt 'Apply changes?'",
"timeoutMs": 30000
}

Si el pipeline solicita aprobación, reanuda con el token:

{
"action": "resume",
"token": "<resumeToken>",
"approve": true
}

La AI activa el flujo de trabajo y Lobster ejecuta los pasos. Las puertas de aprobación mantienen los efectos secundarios explícitos y auditables.

Ejemplo: mapear elementos de entrada en llamadas a herramientas:

Ventana de terminal
gog.gmail.search --query 'newer_than:1d' \
| openclaw.invoke --tool message --action send --each --item-key message --args-json '{"provider":"telegram","to":"..."}'

Para flujos de trabajo que necesitan un paso de LLM estructurado, habilita la herramienta de plugin opcional llm-task y llámala desde Lobster. Esto mantiene el flujo de trabajo determinista mientras te permite clasificar, resumir o redactar con un modelo.

Habilita la herramienta:

{
"plugins": {
"entries": {
"llm-task": { "enabled": true }
}
},
"agents": {
"list": [
{
"id": "main",
"tools": { "allow": ["llm-task"] }
}
]
}
}

Úsala en un pipeline:

openclaw.invoke --tool llm-task --action json --args-json '{
"prompt": "Given the input email, return intent and draft.",
"thinking": "low",
"input": { "subject": "Hello", "body": "Can you help?" },
"schema": {
"type": "object",
"properties": {
"intent": { "type": "string" },
"draft": { "type": "string" }
},
"required": ["intent", "draft"],
"additionalProperties": false
}
}'

Consulta LLM Task para detalles y opciones de configuración.

Lobster puede ejecutar archivos de flujo de trabajo YAML/JSON con los campos name, args, steps, env, condition y approval. En las llamadas a herramientas de OpenClaw, establece pipeline con la ruta del archivo.

name: inbox-triage
args:
tag:
default: "family"
steps:
- id: collect
command: inbox list --json
- id: categorize
command: inbox categorize --json
stdin: $collect.stdout
- id: approve
command: inbox apply --approve
stdin: $categorize.stdout
approval: required
- id: execute
command: inbox apply --execute
stdin: $categorize.stdout
condition: $approve.approved

Notas:

  • stdin: $step.stdout y stdin: $step.json pasan la salida de un paso anterior.
  • condition (o when) puede filtrar pasos basándose en $step.approved.

Instala la CLI de Lobster en el mismo host que ejecuta el OpenClaw Gateway (consulta el repositorio de Lobster) y asegúrate de que lobster esté en tu PATH.

Lobster es una herramienta de plugin opcional (no está habilitada por defecto).

Recomendado (aditivo y seguro):

{
"tools": {
"alsoAllow": ["lobster"]
}
}

O por agente:

{
"agents": {
"list": [
{
"id": "main",
"tools": {
"alsoAllow": ["lobster"]
}
}
]
}
}

Evita usar tools.allow: ["lobster"] a menos que pretendas ejecutar en un modo de lista de permitidos restrictivo.

Nota: Las listas de permitidos son opcionales para plugins adicionales. Si tu lista de permitidos solo nombra herramientas de plugins (como lobster), OpenClaw mantiene habilitadas las herramientas principales. Para restringir las herramientas principales, inclúyelas también en la lista.

Sin Lobster:

User: "Check my email and draft replies"
→ openclaw calls gmail.list
→ LLM summarizes
→ User: "draft replies to #2 and #5"
→ LLM drafts
→ User: "send #2"
→ openclaw calls gmail.send
(repeat daily, no memory of what was triaged)

Con Lobster:

{
"action": "run",
"pipeline": "email.triage --limit 20",
"timeoutMs": 30000
}

Devuelve un sobre JSON (truncado):

{
"ok": true,
"status": "needs_approval",
"output": [{ "summary": "5 need replies, 2 need action" }],
"requiresApproval": {
"type": "approval_request",
"prompt": "Send 2 draft replies?",
"items": [],
"resumeToken": "..."
}
}

El usuario aprueba → reanudar:

{
"action": "resume",
"token": "<resumeToken>",
"approve": true
}

Un solo flujo de trabajo. Determinista. Seguro.

Ejecuta un pipeline en modo herramienta.

{
"action": "run",
"pipeline": "gog.gmail.search --query 'newer_than:1d' | email.triage",
"cwd": "workspace",
"timeoutMs": 30000,
"maxStdoutBytes": 512000
}

Ejecuta un archivo de flujo de trabajo con argumentos:

{
"action": "run",
"pipeline": "/path/to/inbox-triage.lobster",
"argsJson": "{\"tag\":\"family\"}"
}

Continúa un flujo de trabajo detenido después de la aprobación.

{
"action": "resume",
"token": "<resumeToken>",
"approve": true
}
  • cwd: Directorio de trabajo relativo para el pipeline (debe permanecer dentro del directorio de trabajo del proceso actual).
  • timeoutMs: Detiene el subproceso si excede esta duración (por defecto: 20000).
  • maxStdoutBytes: Detiene el subproceso si el stdout excede este tamaño (por defecto: 512000).
  • argsJson: Cadena JSON pasada a lobster run --args-json (solo para archivos de flujo de trabajo).

Lobster devuelve un sobre JSON con uno de tres estados:

  • ok → finalizado con éxito
  • needs_approval → pausado; se requiere requiresApproval.resumeToken para reanudar
  • cancelled → denegado o cancelado explícitamente

La herramienta muestra el sobre tanto en content (JSON formateado) como en details (objeto original).

Si requiresApproval está presente, inspecciona el prompt y decide:

  • approve: true → reanuda y continúa con los efectos secundarios
  • approve: false → cancela y finaliza el flujo de trabajo

Usa approve --preview-from-stdin --limit N para adjuntar una vista previa JSON a las solicitudes de aprobación sin necesidad de usar jq o configuraciones complejas. Los tokens de reanudación ahora son compactos: Lobster almacena el estado de reanudación del flujo de trabajo en su directorio de estado y entrega una clave de token pequeña.

OpenProse combina bien con Lobster: usa /prose para orquestar la preparación de múltiples agentes y luego ejecuta un pipeline de Lobster para aprobaciones deterministas. Si un programa de Prose necesita Lobster, permite la herramienta lobster para los sub-agentes mediante tools.subagents.tools. Consulta OpenProse.

  • Solo subprocesos locales: El plugin no realiza llamadas de red por sí mismo.
  • Sin secretos: Lobster no gestiona OAuth; llama a las herramientas de OpenClaw que sí lo hacen.
  • Consciente del sandbox: Se deshabilita cuando el contexto de la herramienta está en un sandbox.
  • Protegido: Nombre de ejecutable fijo (lobster) en el PATH; se aplican tiempos de espera y límites de salida.
  • lobster subprocess timed out → aumenta timeoutMs o divide un pipeline largo.
  • lobster output exceeded maxStdoutBytes → aumenta maxStdoutBytes o reduce el tamaño de la salida.
  • lobster returned invalid JSON → asegúrate de que el pipeline se ejecute en modo herramienta y solo imprima JSON.
  • lobster failed (code …) → ejecuta el mismo pipeline en una terminal para inspeccionar el error estándar (stderr).

Caso de estudio: flujos de trabajo de la comunidad

Sección titulada «Caso de estudio: flujos de trabajo de la comunidad»

Un ejemplo público: una CLI de “segundo cerebro” + pipelines de Lobster que gestionan tres bóvedas de Markdown (personal, pareja, compartida). La CLI emite JSON para estadísticas, listados de bandejas de entrada y escaneos de elementos obsoletos; Lobster encadena esos comandos en flujos de trabajo como weekly-review, inbox-triage, memory-consolidation y shared-task-sync, cada uno con puertas de aprobación. La AI se encarga del juicio (categorización) cuando está disponible y recurre a reglas deterministas cuando no lo está.

¿Necesitas ayuda para configurar tus pipelines? Prueba nuestro AI Setup Assistant.

OpenClaw

OpenClaw Expert

Sigues atascado?

Si esta pagina no resolvio tu caso, pregunta a OpenClaw Expert para pasos concretos.