Lobster
Lobster to powłoka przepływów pracy, która pozwala OpenClaw uruchamiać wieloetapowe sekwencje narzędzi jako jedną, deterministyczną operację z jawnymi punktami kontrolnymi zatwierdzeń.Hook
Twój asystent może budować narzędzia, które same sobą zarządzają. Poproś o przepływ pracy, a po 30 minutach masz CLI oraz potoki uruchamiane jednym wywołaniem. Lobster to brakujący element: deterministyczne potoki, jawne zatwierdzenia i wznawialny stan.Dlaczego
Dziś złożone przepływy pracy wymagają wielu wywołań narzędzi w tę i z powrotem. Każde wywołanie kosztuje tokeny, a LLM musi orkiestrawać każdy krok. Lobster przenosi tę orkiestrację do typowanego runtime’u:- Jedno wywołanie zamiast wielu: OpenClaw uruchamia jedno wywołanie narzędzia Lobster i otrzymuje ustrukturyzowany wynik.
- Zatwierdzenia wbudowane: Efekty uboczne (wysłanie e-maila, publikacja komentarza) wstrzymują przepływ pracy do momentu jawnego zatwierdzenia.
- Wznawialność: Wstrzymane przepływy pracy zwracają token; zatwierdź i wznów bez ponownego uruchamiania wszystkiego.
Dlaczego DSL zamiast zwykłych programów?
Lobster jest celowo niewielki. Celem nie jest „nowy język”, lecz przewidywalna, przyjazna dla AI specyfikacja potoków z pierwszoklasowymi zatwierdzeniami i tokenami wznawiania.- Zatwierdzanie/wznawianie wbudowane: Zwykły program może poprosić człowieka o decyzję, ale nie potrafi zatrzymać się i wznowić z trwałym tokenem bez samodzielnego tworzenia takiego runtime’u.
- Deterministyczność + audytowalność: Potoki są danymi, więc łatwo je logować, porównywać (diff), odtwarzać i przeglądać.
- Ograniczona powierzchnia dla AI: Mała gramatyka + przesyłanie JSON ograniczają „kreatywne” ścieżki kodu i czynią walidację realistyczną.
- Polityka bezpieczeństwa wbudowana: Limity czasu, limity wyjścia, kontrole sandbox i listy dozwolonych są egzekwowane przez runtime, a nie przez każdy skrypt.
- Wciąż programowalne: Każdy krok może wywołać dowolne CLI lub skrypt. Jeśli chcesz JS/TS, generuj pliki
.lobsterz kodu.
Jak to działa
OpenClaw uruchamia lokalne CLIlobster w trybie narzędzia i parsuje kopertę JSON ze stdout.
Jeśli potok zatrzyma się na zatwierdzeniu, narzędzie zwraca resumeToken, aby można było kontynuować później.
Wzorzec: małe CLI + potoki JSON + zatwierdzenia
Buduj małe polecenia mówiące JSON-em, a następnie łącz je w jedno wywołanie Lobster. (Nazwy poleceń w przykładach poniżej — podmień na własne).Kroki LLM tylko z JSON (llm-task)
Dla przepływów pracy wymagających ustrukturyzowanego kroku LLM włącz opcjonalne narzędzie wtyczkillm-task i wywołaj je z Lobster. Dzięki temu przepływ pozostaje
deterministyczny, a jednocześnie możesz klasyfikować/podsumowywać/tworzyć szkice z użyciem modelu.
Włącz narzędzie:
Pliki przepływów pracy (.lobster)
Lobster może uruchamiać pliki przepływów pracy YAML/JSON z polaminame, args, steps, env, condition i approval. W wywołaniach narzędzi OpenClaw ustaw pipeline na ścieżkę do pliku.
stdin: $step.stdoutistdin: $step.jsonprzekazują wyjście poprzedniego kroku.condition(lubwhen) mogą warunkować kroki na podstawie$step.approved.
Instalacja Lobster
Zainstaluj CLI Lobster na tym samym hoście, na którym działa Gateway OpenClaw (zobacz repozytorium Lobster), i upewnij się, żelobster znajduje się na PATH.
Jeśli chcesz użyć niestandardowej lokalizacji binarki, przekaż bezwzględną lobsterPath w wywołaniu narzędzia.
Włącz narzędzie
Lobster jest opcjonalnym narzędziem wtyczki (domyślnie wyłączonym). Zalecane (addytywne, bezpieczne):tools.allow: ["lobster"], chyba że zamierzasz działać w restrykcyjnym trybie listy dozwolonych.
Uwaga: listy dozwolonych są opcjonalne dla wtyczek opcjonalnych. Jeśli Twoja lista dozwolonych wymienia tylko
narzędzia wtyczek (takie jak lobster), OpenClaw pozostawia narzędzia rdzeniowe włączone. Aby ograniczyć narzędzia rdzeniowe,
uwzględnij na liście dozwolonych także narzędzia lub grupy rdzeniowe, które chcesz dopuścić.
Przykład: triage e-maili
Bez Lobster:Parametry narzędzia
run
Uruchom potok w trybie narzędzia.
resume
Kontynuuj wstrzymany przepływ pracy po zatwierdzeniu.
Opcjonalne wejścia
lobsterPath: Bezwzględna ścieżka do binarki Lobster (pomiń, aby użyćPATH).cwd: Katalog roboczy dla potoku (domyślnie bieżący katalog roboczy procesu).timeoutMs: Zabij podproces, jeśli przekroczy ten czas (domyślnie: 20000).maxStdoutBytes: Zabij podproces, jeśli stdout przekroczy ten rozmiar (domyślnie: 512000).argsJson: Ciąg JSON przekazywany dolobster run --args-json(tylko pliki przepływów pracy).
Koperta wyjściowa
Lobster zwraca kopertę JSON z jednym z trzech statusów:ok→ zakończono pomyślnieneeds_approval→ wstrzymano; do wznowienia wymagane jestrequiresApproval.resumeTokencancelled→ jawnie odrzucono lub anulowano
content (ładnie sformatowany JSON), jak i details (surowy obiekt).
Zatwierdzenia
Jeśli obecne jestrequiresApproval, sprawdź komunikat i zdecyduj:
approve: true→ wznów i kontynuuj efekty uboczneapprove: false→ anuluj i sfinalizuj przepływ pracy
approve --preview-from-stdin --limit N, aby dołączać podgląd JSON do próśb o zatwierdzenie bez niestandardowego klejenia jq/heredoc. Tokeny wznawiania są teraz kompaktowe: Lobster przechowuje stan wznawiania przepływu pracy w swoim katalogu stanu i zwraca niewielki klucz tokenu.
OpenProse
OpenProse dobrze współpracuje z Lobster: użyj/prose do orkiestracji przygotowań wieloagentowych, a następnie uruchom potok Lobster dla deterministycznych zatwierdzeń. Jeśli program Prose potrzebuje Lobster, zezwól narzędziu lobster dla subagentów przez tools.subagents.tools. Zobacz OpenProse.
Bezpieczeństwo
- Tylko lokalne podprocesy — brak wywołań sieciowych z samej wtyczki.
- Brak sekretów — Lobster nie zarządza OAuth; wywołuje narzędzia OpenClaw, które to robią.
- Świadomy sandboxa — wyłączony, gdy kontekst narzędzia jest sandboxowany.
- Utwardzony — jeśli podano,
lobsterPathmusi być bezwzględne; egzekwowane są limity czasu i limity wyjścia.
Rozwiązywanie problemów
lobster subprocess timed out→ zwiększtimeoutMslub podziel długi potok.lobster output exceeded maxStdoutBytes→ podnieśmaxStdoutByteslub zmniejsz rozmiar wyjścia.lobster returned invalid JSON→ upewnij się, że potok działa w trybie narzędzia i wypisuje wyłącznie JSON.lobster failed (code …)→ uruchom ten sam potok w terminalu, aby sprawdzić stderr.
Dowiedz się więcej
Studium przypadku: przepływy pracy społeczności
Jeden publiczny przykład: CLI „drugiego mózgu” + potoki Lobster, które zarządzają trzema magazynami Markdown (osobisty, partnera, współdzielony). CLI emituje JSON ze statystykami, listami skrzynki odbiorczej i skanami nieaktualnych elementów; Lobster łączy te polecenia w przepływy pracy takie jakweekly-review, inbox-triage, memory-consolidation i shared-task-sync, każdy z bramkami zatwierdzeń. AI obsługuje ocenę (kategoryzację), gdy jest dostępna, a w przeciwnym razie stosuje deterministyczne reguły.