Lobster uruchamia wieloetapowe potoki narzędzi jako jedno deterministyczne wywołanie narzędzia, z
jawnymi punktami zatwierdzania i tokenami wznawiania. Działa warstwę ponad
odłączonymi zadaniami w tle: informacje o koordynowaniu przepływów obejmujących wiele odłączonych zadań
znajdziesz w sekcji TaskFlow (openclaw tasks flow); informacje o rejestrze
aktywności zadań znajdziesz w sekcji Zadania w tle.
Dlaczego
Bez Lobster wieloetapowe zadanie wymaga wielu wywołań narzędzi w obie strony, a
model koordynuje każdy krok. Lobster przenosi tę koordynację do typowanego
środowiska wykonawczego:
- Jedno wywołanie zamiast wielu: pojedyncze wywołanie narzędzia Lobster zwraca ustrukturyzowany
wynik całego potoku.
- Wbudowane zatwierdzanie: skutki uboczne (wysyłanie, publikowanie, usuwanie) zatrzymują przepływ pracy
do czasu jawnego zatwierdzenia.
- Możliwość wznowienia: zatrzymany przepływ pracy zwraca token; można go zatwierdzić i wznowić bez
ponownego wykonywania wcześniejszych kroków.
Lobster to mały, ograniczony język DSL, a nie język skryptowy ogólnego przeznaczenia:
zatwierdzanie/wznawianie jest trwałym, wbudowanym mechanizmem podstawowym; potoki są danymi (łatwymi do
rejestrowania, porównywania, ponownego odtwarzania i przeglądania); niewielka gramatyka ogranicza „kreatywne” ścieżki kodu, dzięki czemu
walidacja pozostaje realistyczna; limity czasu, limity danych wyjściowych, kontrole piaskownicy i
listy dozwolonych elementów są wymuszane przez środowisko wykonawcze, a nie przez poszczególne skrypty. Każdy krok nadal może
wywoływać dowolne CLI lub skrypt — jeśli potrzebujesz bogatszego języka tworzenia przepływów, generuj pliki .lobster
za pomocą innych narzędzi.
Bez Lobster cykliczna selekcja poczty e-mail wygląda tak:
Z Lobster to samo zadanie jest jednym wywołaniem, które zatrzymuje się w celu zatwierdzenia, a następnie jest wznawiane:
Jak to działa
OpenClaw uruchamia przepływy pracy Lobster wewnątrz procesu, używając dołączonego
pakietu @clawdbot/lobster jako osadzonego modułu wykonawczego. Nie jest uruchamiany żaden zewnętrzny podproces lobster;
wywołanie narzędzia zwraca bezpośrednio obwiednię JSON. Jeśli
potok zatrzyma się w celu zatwierdzenia, obwiednia zawiera token wznowienia (lub krótki
identyfikator zatwierdzenia), dzięki czemu można kontynuować później.
Włączanie
Lobster jest opcjonalnym narzędziem Pluginu, domyślnie niewłączonym. Jest dostarczany
w pakiecie, więc nie wymaga osobnej instalacji — wystarczy zezwolić na użycie narzędzia:
Lub dla poszczególnych agentów:
alsoAllow dodaje lobster do aktywnego profilu narzędzi bez
ograniczania innych podstawowych narzędzi. Używaj tools.allow tylko wtedy, gdy zamiast tego chcesz zastosować restrykcyjny
tryb listy dozwolonych elementów.
Narzędzie jest całkowicie wyłączone w kontekstach narzędzi działających w piaskownicy.
Jeśli potrzebujesz samodzielnego CLI Lobster do programowania lub zewnętrznych potoków
(poza osadzonym modułem wykonawczym Gateway), zainstaluj je z
repozytorium Lobster i dodaj lobster do
PATH.
Wzorzec: małe CLI + potoki JSON + zatwierdzanie
Twórz małe polecenia komunikujące się za pomocą JSON, a następnie łącz je w jedno wywołanie Lobster.
(Poniższe nazwy poleceń są przykładowe — zastąp je własnymi).
Jeśli potok zażąda zatwierdzenia, wznów go przy użyciu tokenu:
Przykład: mapowanie elementów wejściowych na wywołania narzędzi:
Kroki LLM używające wyłącznie JSON (llm-task)
Aby wykonać ustrukturyzowany krok LLM wewnątrz przepływu pracy, włącz opcjonalne
narzędzie Pluginu llm-task i wywołaj je z Lobster:
Ważne ograniczenie: osadzony Lobster a openclaw.invoke
Dołączony Plugin Lobster uruchamia przepływy pracy wewnątrz procesu Gateway.
W tym osadzonym trybie openclaw.invoke nie dziedziczy automatycznie
adresu URL Gateway ani kontekstu uwierzytelniania dla zagnieżdżonych wywołań narzędzi CLI OpenClaw.
Oznacza to, że ten wzorzec nie jest obecnie niezawodny w osadzonym module wykonawczym:
Poniższego przykładu używaj tylko podczas uruchamiania samodzielnego CLI Lobster w
środowisku, w którym openclaw.invoke jest już skonfigurowane z prawidłowym
adresem Gateway i kontekstem uwierzytelniania.
Jeśli obecnie używasz osadzonego Pluginu Lobster, wybierz jedną z następujących opcji:
- bezpośrednie wywołanie narzędzia
llm-task poza Lobster lub
- kroki inne niż
openclaw.invoke wewnątrz potoku Lobster, dopóki nie zostanie dodany obsługiwany
most osadzony.
Szczegółowe informacje i opcje konfiguracji znajdziesz w sekcji Zadanie LLM.
Pliki przepływów pracy (.lobster)
Lobster może uruchamiać pliki przepływów pracy YAML/JSON z polami name, args, steps, env,
condition i approval. W wywołaniu narzędzia ustaw pipeline na ścieżkę pliku.
Uwagi:
stdin: $step.stdout i stdin: $step.json przekazują dane wyjściowe wcześniejszego kroku.
condition (lub when) może uzależniać wykonanie kroków od $step.approved.
Parametry narzędzia
run
Uruchom plik przepływu pracy z argumentami:
resume
resume przyjmuje token (pełny token wznowienia z requiresApproval)
albo approvalId (krótki identyfikator z tego samego obiektu) — użyj wartości zwróconej przez zatrzymane
wykonanie. Parametr approve jest wymagany.
Tryb zarządzanego TaskFlow
Przekazanie flowControllerId i flowGoal do run (albo flowId i
flowExpectedRevision do resume) kieruje wywołanie przez zarządzany interfejs API
TaskFlow środowiska wykonawczego Pluginu zamiast zwracać
samą obwiednię: OpenClaw tworzy lub wznawia trwały rekord przepływu, stosuje do niego
obwiednię Lobster (waiting podczas oczekiwania na zatwierdzenie, succeeded/failed po
zakończeniu) i zwraca { ok, envelope, flow, mutation }. Ten tryb wymaga
powiązanego środowiska wykonawczego TaskFlow i jest przeznaczony dla kodu Pluginu lub kontrolera, który potrzebuje
trwałego stanu przepływu między ponownymi uruchomieniami Gateway, a nie do typowego doraźnego użycia przez agenta.
Obwiednia wyjściowa
Lobster zwraca obwiednię JSON z jednym z trzech stanów:
ok — zakończono pomyślnie
needs_approval — wstrzymano; requiresApproval zawiera resumeToken oraz krótki
approvalId, a każdy z nich może posłużyć do wznowienia wykonania
cancelled — jawnie odrzucono lub anulowano
Narzędzie udostępnia obwiednię zarówno w content (sformatowany JSON), jak i details
(surowy obiekt).
Zatwierdzanie
Jeśli występuje requiresApproval, zapoznaj się z komunikatem i zdecyduj:
approve: true — wznów i kontynuuj wykonywanie skutków ubocznych
approve: false — anuluj i zakończ przepływ pracy
Użyj approve --preview-from-stdin --limit N, aby dołączyć podgląd JSON do
żądań zatwierdzenia bez niestandardowego łączenia za pomocą jq/heredoc. Stan wznowienia jest przechowywany jako
małe pliki JSON w katalogu stanu Lobster (domyślnie ~/.lobster/state,
można go zmienić za pomocą LOBSTER_STATE_DIR); sam token koduje tylko
wskaźnik do tego stanu, a nie pełny stan potoku.
OpenProse
OpenProse dobrze współpracuje z Lobster: użyj /prose, aby koordynować przygotowanie
przez wielu agentów, a następnie uruchom potok Lobster w celu deterministycznego zatwierdzania. Jeśli program Prose
potrzebuje Lobster, zezwól podagentom na użycie narzędzia lobster za pomocą
tools.subagents.tools. Zobacz OpenProse.
Bezpieczeństwo
- Tylko lokalnie, wewnątrz procesu — przepływy pracy są wykonywane wewnątrz procesu Gateway; sam Plugin nie wykonuje
wywołań sieciowych.
- Bez sekretów — Lobster nie zarządza OAuth; wywołuje narzędzia OpenClaw, które
się tym zajmują.
- Uwzględnianie piaskownicy — narzędzie jest wyłączone, gdy jego kontekst działa w piaskownicy.
- Wzmocnione zabezpieczenia — limity czasu i danych wyjściowych są wymuszane przez osadzony moduł wykonawczy.
Rozwiązywanie problemów
Studium przypadku: przepływy pracy społeczności
Jeden z publicznych przykładów: CLI „drugiego mózgu” oraz potoki Lobster, które zarządzają trzema
magazynami Markdown (osobistym, partnera i współdzielonym). CLI generuje dane JSON ze statystykami,
listami skrzynek odbiorczych i skanami nieaktualnych elementów; Lobster łączy te polecenia w przepływy pracy,
takie jak weekly-review, inbox-triage, memory-consolidation i
shared-task-sync, każdy z bramkami zatwierdzania. AI dokonuje oceny
(kategoryzacji), gdy jest dostępna, a gdy nie jest — korzysta z deterministycznych reguł
zastępczych.
Powiązane