Lobster
Lobster は、OpenClaw がマルチステップのツールシーケンスを、明示的な承認チェックポイントを備えた単一の決定論的オペレーションとして実行できるようにするワークフローシェルです。フック
アシスタントは自身を管理するツールを構築できます。 ワークフローを要求すると、30 分後には、1 つのコールとして実行される CLI とパイプラインがあります。 ロブスターは欠けている部分である:決定的なパイプライン、明示的な承認、および再開可能な状態。なぜ
今日、複雑なワークフローでは、多くの前後のツールコールが必要となります。 各コールにトークンがかかり、LLMはすべてのステップをオーケストレーションしなければなりません。 ロブスターはオーケストレーションを型付きランタイムに移動します:- 多数ではなく 1 回の呼び出し: OpenClaw は 1 回の Lobster ツール呼び出しを実行し、構造化された結果を取得します。
- 承認を内蔵: 副作用(メール送信、コメント投稿など)は、明示的に承認されるまでワークフローを停止します。
- 再開可能: 停止したワークフローはトークンを返します。承認後、すべてを再実行せずに再開できます。
なぜ通常のプログラムではなくDSLを使うのか?
ロブスターは意図的に小さいです。 目標は「新しい言語」ではなく、予測可能なAIに優しいパイプライン仕様であり、ファーストクラスの承認と再開トークンを備えています。- 承認/再開を内蔵: 通常のプログラムでも人に確認を促すことはできますが、耐久性のあるトークンで「一時停止と再開」を実現するには、自前でランタイムを発明する必要があります。
- 決定論性 + 監査性: パイプラインはデータであるため、ログ記録、差分、再生、レビューが容易です。
- AI 向けに制約された表面: 小さな文法と JSON パイピングにより、「創造的」なコードパスを減らし、現実的な検証を可能にします。
- 安全ポリシーを組み込み: タイムアウト、出力上限、サンドボックスチェック、許可リストは、各スクリプトではなくランタイムによって強制されます。
- まだプログラム可能: 各ステップは任意の CLI またはスクリプトを呼び出すことができます。 それでもプログラム可能: 各ステップは任意の CLI やスクリプトを呼び出せます。JS/TS を使いたい場合は、コードから
.lobsterファイルを生成してください。 それでもプログラム可能: 各ステップは任意の CLI やスクリプトを呼び出せます。JS/TS を使いたい場合は、コードから.lobsterファイルを生成してください。
How it works
OpenClaw は tool mode でローカルのlobster CLI を起動し、stdout から JSON エンベロープを解析します。
パイプラインが承認待ちで停止した場合、ツールは resumeToken を返し、後で続行できます。
パイプラインが承認を一時停止すると、ツールは resumeToken を返します。
パイプラインが承認を一時停止すると、ツールは resumeToken を返します。
パターン:小さなCLI + JSONパイプ + 承認
JSON を話す小さなコマンドを構築し、それらを 1 回の Lobster 呼び出しにチェーンします。(以下のコマンド名は例です。独自のものに置き換えてください。) (以下のコマンド名の例 — 自分でスワップします。 (以下のコマンド名の例 — 自分でスワップします。JSONのみのLLMステップ(llm-task)
構造化された LLM ステップ が必要なワークフローでは、オプションのllm-task プラグインツールを有効化し、Lobster から呼び出します。これにより、モデルを用いた分類・要約・下書きを行いながら、ワークフローの決定論性を維持できます。 これにより、ワークフロー
を決定的に保ち、モデルで分類/要約/下書きを行うことができます。 これにより、ワークフロー
を決定的に保ち、モデルで分類/要約/下書きを行うことができます。
ツールを有効化します。
ワークフローファイル(.lobster)
Lobster は、name、args、steps、env、condition、approval フィールドを持つ YAML/JSON のワークフローファイルを実行できます。OpenClaw のツール呼び出しでは、ファイルパスを pipeline に設定します。 OpenClawツール呼び出しで、ファイルパスにpipelineを設定します。 OpenClawツール呼び出しで、ファイルパスにpipelineを設定します。
stdin: $step.stdoutとstdin: $step.jsonは、前のステップの出力を渡します。condition(またはwhen)は、$step.approvedに基づいてステップをゲートできます。
Lobsterをインストール
OpenClaw Gateway(ゲートウェイ)を実行している 同一ホスト に Lobster CLI をインストールし(Lobster repo を参照)、lobster が PATH 上にあることを確認してください。
カスタムのバイナリ位置を使用したい場合は、ツール呼び出しで 絶対パス の lobsterPath を指定します。
カスタムバイナリの場所を使用したい場合は、ツール呼び出しに absolute lobsterPath を渡してください。
カスタムバイナリの場所を使用したい場合は、ツール呼び出しに absolute lobsterPath を渡してください。
Enable the tool
Lobster は オプション のプラグインツールです(デフォルトでは有効ではありません)。 推奨(追加的で安全):tools.allow: ["lobster"] の使用は避けてください。
注意: 許容リストはオプションのプラグインのオプトインです。 注記: 許可リストはオプションプラグインに対してオプトインです。許可リストに
lobster のようなプラグインツールのみを指定した場合、OpenClaw はコアツールを有効のままにします。コアツールを制限したい場合は、許可したいコアツールやグループも許可リストに含めてください。 コア
ツールを制限するには、許容リストにもコアツールまたはグループを含めてください。
Example: Email triage
Lobster を使わない場合:Tool parameters
run
tool mode でパイプラインを実行します。
resume
承認後に停止したワークフローを継続します。
Optional inputs
lobsterPath: Lobster バイナリへの絶対パス(省略時はPATHを使用)。cwd: パイプラインの作業ディレクトリ(デフォルトは現在のプロセスの作業ディレクトリ)。timeoutMs: この時間を超えた場合にサブプロセスを強制終了します(デフォルト: 20000)。maxStdoutBytes: stdout がこのサイズを超えた場合にサブプロセスを強制終了します(デフォルト: 512000)。argsJson:lobster run --args-jsonに渡される JSON 文字列(ワークフローファイルのみ)。
Output envelope
Lobster は、次の 3 つのステータスのいずれかを持つ JSON エンベロープを返します。ok→ 正常に完了needs_approval→ 一時停止中。再開にはrequiresApproval.resumeTokenが必要cancelled→ 明示的に拒否、またはキャンセル
content(整形された JSON)と details(生オブジェクト)の両方で公開します。
Approvals
requiresApproval が存在する場合、プロンプトを確認して判断します。
approve: true→ 再開し、副作用を続行approve: false→ キャンセルしてワークフローを確定
approve --preview-from-stdin --limit N を使用すると、カスタムの jq や heredoc のグルーコードなしで、承認リクエストに JSON プレビューを添付できます。再開トークンはコンパクトになりました。Lobster はワークフローの再開状態を自身の state ディレクトリに保存し、小さなトークンキーを返します。 トークンを再開するには: ロブスターはワークフローの再開状態を状態ディレクトリの下に保存し、小さなトークンキーを返します。
OpenProse
OpenProse は Lobster と相性が良好です。/prose を使ってマルチエージェントの準備をオーケストレーションし、その後、決定論的な承認のために Lobster パイプラインを実行します。Prose プログラムが Lobster を必要とする場合は、tools.subagents.tools を介してサブエージェントに lobster ツールを許可してください。OpenProse を参照してください。 Proseプログラムにロブスターが必要な場合は、tools.subagents.tools を介してサブエージェント用の lobster ツールを許可します。 OpenProse を参照してください。 Proseプログラムにロブスターが必要な場合は、tools.subagents.tools を介してサブエージェント用の lobster ツールを許可します。 OpenProse を参照してください。
Safety
- ローカルサブプロセスのみ — プラグイン自体からのネットワーク呼び出しはありません。
- シークレットなし — Lobster は OAuth を管理しません。OAuth を扱う OpenClaw ツールを呼び出します。
- サンドボックス認識 — ツールコンテキストがサンドボックス化されている場合は無効化されます。
- 堅牢化 — 指定する場合、
lobsterPathは絶対パスでなければなりません。タイムアウトと出力上限が強制されます。
Troubleshooting
lobster subprocess timed out→timeoutMsを増やすか、長いパイプラインを分割してください。lobster output exceeded maxStdoutBytes→maxStdoutBytesを引き上げるか、出力サイズを削減してください。lobster returned invalid JSON→ パイプラインが tool mode で実行され、JSON のみを出力していることを確認してください。lobster failed (code …)→ 同じパイプラインをターミナルで実行し、stderr を確認してください。
Learn more
Case study: community workflows
1つの公開例: 「セカンドブレイン」CLIとロブスターパイプライン。マークダウンの3つの保管庫(個人、パートナー、共有)を管理します。 公開されている例の 1 つは、「第二の脳」CLI と Lobster パイプラインで、3 つの Markdown ボールト(個人、パートナー、共有)を管理するものです。CLI は統計、受信箱一覧、陳腐化スキャン用の JSON を出力し、Lobster はそれらのコマンドをweekly-review、inbox-triage、memory-consolidation、shared-task-sync といったワークフローにチェーンします。それぞれに承認ゲートがあり、AI が利用可能な場合は判断(分類)を担当し、利用できない場合は決定論的ルールにフォールバックします。 AIは、利用可能な場合に判断(分類)を処理し、そうでない場合には決定的なルールに戻ります。