自架服務
openclaw/lobster avatar
openclaw/lobster

Lobster:OpenClaw 原生的型別化工作流程殼層

Lobster 是 Openclaw 原生的工作流程 shell:一種類型化、本地優先的巨集引擎,可將技能/工具轉變為可組合的管道和安全的自動化,並讓 Openclaw 一步調用這些工作流程。

1,263 個 Star289 個 ForkTypeScriptMIT

秒懂

它是什麼?
Lobster 是一個 OpenClaw 原生工作流程殼層,將技能與工具轉化為型別化管線、任務與核可關卡。
適合誰用?
這篇文章適合需要評估 openclaw/lobster README 所描述工作流程的讀者,不適合把未載明的效能或部署承諾當成既定事實。開始前先依專案自己的命令、輸入檔與設定鍵做一次隔離核對,確認輸出符合你的具體流程,再決定是否納入正式環境。
可以商用嗎?
可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 2 天前。
用什麼語言寫的?
主要是 TypeScript(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月14日)與我們的分析,不構成法律意見。

開源專案深度解析

型別化管線與工作流程檔案

Lobster 是一個 OpenClaw 原生工作流程殼層。它將工作流程定義為基於 JSON 而非文字流的型別化管線,並包含任務與核可關卡。OpenClaw 等代理可以單步呼叫 Lobster 工作流程,README 表示這可以節省 token,並比逐步重新規劃更確定、更可恢復。README 展示了 github.pr.monitor 工作流程的兩個呼叫範例,一個 PR 未變化,另一個 PR 已合併;兩者都回傳帶有 prSnapshot 與變更欄位摘要的結構化 JSON。

openclaw/lobster 的第 1 個核對面向,應以本章提到的 README 介面作為邊界。回到 openclaw/lobster 的 README,逐一查看本章涉及的命令、輸入格式、設定鍵或範例檔案,並把實際輸出與錯誤訊息分開記錄。素材沒有說明的作業系統、效能、相容性或服務承諾,不在本文替它補成結論。

若要做小規模核對,請從 lobster 已列出的入口開始,保留使用的參數與輸出路徑。這樣可以判斷第 1 章所談的功能是否能接入你的流程,也能看出缺少哪一項依賴;一次成功執行仍只代表這組輸入可行,不能推導出 README 未寫出的保證。

在 openclaw/lobster 的實際紀錄中,應特別標記第 1 章的輸入、輸出與失敗訊息。若章節提到設定檔,就檢查該檔案的欄位;若提到命令,就保存完整命令列。這些具體資料比抽象的採用判斷更能說明 lobster 是否適合目前任務。

設計目標

README 列出四個目標。管線應是型別化的,即使用物件與陣列而非文字管道。執行應本地優先。Lobster 不應引入新的認證表面,因此不能持有 OAuth token 或類似憑證。工作流程應成為可組合的巨集,OpenClaw 或任何代理都能單步呼叫以節省 token。這些目標解釋了專案為何自稱工作流程殼層而非服務。

openclaw/lobster 的第 2 個核對面向,應以本章提到的 README 介面作為邊界。回到 openclaw/lobster 的 README,逐一查看本章涉及的命令、輸入格式、設定鍵或範例檔案,並把實際輸出與錯誤訊息分開記錄。素材沒有說明的作業系統、效能、相容性或服務承諾,不在本文替它補成結論。

若要做小規模核對,請從 lobster 已列出的入口開始,保留使用的參數與輸出路徑。這樣可以判斷第 2 章所談的功能是否能接入你的流程,也能看出缺少哪一項依賴;一次成功執行仍只代表這組輸入可行,不能推導出 README 未寫出的保證。

在 openclaw/lobster 的實際紀錄中,應特別標記第 2 章的輸入、輸出與失敗訊息。若章節提到設定檔,就檢查該檔案的欄位;若提到命令,就保存完整命令列。這些具體資料比抽象的採用判斷更能說明 lobster 是否適合目前任務。

快速開始指令

快速開始部分列出 pnpm install、pnpm test、pnpm lint、node ./bin/lobster.js --help、node ./bin/lobster.js doctor,以及一個將 JSON 透過 exec、where 與 json 串聯的範例指令。測試指令會先執行 tsc,然後針對 dist/ 執行測試;bin/lobster.js 在 dist/ 存在時優先使用編譯後的進入點。README 沒有列出 npm 安裝指令,因此除 pnpm 之外的套件安裝方式仍需驗證。

openclaw/lobster 的第 3 個核對面向,應以本章提到的 README 介面作為邊界。回到 openclaw/lobster 的 README,逐一查看本章涉及的命令、輸入格式、設定鍵或範例檔案,並把實際輸出與錯誤訊息分開記錄。素材沒有說明的作業系統、效能、相容性或服務承諾,不在本文替它補成結論。

若要做小規模核對,請從 lobster 已列出的入口開始,保留使用的參數與輸出路徑。這樣可以判斷第 3 章所談的功能是否能接入你的流程,也能看出缺少哪一項依賴;一次成功執行仍只代表這組輸入可行,不能推導出 README 未寫出的保證。

在 openclaw/lobster 的實際紀錄中,應特別標記第 3 章的輸入、輸出與失敗訊息。若章節提到設定檔,就檢查該檔案的欄位;若提到命令,就保存完整命令列。這些具體資料比抽象的採用判斷更能說明 lobster 是否適合目前任務。

工作流程檔案結構

Lobster 工作流程檔案讀起來像小型指令碼。檔案可以包含 run 或 command 步驟用於 shell 與 CLI 操作,pipeline 步驟用於 llm.invoke 等原生 Lobster 階段,approval 步驟作為步驟間的硬性關卡,以及 stdin 條目(如 $step.stdout 或 $step.json)用於向前傳遞資料。README 指出 run 與 command 等價,新檔案建議使用 run,pipeline 步驟與 shell 步驟共享相同的參數、環境與結果模型。範例工作流程 jacket-advice 使用了天氣指令、一個核可步驟與一個 llm.invoke 管線步驟,when 條件綁定到核可結果。

openclaw/lobster 的第 4 個核對面向,應以本章提到的 README 介面作為邊界。回到 openclaw/lobster 的 README,逐一查看本章涉及的命令、輸入格式、設定鍵或範例檔案,並把實際輸出與錯誤訊息分開記錄。素材沒有說明的作業系統、效能、相容性或服務承諾,不在本文替它補成結論。

若要做小規模核對,請從 lobster 已列出的入口開始,保留使用的參數與輸出路徑。這樣可以判斷第 4 章所談的功能是否能接入你的流程,也能看出缺少哪一項依賴;一次成功執行仍只代表這組輸入可行,不能推導出 README 未寫出的保證。

在 openclaw/lobster 的實際紀錄中,應特別標記第 4 章的輸入、輸出與失敗訊息。若章節提到設定檔,就檢查該檔案的欄位;若提到命令,就保存完整命令列。這些具體資料比抽象的採用判斷更能說明 lobster 是否適合目前任務。

核可身份約束

核可步驟可以強制身份約束。工作流程檔案支援 required_approver(或 requiredApprover)要求精確的核可者 id,require_different_approver(或 requireDifferentApprover)要求核可者與發起者不同,initiated_by(或 initiatedBy)設定發起者 id。執行時期,LOBSTER_APPROVAL_INITIATED_BY 可提供預設發起者 id,LOBSTER_APPROVAL_APPROVED_BY 在恢復或核可時用於身份檢查。README 沒有描述這些值的驗證方式,只說明它們被用於檢查。

openclaw/lobster 的第 5 個核對面向,應以本章提到的 README 介面作為邊界。回到 openclaw/lobster 的 README,逐一查看本章涉及的命令、輸入格式、設定鍵或範例檔案,並把實際輸出與錯誤訊息分開記錄。素材沒有說明的作業系統、效能、相容性或服務承諾,不在本文替它補成結論。

若要做小規模核對,請從 lobster 已列出的入口開始,保留使用的參數與輸出路徑。這樣可以判斷第 5 章所談的功能是否能接入你的流程,也能看出缺少哪一項依賴;一次成功執行仍只代表這組輸入可行,不能推導出 README 未寫出的保證。

在 openclaw/lobster 的實際紀錄中,應特別標記第 5 章的輸入、輸出與失敗訊息。若章節提到設定檔,就檢查該檔案的欄位;若提到命令,就保存完整命令列。這些具體資料比抽象的採用判斷更能說明 lobster 是否適合目前任務。

掛起輸入請求與恢復

管線指令可以呼叫 ctx.requestInput,傳入 prompt、responseSchema、defaults、subject 與 suspendedState,以在工具模式、工作流程或 SDK 中暫停,並在取得結構化回應後恢復同一指令。CLI 與工具恢復 token 只儲存狀態鍵,持久化狀態在回傳提交的回應之前會驗證掛起請求的中繼資料。SDK 的同指令恢復會將指令框架儲存在設定的 SDK 狀態目錄中。指令在恢復時會重新執行,因此在 requestInput 返回之前必須保持冪等。陣列支援的指令輸入會帶邊界快照用於重播;惰性串流輸入不緩衝,需要指令提供緊湊的 JSON suspendedState。

openclaw/lobster 的第 6 個核對面向,應以本章提到的 README 介面作為邊界。回到 openclaw/lobster 的 README,逐一查看本章涉及的命令、輸入格式、設定鍵或範例檔案,並把實際輸出與錯誤訊息分開記錄。素材沒有說明的作業系統、效能、相容性或服務承諾,不在本文替它補成結論。

若要做小規模核對,請從 lobster 已列出的入口開始,保留使用的參數與輸出路徑。這樣可以判斷第 6 章所談的功能是否能接入你的流程,也能看出缺少哪一項依賴;一次成功執行仍只代表這組輸入可行,不能推導出 README 未寫出的保證。

在 openclaw/lobster 的實際紀錄中,應特別標記第 6 章的輸入、輸出與失敗訊息。若章節提到設定檔,就檢查該檔案的欄位;若提到命令,就保存完整命令列。這些具體資料比抽象的採用判斷更能說明 lobster 是否適合目前任務。

視覺化工作流程

lobster graph 指令在執行前檢查工作流程結構。它接受 --file 與可選的 --format,值可以是 mermaid(預設)、dot 與 ascii,也可以接受 --args-json。視覺化包括每個步驟作為節點、來自 stdin 引用的資料流邊、來自 when 或 condition 表達式的條件依賴,以及 mermaid 與 dot 輸出中作為菱形節點的核可關卡。README 說明 mermaid 輸出 flowchart TD 文字用於 GitHub 或 Markdown 渲染,dot 輸出 Graphviz DOT,ascii 輸出適合終端的節點與邊列表。

openclaw/lobster 的第 7 個核對面向,應以本章提到的 README 介面作為邊界。回到 openclaw/lobster 的 README,逐一查看本章涉及的命令、輸入格式、設定鍵或範例檔案,並把實際輸出與錯誤訊息分開記錄。素材沒有說明的作業系統、效能、相容性或服務承諾,不在本文替它補成結論。

若要做小規模核對,請從 lobster 已列出的入口開始,保留使用的參數與輸出路徑。這樣可以判斷第 7 章所談的功能是否能接入你的流程,也能看出缺少哪一項依賴;一次成功執行仍只代表這組輸入可行,不能推導出 README 未寫出的保證。

在 openclaw/lobster 的實際紀錄中,應特別標記第 7 章的輸入、輸出與失敗訊息。若章節提到設定檔,就檢查該檔案的欄位;若提到命令,就保存完整命令列。這些具體資料比抽象的採用判斷更能說明 lobster 是否適合目前任務。

LLM 呼叫與提供方

原生 pipeline 步驟可以呼叫 llm.invoke,傳入提示詞與可選的 --provider。提供方解析順序為 --provider、LOBSTER_LLM_PROVIDER,然後從環境自動偵測。內建提供方包括透過 OPENCLAW_URL 與 OPENCLAW_TOKEN 的 openclaw、透過 LOBSTER_PI_LLM_ADAPTER_URL 的 pi,以及透過 LOBSTER_LLM_ADAPTER_URL 的 http。工作流程 _meta.cost 與 cost_limit 使用靜態定價表,並可透過 LOBSTER_LLM_PRICING_JSON 覆寫;未知模型 ID 仍記錄 token 數量,估計成本為零,Lobster 會在 stderr 上警告。README 也記錄了 openclaw.agent 用於呼叫已設定的 OpenClaw 代理,委託給已安裝的 openclaw agent CLI,並說明 llm_task.invoke 仍作為 OpenClaw 提供方的向後相容別名。

openclaw/lobster 的第 8 個核對面向,應以本章提到的 README 介面作為邊界。回到 openclaw/lobster 的 README,逐一查看本章涉及的命令、輸入格式、設定鍵或範例檔案,並把實際輸出與錯誤訊息分開記錄。素材沒有說明的作業系統、效能、相容性或服務承諾,不在本文替它補成結論。

若要做小規模核對,請從 lobster 已列出的入口開始,保留使用的參數與輸出路徑。這樣可以判斷第 8 章所談的功能是否能接入你的流程,也能看出缺少哪一項依賴;一次成功執行仍只代表這組輸入可行,不能推導出 README 未寫出的保證。

在 openclaw/lobster 的實際紀錄中,應特別標記第 8 章的輸入、輸出與失敗訊息。若章節提到設定檔,就檢查該檔案的欄位;若提到命令,就保存完整命令列。這些具體資料比抽象的採用判斷更能說明 lobster 是否適合目前任務。

Shell run 步驟在系統 shell 中執行,因此 OpenClaw 工具呼叫必須是真實可執行檔。如果透過 npm 或 pnpm 安裝 Lobster,它會安裝名為 openclaw.invoke(首選)與 clawd.invoke(別名)的小型墊片可執行檔,轉送到同名的 Lobster 管線指令。README 的範例設定 OPENCLAW_URL 指向執行中的閘道,並可選設定 OPENCLAW_TOKEN,然後執行 openclaw.invoke --tool llm-task --action json --args-json。README 沒有說明這些墊片缺失時會發生什麼。

openclaw/lobster 的第 9 個核對面向,應以本章提到的 README 介面作為邊界。回到 openclaw/lobster 的 README,逐一查看本章涉及的命令、輸入格式、設定鍵或範例檔案,並把實際輸出與錯誤訊息分開記錄。素材沒有說明的作業系統、效能、相容性或服務承諾,不在本文替它補成結論。

若要做小規模核對,請從 lobster 已列出的入口開始,保留使用的參數與輸出路徑。這樣可以判斷第 9 章所談的功能是否能接入你的流程,也能看出缺少哪一項依賴;一次成功執行仍只代表這組輸入可行,不能推導出 README 未寫出的保證。

在 openclaw/lobster 的實際紀錄中,應特別標記第 9 章的輸入、輸出與失敗訊息。若章節提到設定檔,就檢查該檔案的欄位;若提到命令,就保存完整命令列。這些具體資料比抽象的採用判斷更能說明 lobster 是否適合目前任務。

對於 shell run 步驟,${arg} 替換是直接字串替換進 shell 指令文字。對於可能包含引號、美元符號、反引號或換行的值,README 建議使用環境變數。每個解析後的工作流程參數都會暴露為 LOBSTER_ARG_<NAME>,大寫且非字母數字字元替換為底線,完整參數物件可透過 LOBSTER_ARGS_JSON 取得。README 的範例使用環境變數將文字傳給 jq,而不直接插值進指令。

openclaw/lobster 的第 10 個核對面向,應以本章提到的 README 介面作為邊界。回到 openclaw/lobster 的 README,逐一查看本章涉及的命令、輸入格式、設定鍵或範例檔案,並把實際輸出與錯誤訊息分開記錄。素材沒有說明的作業系統、效能、相容性或服務承諾,不在本文替它補成結論。

若要做小規模核對,請從 lobster 已列出的入口開始,保留使用的參數與輸出路徑。這樣可以判斷第 10 章所談的功能是否能接入你的流程,也能看出缺少哪一項依賴;一次成功執行仍只代表這組輸入可行,不能推導出 README 未寫出的保證。

在 openclaw/lobster 的實際紀錄中,應特別標記第 10 章的輸入、輸出與失敗訊息。若章節提到設定檔,就檢查該檔案的欄位;若提到命令,就保存完整命令列。這些具體資料比抽象的採用判斷更能說明 lobster 是否適合目前任務。

編輯結論

這篇文章適合需要評估 openclaw/lobster README 所描述工作流程的讀者,不適合把未載明的效能或部署承諾當成既定事實。開始前先依專案自己的命令、輸入檔與設定鍵做一次隔離核對,確認輸出符合你的具體流程,再決定是否納入正式環境。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記