Skip to main content
Lobster выполняет многошаговые конвейеры инструментов как один детерминированный вызов инструмента с явными контрольными точками подтверждения и токенами возобновления. Он находится на один уровень выше отделённых фоновых задач: для координации потоков из множества отделённых задач см. Task Flow (openclaw tasks flow); журнал активности задач см. в разделе Фоновые задачи.

Зачем это нужно

Без Lobster многошаговое задание требует множества последовательных вызовов инструментов, при этом модель координирует каждый шаг. Lobster переносит эту координацию в типизированную среду выполнения:
  • Один вызов вместо множества: один вызов инструмента Lobster возвращает структурированный результат всего конвейера.
  • Встроенные подтверждения: побочные эффекты (отправка, публикация, удаление) приостанавливают рабочий процесс до явного подтверждения.
  • Возможность возобновления: приостановленный рабочий процесс возвращает токен; подтвердите и возобновите его без повторного выполнения предыдущих шагов.
Lobster — это небольшой ограниченный DSL, а не универсальный язык сценариев: подтверждение и возобновление являются надёжным встроенным примитивом; конвейеры представлены данными (их легко журналировать, сравнивать, повторно выполнять и проверять); компактная грамматика ограничивает «творческие» пути выполнения кода, благодаря чему проверка остаётся реалистичной; ограничения времени, размера вывода, проверки песочницы и списки разрешений применяются средой выполнения, а не каждым сценарием. Каждый шаг при этом может вызывать любой CLI или сценарий — при необходимости создавайте файлы .lobster с помощью других инструментов, если вам нужен более выразительный язык описания. Без Lobster регулярная сортировка электронной почты выглядит так:
С Lobster то же задание выполняется одним вызовом, который приостанавливается для подтверждения, а затем возобновляется:

Принцип работы

OpenClaw выполняет рабочие процессы Lobster внутри процесса, используя входящий в комплект пакет @clawdbot/lobster как встроенную среду выполнения. Внешний подпроцесс lobster не запускается; вызов инструмента напрямую возвращает JSON-конверт. Если конвейер приостанавливается для подтверждения, конверт содержит токен возобновления (или короткий идентификатор подтверждения), позволяющий продолжить выполнение позднее.

Включение

Lobster — необязательный инструмент плагина, по умолчанию отключённый. Он поставляется в комплекте, поэтому отдельная установка не требуется — достаточно разрешить инструмент:
Или отдельно для агента:
alsoAllow добавляет lobster поверх активного профиля инструментов, не ограничивая другие основные инструменты. Используйте tools.allow, только если вам нужен режим строгого списка разрешений.
В контекстах инструментов с песочницей этот инструмент полностью отключён. Если для разработки или внешних конвейеров вам нужен автономный CLI Lobster (вне встроенной среды выполнения Gateway), установите его из репозитория Lobster и добавьте lobster в PATH.

Шаблон: небольшие CLI + каналы JSON + подтверждения

Создавайте небольшие команды, обменивающиеся данными в формате JSON, а затем объединяйте их в один вызов Lobster. (Имена команд ниже приведены для примера — замените их своими.)
Если конвейер запрашивает подтверждение, возобновите его с помощью токена:
Пример: преобразование входных элементов в вызовы инструментов:

Шаги LLM только с JSON (llm-task)

Чтобы использовать структурированный шаг LLM внутри рабочего процесса, включите необязательный инструмент плагина llm-task и вызовите его из Lobster:

Важное ограничение: встроенный Lobster и openclaw.invoke

Входящий в комплект плагин Lobster выполняет рабочие процессы внутри процесса Gateway. В этом встроенном режиме openclaw.invoke не наследует автоматически URL-адрес Gateway и контекст аутентификации для вложенных вызовов инструментов CLI OpenClaw. Поэтому этот шаблон в настоящее время ненадёжен во встроенной среде выполнения:
Используйте приведённый ниже пример, только если запускаете автономный CLI Lobster в среде, где openclaw.invoke уже настроен с правильным контекстом Gateway и аутентификации.
Если сейчас вы используете встроенный плагин Lobster, отдавайте предпочтение одному из вариантов:
  • прямой вызов инструмента llm-task вне Lobster; или
  • шаги, не использующие openclaw.invoke, внутри конвейера Lobster, пока не будет добавлен поддерживаемый встроенный мост.
Подробности и параметры конфигурации см. в разделе Задача LLM.

Файлы рабочих процессов (.lobster)

Lobster может выполнять файлы рабочих процессов YAML/JSON с полями name, args, steps, env, condition и approval. В вызове инструмента задайте в pipeline путь к файлу.
Примечания:
  • stdin: $step.stdout и stdin: $step.json передают вывод предыдущего шага.
  • condition (или when) может ограничивать выполнение шагов в зависимости от $step.approved.

Параметры инструмента

run

Запуск файла рабочего процесса с аргументами:

resume

resume принимает либо token (полный токен возобновления из requiresApproval), либо approvalId (короткий идентификатор из того же объекта) — используйте значение, возвращённое приостановленным выполнением. approve является обязательным.

Режим управляемого Task Flow

Передача flowControllerId и flowGoal в run (либо flowId и flowExpectedRevision в resume) направляет вызов через управляемый API Task Flow среды выполнения плагина вместо возврата простого конверта: OpenClaw создаёт или возобновляет постоянную запись потока, применяет к ней конверт Lobster (waiting при подтверждении, succeeded/failed при завершении) и возвращает { ok, envelope, flow, mutation }. Для этого режима требуется привязанная среда выполнения Task Flow; он предназначен для кода плагинов и контроллеров, которому необходимо сохранять состояние потока после перезапусков Gateway, а не для обычного нерегулярного использования агентом.

Выходной конверт

Lobster возвращает JSON-конверт с одним из трёх статусов:
  • ok — успешно завершено
  • needs_approval — приостановлено; requiresApproval содержит resumeToken и короткий approvalId, любой из которых позволяет возобновить выполнение
  • cancelled — явно отклонено или отменено
Инструмент предоставляет конверт как в content (форматированный JSON), так и в details (необработанный объект).

Подтверждения

Если присутствует requiresApproval, изучите запрос и примите решение:
  • approve: true — возобновить выполнение и продолжить побочные эффекты
  • approve: false — отменить и завершить рабочий процесс
Используйте approve --preview-from-stdin --limit N, чтобы прикрепить предварительный просмотр в формате JSON к запросам подтверждения без специальной связки jq/heredoc. Состояние возобновления хранится в небольших JSON-файлах в каталоге состояния Lobster (~/.lobster/state по умолчанию, переопределяется с помощью LOBSTER_STATE_DIR); сам токен кодирует только указатель на это состояние, а не полное состояние конвейера.

OpenProse

OpenProse хорошо сочетается с Lobster: используйте /prose для координации подготовки несколькими агентами, а затем запускайте конвейер Lobster для детерминированных подтверждений. Если программе Prose нужен Lobster, разрешите инструмент lobster для субагентов через tools.subagents.tools. См. OpenProse.

Безопасность

  • Только локальное выполнение внутри процесса — рабочие процессы выполняются внутри процесса Gateway; сам плагин не выполняет сетевых вызовов.
  • Без секретов — Lobster не управляет OAuth; он вызывает инструменты OpenClaw, которые делают это.
  • Учитывает песочницу — отключается, когда контекст инструмента находится в песочнице.
  • Усиленная защита — ограничения времени и размера вывода применяются встроенной средой выполнения.

Устранение неполадок

Подробнее

Практический пример: рабочие процессы сообщества

Один из общедоступных примеров — CLI «второго мозга» и конвейеры Lobster, управляющие тремя хранилищами Markdown (личным, партнёра и общим). CLI выводит JSON со статистикой, списками входящих данных и результатами поиска устаревших элементов; Lobster объединяет эти команды в рабочие процессы, такие как weekly-review, inbox-triage, memory-consolidation и shared-task-sync, каждый из которых содержит этапы подтверждения. Когда ИИ доступен, он выполняет задачи, требующие оценки (категоризацию), а при его отсутствии используются детерминированные правила.

Связанные материалы