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, каждый из которых содержит этапы подтверждения. Когда ИИ доступен, он выполняет задачи,
требующие оценки (категоризацию), а при его отсутствии используются детерминированные правила.
Связанные материалы