---
read_when:
    - Вам нужны детерминированные многоэтапные рабочие процессы с явными подтверждениями
    - Вам нужно возобновить рабочий процесс без повторного выполнения предыдущих шагов
summary: Типизированная среда выполнения рабочих процессов для OpenClaw с возобновляемыми точками утверждения.
title: Омар
x-i18n:
    generated_at: "2026-06-28T23:53:13Z"
    model: gpt-5.5
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: 404b2e47982f7efb9a8bb015ac5d7bd8a06f0a41d966e620c9826735abf7f0e3
    source_path: tools/lobster.md
    workflow: 16
---

Lobster — это оболочка рабочих процессов, которая позволяет OpenClaw выполнять многошаговые последовательности инструментов как одну детерминированную операцию с явными контрольными точками утверждения.

Lobster — это авторский слой на уровень выше отсоединенной фоновой работы. Для оркестрации потоков поверх отдельных задач см. [TaskFlow](/ru/automation/taskflow) (`openclaw tasks flow`). Журнал активности задач см. в [`openclaw tasks`](/ru/automation/tasks).

## Hook

Ваш ассистент может создавать инструменты, которые управляют им самим. Попросите рабочий процесс, и через 30 минут у вас будет CLI плюс конвейеры, запускающиеся одним вызовом. Lobster — недостающая часть: детерминированные конвейеры, явные утверждения и возобновляемое состояние.

## Зачем

Сегодня сложные рабочие процессы требуют множества встречных вызовов инструментов. Каждый вызов расходует токены, а LLM должна оркестрировать каждый шаг. Lobster переносит эту оркестрацию в типизированную среду выполнения:

- **Один вызов вместо множества**: OpenClaw выполняет один вызов инструмента Lobster и получает структурированный результат.
- **Утверждения встроены**: Побочные эффекты (отправить письмо, опубликовать комментарий) останавливают рабочий процесс до явного утверждения.
- **Возобновляемость**: Остановленные рабочие процессы возвращают токен; утвердите и возобновите без повторного выполнения всего процесса.

## Почему DSL, а не обычные программы?

Lobster намеренно невелик. Цель — не «новый язык», а предсказуемая, удобная для ИИ спецификация конвейеров с первоклассными утверждениями и токенами возобновления.

- **Утверждение/возобновление встроено**: Обычная программа может запросить решение у человека, но она не может _приостановиться и возобновиться_ с долговечным токеном, если вы сами не создадите такую среду выполнения.
- **Детерминизм + проверяемость**: Конвейеры являются данными, поэтому их легко логировать, сравнивать, воспроизводить и ревьюить.
- **Ограниченная поверхность для ИИ**: Небольшая грамматика + JSON-конвейеризация сокращают «творческие» пути кода и делают валидацию реалистичной.
- **Политика безопасности встроена**: Тайм-ауты, лимиты вывода, проверки песочницы и списки разрешений применяются средой выполнения, а не каждым скриптом.
- **По-прежнему программируемо**: Каждый шаг может вызвать любой CLI или скрипт. Если вам нужны JS/TS, генерируйте файлы `.lobster` из кода.

## Как это работает

OpenClaw запускает рабочие процессы Lobster **внутри процесса** с помощью встроенного раннера. Внешний подпроцесс CLI не запускается; движок рабочего процесса выполняется внутри процесса gateway и напрямую возвращает JSON-конверт.
Если конвейер приостанавливается для утверждения, инструмент возвращает `resumeToken`, чтобы вы могли продолжить позже.

## Паттерн: небольшой CLI + JSON-каналы + утверждения

Создавайте небольшие команды, которые говорят на JSON, затем связывайте их в один вызов Lobster. (Имена команд ниже приведены как пример — замените их своими.)

```bash
inbox list --json
inbox categorize --json
inbox apply --json
```

```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
}
```

Если конвейер запрашивает утверждение, возобновите его с токеном:

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

ИИ запускает рабочий процесс; Lobster выполняет шаги. Шлюзы утверждения сохраняют побочные эффекты явными и проверяемыми.

Пример: сопоставление входных элементов с вызовами инструментов:

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

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

Для рабочих процессов, которым нужен **структурированный LLM-шаг**, включите опциональный
инструмент plugin `llm-task` и вызывайте его из Lobster. Это сохраняет рабочий процесс
детерминированным, но все равно позволяет классифицировать, резюмировать и составлять черновики с помощью модели.

Включите инструмент:

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

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

Встроенный plugin Lobster запускает рабочие процессы **внутри процесса** в gateway. В этом встроенном режиме `openclaw.invoke` **не** наследует автоматически URL gateway или контекст аутентификации для вложенных вызовов инструментов OpenClaw CLI.

Это означает, что такой паттерн **сейчас ненадежен во встроенном раннере**:

```lobster
openclaw.invoke --tool llm-task --action json --args-json '{ ... }'
```

Используйте пример ниже только при запуске **автономного Lobster CLI** в окружении, где `openclaw.invoke` уже настроен с правильным контекстом gateway и аутентификации.

Используйте его в автономном конвейере Lobster CLI:

```lobster
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
  }
}'
```

Если сегодня вы используете встроенный plugin Lobster, предпочитайте один из вариантов:

- прямой вызов инструмента `llm-task` вне Lobster, или
- шаги без `openclaw.invoke` внутри конвейера Lobster, пока не будет добавлен поддерживаемый встроенный мост.

Подробности и параметры конфигурации см. в [LLM Task](/ru/tools/llm-task).

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

Lobster может запускать YAML/JSON-файлы рабочих процессов с полями `name`, `args`, `steps`, `env`, `condition` и `approval`. В вызовах инструментов OpenClaw задайте `pipeline` равным пути к файлу.

```yaml
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
```

Примечания:

- `stdin: $step.stdout` и `stdin: $step.json` передают вывод предыдущего шага.
- `condition` (или `when`) может ограничивать выполнение шагов на основе `$step.approved`.

## Установка Lobster

Встроенные рабочие процессы Lobster выполняются внутри процесса; отдельный бинарный файл `lobster` не требуется. Встроенный раннер поставляется с plugin Lobster.

Если вам нужен автономный Lobster CLI для разработки или внешних конвейеров, установите его из [репозитория Lobster](https://github.com/openclaw/lobster) и убедитесь, что `lobster` находится в `PATH`.

## Включение инструмента

Lobster — **опциональный** инструмент plugin (по умолчанию не включен).

Рекомендуемый вариант (аддитивный, безопасный):

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

Или для отдельного агента:

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

Избегайте использования `tools.allow: ["lobster"]`, если вы не собираетесь работать в ограничительном режиме списка разрешений.

<Note>
Списки разрешений включаются явно для опциональных plugins. `alsoAllow` включает только указанные опциональные инструменты plugin, сохраняя обычный набор основных инструментов. Чтобы ограничить основные инструменты, используйте `tools.allow` с нужными основными инструментами или группами.
</Note>

## Пример: сортировка почты

Без 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)
```

С Lobster:

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

Возвращает JSON-конверт (сокращено):

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

Пользователь утверждает → возобновление:

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

Один рабочий процесс. Детерминированный. Безопасный.

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

### `run`

Запускает конвейер в режиме инструмента.

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

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

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

### `resume`

Продолжает остановленный рабочий процесс после утверждения.

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

### Опциональные входные данные

- `cwd`: Относительный рабочий каталог для конвейера (должен оставаться внутри рабочего каталога gateway).
- `timeoutMs`: Прервать рабочий процесс, если он превышает эту длительность (по умолчанию: 20000).
- `maxStdoutBytes`: Прервать рабочий процесс, если вывод превышает этот размер (по умолчанию: 512000).
- `argsJson`: JSON-строка, передаваемая в `lobster run --args-json` (только для файлов рабочих процессов).

## Конверт вывода

Lobster возвращает JSON-конверт с одним из трех статусов:

- `ok` → успешно завершено
- `needs_approval` → приостановлено; для возобновления требуется `requiresApproval.resumeToken`
- `cancelled` → явно отклонено или отменено

Инструмент предоставляет конверт как в `content` (форматированный JSON), так и в `details` (сырой объект).

## Утверждения

Если присутствует `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](/ru/prose).

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

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

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

- **`lobster timed out`** → увеличьте `timeoutMs` или разделите длинный конвейер.
- **`lobster output exceeded maxStdoutBytes`** → увеличьте `maxStdoutBytes` или уменьшите размер вывода.
- **`lobster returned invalid JSON`** → убедитесь, что конвейер запускается в режиме инструмента и печатает только JSON.
- **`lobster failed`** → проверьте логи gateway для подробностей ошибки встроенного раннера.

## Подробнее

- [Plugins](/ru/tools/plugin)
- [Создание инструментов Plugin](/ru/plugins/building-plugins#registering-agent-tools)

## Пример использования: рабочие процессы сообщества

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

- Обсуждение: [https://x.com/plattenschieber/status/2014508656335770033](https://x.com/plattenschieber/status/2014508656335770033)
- Репозиторий: [https://github.com/bloomedai/brain-cli](https://github.com/bloomedai/brain-cli)

## Связанные разделы

- [Автоматизация](/ru/automation) - планирование рабочих процессов Lobster
- [Обзор автоматизации](/ru/automation) - все механизмы автоматизации
- [Обзор инструментов](/ru/tools) - все доступные инструменты агента
