Lobster
Lobster — это оболочка рабочих процессов, которая позволяет OpenClaw запускать многошаговые последовательности инструментов как одну детерминированную операцию с явными контрольными точками подтверждения.Hook
Ваш ассистент может создавать инструменты, которые управляют им самим. Попросите рабочий процесс — и через 30 минут у вас есть CLI плюс конвейеры, которые выполняются одним вызовом. Lobster — недостающий элемент: детерминированные конвейеры, явные подтверждения и возобновляемое состояние.Почему
Сегодня сложные рабочие процессы требуют множества возвратно-поступательных вызовов инструментов. Каждый вызов стоит токенов, и LLM должна оркестрировать каждый шаг. Lobster переносит эту оркестрацию в типизированную среду выполнения:- Один вызов вместо многих: OpenClaw выполняет один вызов инструмента Lobster и получает структурированный результат.
- Подтверждения встроены: Побочные эффекты (отправка письма, публикация комментария) останавливают рабочий процесс до явного подтверждения.
- Возобновляемость: Остановленные рабочие процессы возвращают токен; подтвердите и возобновите без повторного выполнения всего.
Почему DSL вместо обычных программ?
Lobster намеренно минималистичен. Цель — не «новый язык», а предсказуемая, дружественная к ИИ спецификация конвейеров с первоклассными подтверждениями и токенами возобновления.- Подтверждение/возобновление встроены: Обычная программа может запросить человека, но не может поставить на паузу и возобновить с долговечным токеном без самостоятельного изобретения такой среды выполнения.
- Детерминизм + аудитируемость: Конвейеры — это данные, поэтому их легко логировать, сравнивать (diff), воспроизводить и проверять.
- Ограниченная поверхность для ИИ: Минимальная грамматика + JSON‑передача уменьшают «креативные» пути выполнения кода и делают валидацию реалистичной.
- Политики безопасности встроены: Тайм‑ауты, лимиты вывода, проверки sandbox и списки разрешённых применяются средой выполнения, а не каждым скриптом.
- Всё ещё программируемо: Каждый шаг может вызывать любой CLI или скрипт. Если нужен JS/TS, генерируйте файлы
.lobsterиз кода.
Как это работает
OpenClaw запускает локальный CLIlobster в режиме инструмента и разбирает JSON‑конверт из stdout.
Если конвейер приостанавливается для подтверждения, инструмент возвращает resumeToken, чтобы вы могли продолжить позже.
Паттерн: небольшой CLI + JSON-конвейеры + согласования
Создавайте небольшие команды, которые говорят на JSON, затем связывайте их в один вызов Lobster. (Имена команд ниже — примеры; подставляйте свои.)Шаги LLM только с JSON (llm-task)
Для рабочих процессов, которым нужен структурированный шаг LLM, включите необязательный плагин‑инструментllm-task и вызывайте его из Lobster. Это сохраняет детерминизм рабочего процесса, позволяя при этом классифицировать/резюмировать/черновить с помощью модели.
Включите инструмент:
Файлы рабочих процессов (.lobster)
Lobster может выполнять файлы рабочих процессов YAML/JSON с полямиname, args, steps, env, condition и approval. В вызовах инструментов OpenClaw установите pipeline в путь к файлу.
stdin: $step.stdoutиstdin: $step.jsonпередают вывод предыдущего шага.condition(илиwhen) может ставить шаги на шлюз по$step.approved.
Install Lobster
Установите CLI Lobster на том же хосте, где работает Gateway (шлюз) OpenClaw (см. репозиторий Lobster), и убедитесь, чтоlobster находится в PATH.
Если вы хотите использовать пользовательское расположение бинарника, передайте абсолютный lobsterPath в вызове инструмента.
Enable the tool
Lobster — необязательный плагин‑инструмент (по умолчанию отключён). Рекомендуется (аддитивно, безопасно):tools.allow: ["lobster"], если вы не намерены работать в ограничительном режиме списка разрешённых.
Примечание: списки разрешённых являются opt‑in для необязательных плагинов. Если ваш список разрешённых содержит только
плагин‑инструменты (например, lobster), OpenClaw оставляет основные инструменты включёнными. Чтобы ограничить основные
инструменты, включите в список разрешённых также нужные основные инструменты или группы.
Example: Email triage
Без Lobster:Tool parameters
run
Запуск конвейера в режиме инструмента.
resume
Продолжение остановленного рабочего процесса после подтверждения.
Optional inputs
lobsterPath: Абсолютный путь к бинарнику Lobster (не указывайте, чтобы использоватьPATH).cwd: Рабочий каталог для конвейера (по умолчанию — текущий рабочий каталог процесса).timeoutMs: Принудительно завершить подпроцесс, если он превышает эту длительность (по умолчанию: 20000).maxStdoutBytes: Принудительно завершить подпроцесс, если stdout превышает этот размер (по умолчанию: 512000).argsJson: JSON‑строка, передаваемая вlobster run --args-json(только для файлов рабочих процессов).
Output envelope
Lobster возвращает JSON‑конверт с одним из трёх статусов:ok→ успешно завершеноneeds_approval→ приостановлено; для возобновления требуетсяrequiresApproval.resumeTokencancelled→ явно отклонено или отменено
content (красиво отформатированный JSON), так и в details (сырой объект).
Approvals
Если присутствуетrequiresApproval, просмотрите запрос и примите решение:
approve: true→ возобновить и продолжить побочные эффектыapprove: false→ отменить и завершить рабочий процесс
approve --preview-from-stdin --limit N, чтобы прикреплять JSON‑превью к запросам подтверждения без пользовательского jq/heredoc‑клея. Токены возобновления теперь компактны: Lobster хранит состояние возобновления рабочего процесса в своём каталоге состояния и возвращает небольшой ключ‑токен.
OpenProse
OpenProse хорошо сочетается с Lobster: используйте/prose для оркестрации подготовки несколькими агентами, затем запускайте конвейер Lobster для детерминированных подтверждений. Если программе Prose нужен Lobster, разрешите инструмент lobster для подагентов через tools.subagents.tools. См. OpenProse.
Safety
- Только локальные подпроцессы — сам плагин не выполняет сетевых вызовов.
- Без секретов — Lobster не управляет OAuth; он вызывает инструменты OpenClaw, которые это делают.
- Совместим с sandbox — отключён, когда контекст инструмента находится в sandbox.
- Укреплённая безопасность — если указан,
lobsterPathдолжен быть абсолютным; тайм‑ауты и лимиты вывода принудительно применяются.
Troubleshooting
lobster subprocess timed out→ увеличьтеtimeoutMsили разбейте длинный конвейер.lobster output exceeded maxStdoutBytes→ увеличьтеmaxStdoutBytesили уменьшите размер вывода.lobster returned invalid JSON→ убедитесь, что конвейер запускается в режиме инструмента и печатает только JSON.lobster failed (code …)→ запустите тот же конвейер в терминале, чтобы проверить stderr.
Learn more
Case study: community workflows
Один публичный пример: CLI «second brain» + конвейеры Lobster, которые управляют тремя хранилищами Markdown (личное, партнёрское, общее). CLI выдаёт JSON со статистикой, списками входящих и сканированием устаревших записей; Lobster связывает эти команды в рабочие процессы вродеweekly-review, inbox-triage, memory-consolidation и shared-task-sync, каждый со шлюзами подтверждений. ИИ выполняет оценочные задачи (категоризация), когда доступен, и возвращается к детерминированным правилам, когда нет.