Skip to Content
👋 欢迎来到 HowToUseMoltbot 快速入门
工具Lobster

Lobster

Lobster 是工作流外壳,让 Moltbot 以单次、确定性的操作运行多步工具序列,并带有显式审批检查点。

卖点

你的助手可以构建管理自己的工作流的工具。提出工作流需求,几十分钟后你就有一个 CLI 和作为单次调用运行的流水线。Lobster 补上最后一块:确定性流水线、显式审批与可恢复状态。

为何使用

如今复杂工作流需要大量来回工具调用,每次调用消耗 token,且 LLM 要编排每一步。Lobster 将编排移入类型化运行时:

  • 一次调用替代多次:Moltbot 执行一次 Lobster 工具调用即可得到结构化结果。
  • 内置审批:有副作用的步骤(发邮件、发评论)会暂停工作流直到显式批准。
  • 可恢复:暂停的工作流返回 token;批准后恢复,无需重跑全部。

为何用 DSL 而非普通程序?

Lobster 刻意保持小巧。目标不是“新语言”,而是可预测、对 AI 友好的流水线规约,并有一等审批与恢复 token。

  • 审批/恢复内置:普通程序可以弹窗,但无法暂停并带着持久 token 恢复,除非自建运行时。
  • 确定性 + 可审计:流水线即数据,便于日志、diff、重放与审查。
  • 对 AI 的受限表面:小语法 + JSON 管道减少“创造性”代码路径,便于校验。
  • 安全策略内置:超时、输出上限、沙箱检查、白名单由运行时统一执行,而非每个脚本各自实现。
  • 仍可编程:每步可调用任意 CLI 或脚本;若要 JS/TS,可从代码生成 .lobster 文件。

工作原理

Moltbot 以工具模式启动本地 lobster CLI,并从 stdout 解析 JSON 信封。若流水线因审批暂停,工具返回 resumeToken 以便稍后继续。

模式:小 CLI + JSON 管道 + 审批

先构建输出 JSON 的小命令,再在一次 Lobster 调用中链式执行。示例(命令名可替换):

inbox list --json inbox categorize --json inbox apply --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 }

若流水线请求审批,用 token 恢复:

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

AI 触发工作流;Lobster 执行步骤。审批门控让副作用显式且可审计。

JSON-only LLM 步骤(llm-task)

需要结构化 LLM 步骤的工作流可启用可选 llm-task 插件工具,并在 Lobster 中调用。这样工作流保持确定性,同时可用模型进行分类/摘要/草稿。启用方式见英文配置示例。在流水线中使用示例见 LLM Task

工作流文件(.lobster)

Lobster 可运行带 nameargsstepsenvconditionapproval 的 YAML/JSON 工作流文件。在 Moltbot 工具调用中将 pipeline 设为文件路径。说明:stdin: $step.stdoutstdin: $step.json 传入前一步输出;condition(或 when)可根据 $step.approved 等控制步骤执行。

安装 Lobster

在运行 Moltbot 网关的同一主机上安装 Lobster CLI(见 Lobster 仓库 ),并确保 lobsterPATH 中。若使用自定义二进制路径,在工具调用中传入绝对路径 lobsterPath

启用工具

Lobster 为可选插件工具(默认未启用)。推荐(叠加、安全):

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

或按代理:

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

避免使用 tools.allow: ["lobster"],除非你打算使用限制性白名单模式。可选插件的白名单为 opt-in;若白名单只列插件工具(如 lobster),Moltbot 仍保留核心工具。要限制核心工具,须在白名单中同时列出需要的核心工具或分组。

示例:邮件分类

无 Lobster 时:用户说“查邮件并起草回复”→ 多次来回与工具调用,且无“已分类”记忆。有 Lobster 时:一次工具调用 {"action":"run","pipeline":"email.triage --limit 20","timeoutMs":30000},返回 JSON 信封;若为 needs_approval,用户批准后用 action: "resume"token 继续。一次工作流、确定性、安全。

工具参数

run

在工具模式下运行流水线。可传 pipelinecwdtimeoutMsmaxStdoutBytes。运行工作流文件时可传 argsJson

resume

审批后继续已暂停的工作流。传 tokenapprove: true

可选输入

lobsterPathcwdtimeoutMs(默认 20000)、maxStdoutBytes(默认 512000)、argsJson(仅工作流文件)。

输出信封

Lobster 返回三种状态之一的 JSON 信封:ok(成功结束)、needs_approval(已暂停;requiresApproval.resumeToken 用于恢复)、cancelled(显式拒绝或取消)。工具在 content(格式化 JSON)与 details(原始对象)中提供该信封。

审批

若存在 requiresApproval,查看 prompt 并决定:approve: true → 恢复并继续副作用;approve: false → 取消并结束工作流。可用 approve --preview-from-stdin --limit N 将 JSON 预览附到审批请求。

OpenProse

OpenProse 与 Lobster 搭配良好:用 /prose 做多代理准备,再运行 Lobster 流水线做确定性审批。若 Prose 程序需要 Lobster,可通过 tools.subagents.tools 为子代理允许 lobster 工具。

安全

  • 仅本地子进程 — 插件本身不发起网络调用。
  • 无秘密 — Lobster 不管理 OAuth;它调用 clawd 工具完成。
  • 沙箱感知 — 工具上下文为沙箱时禁用。
  • 加固 — 若指定 lobsterPath 须为绝对路径;强制超时与输出上限。

故障排查

  • lobster subprocess timed out → 增大 timeoutMs 或拆分长流水线。
  • lobster output exceeded maxStdoutBytes → 增大 maxStdoutBytes 或减少输出。
  • lobster returned invalid JSON → 确保流水线以工具模式运行且仅输出 JSON。
  • lobster failed (code …) → 在终端直接运行同一流水线查看 stderr。

延伸阅读

社区案例:有公开的“第二大脑”CLI + Lobster 流水线,管理三个 Markdown 库(个人、伴侣、共享);CLI 输出统计、收件列表与陈旧扫描的 JSON;Lobster 将这些命令链成 weekly-reviewinbox-triagememory-consolidationshared-task-sync 等工作流,每项带审批门控。AI 在可用时做判断(分类),否则回退到确定性规则。线程与仓库见英文文档末尾链接。

最后更新于: