---
read_when:
    - Вам потрібні детерміновані багатоетапні робочі процеси з явними схваленнями
    - Вам потрібно відновити робочий процес, не запускаючи повторно попередні кроки
summary: Типізоване середовище виконання робочих процесів для OpenClaw із відновлюваними етапами затвердження.
title: Лобстер
x-i18n:
    generated_at: "2026-07-12T13:52:18Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: eedb6577133588b726992a882a92d94f1f414e55998d0fc80644dd3a64ffc1ab
    source_path: tools/lobster.md
    workflow: 16
---

Lobster виконує багатоетапні конвеєри інструментів як один детермінований виклик інструмента з
явними контрольними точками схвалення та токенами відновлення. Він розташований на один рівень вище
відокремленої фонової роботи: для оркестрації потоків між багатьма відокремленими завданнями
див. [Task Flow](/uk/automation/taskflow) (`openclaw tasks flow`); журнал активності завдань
див. у розділі [Фонові завдання](/uk/automation/tasks).

## Навіщо

Без Lobster багатоетапна робота потребує численних циклів викликів інструментів, а
модель оркеструє кожен етап. Lobster переносить цю оркестрацію до типізованого
середовища виконання:

- **Один виклик замість багатьох**: один виклик інструмента Lobster повертає структурований
  результат для всього конвеєра.
- **Вбудовані схвалення**: побічні дії (надсилання, публікація, видалення) призупиняють робочий процес
  до явного схвалення.
- **Можливість відновлення**: призупинений робочий процес повертає токен; схваліть і відновіть його без
  повторного виконання попередніх етапів.

Lobster — це невелика обмежена DSL, а не універсальна мова сценаріїв:
схвалення та відновлення є надійною вбудованою примітивною операцією; конвеєри представлені даними (їх легко
журналювати, порівнювати, відтворювати й перевіряти); компактна граматика обмежує «творчі» шляхи виконання коду, тож
перевірка залишається реалістичною; обмеження часу, обсягу виведення, перевірки пісочниці та
списки дозволів застосовує середовище виконання, а не кожен сценарій. Кожен етап усе одно може
викликати будь-який CLI або сценарій — створюйте файли `.lobster` за допомогою інших інструментів, якщо
вам потрібна функціональніша мова опису.

Без Lobster регулярне опрацювання електронної пошти має такий вигляд:

```text
Користувач: "Перевір мою пошту та підготуй чернетки відповідей"
→ openclaw викликає gmail.list
→ LLM створює підсумок
→ Користувач: "підготуй чернетки відповідей на №2 та №5"
→ LLM створює чернетки
→ Користувач: "надішли №2"
→ openclaw викликає gmail.send
(повторюється щодня, без пам’яті про вже опрацьоване)
```

З Lobster та сама робота виконується одним викликом, який призупиняється для схвалення та відновлюється:

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

```json
{
  "ok": true,
  "status": "needs_approval",
  "output": [{ "summary": "5 потребують відповіді, 2 потребують дії" }],
  "requiresApproval": {
    "type": "approval_request",
    "prompt": "Надіслати 2 чернетки відповідей?",
    "items": [],
    "resumeToken": "..."
  }
}
```

## Як це працює

OpenClaw запускає робочі процеси Lobster **у межах процесу**, використовуючи вбудований
пакет `@clawdbot/lobster` як інтегрований засіб виконання. Зовнішній підпроцес `lobster`
не запускається; виклик інструмента безпосередньо повертає конверт JSON. Якщо
конвеєр призупиняється для схвалення, конверт містить токен відновлення (або короткий
ідентифікатор схвалення), щоб ви могли продовжити пізніше.

## Увімкнення

Lobster — це **необов’язковий** інструмент Plugin, який типово не ввімкнено. Він постачається
в комплекті, тому окреме встановлення не потрібне — просто дозвольте інструмент:

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

Або для окремого агента:

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

<Note>
`alsoAllow` додає `lobster` до активного профілю інструментів, не
обмежуючи інші основні інструменти. Використовуйте `tools.allow`, лише якщо натомість потрібен обмежувальний
режим списку дозволів.
</Note>

Інструмент повністю вимкнений у контекстах інструментів із пісочницею.

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

## Шаблон: невеликий 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
}
```

Приклад: перетворення вхідних елементів на виклики інструментів:

```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 або контекст автентифікації для вкладених викликів інструментів CLI OpenClaw.

Це означає, що цей шаблон **наразі ненадійний у вбудованому засобі виконання**:

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

Використовуйте наведений нижче приклад лише під час запуску **автономного CLI Lobster** у
середовищі, де `openclaw.invoke` вже налаштовано з правильним
контекстом gateway та автентифікації.

```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](/uk/tools/llm-task).

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

Lobster може запускати файли робочих процесів YAML/JSON із полями `name`, `args`, `steps`, `env`,
`condition` та `approval`. У виклику інструмента задайте для `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`.

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

### `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\"}"
}
```

| Поле             | Типове значення | Примітки                                                                                                                 |
| ---------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------ |
| `pipeline`       | обов’язкове     | Рядок вбудованого конвеєра або шлях із закінченням `.lobster`/`.yaml`/`.yml`/`.json` до файлу робочого процесу.           |
| `cwd`            | cwd gateway     | Відносний робочий каталог; має визначатися всередині робочого каталогу gateway (абсолютні шляхи відхиляються).            |
| `timeoutMs`      | `20000`         | Перериває виконання в разі перевищення.                                                                                  |
| `maxStdoutBytes` | `512000`        | Перериває виконання, якщо перехоплені stdout або stderr перевищують цей розмір.                                           |
| `argsJson`       | -               | Рядок JSON з аргументами для файлу робочого процесу (ігнорується для вбудованих конвеєрів).                               |

### `resume`

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

`resume` приймає `token` (повний токен відновлення з `requiresApproval`)
або `approvalId` (короткий ідентифікатор із того самого об’єкта) — використовуйте те, що повернув призупинений
запуск. `approve` є обов’язковим.

### Режим керованого Task Flow

Передавання `flowControllerId` і `flowGoal` до `run` (або `flowId` і
`flowExpectedRevision` до `resume`) спрямовує виклик через керований API
[Task Flow](/uk/automation/taskflow) середовища виконання Plugin замість повернення
простого конверта: OpenClaw створює або відновлює постійний запис потоку, застосовує до нього
конверт Lobster (`waiting` під час очікування схвалення, `succeeded`/`failed` після
завершення) і повертає `{ ok, envelope, flow, mutation }`. Для цього режиму потрібне
прив’язане середовище виконання Task Flow; він призначений для коду Plugin або контролера, якому потрібен
постійний стан потоку після перезапусків 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](/uk/prose).

## Безпека

- **Лише локально в межах процесу** — робочі процеси виконуються всередині процесу gateway; сам
  Plugin не здійснює мережевих викликів.
- **Без секретів** — Lobster не керує OAuth; він викликає інструменти OpenClaw, які
  це роблять.
- **З урахуванням пісочниці** — вимикається, коли контекст інструмента працює в пісочниці.
- **Посилений захист** — обмеження часу й обсягу виведення застосовує вбудований засіб виконання.

## Усунення несправностей

| Помилка                                                       | Причина / виправлення                                                                    |
| ------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| `lobster runtime timed out`                                   | Конвеєр перевищив `timeoutMs`. Збільште значення або розділіть конвеєр.                  |
| `lobster stdout exceeded maxStdoutBytes` (або `stderr`)        | Перехоплене виведення перевищило обмеження. Збільште `maxStdoutBytes` або скоротіть виведення. |
| `run --args-json must be valid JSON`                           | Не вдалося розібрати `argsJson` (під час запуску файлу робочого процесу). Виправте рядок JSON. |
| `lobster runtime failed` (або інше повідомлення `runtime_error`) | Вбудоване середовище виконання повернуло конверт помилки. Перевірте журнали gateway для подробиць. |

## Докладніше

- [Plugins](/uk/tools/plugin)
- [Створення інструментів Plugin](/uk/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)

## Пов’язані матеріали

- [Автоматизація](/uk/automation) — усі механізми автоматизації
- [Огляд інструментів](/uk/tools) — усі доступні інструменти агента
