介绍
# Lobster
> **贡献:** 欢迎在 [github.com/guwidoe/lobster-skill](https://github.com/guwidoe/lobster-skill) 贡献源代码和提交 PR。
面向 AI 智能体的工作流运行时——带有审批门控的类型化流水线。
## CLI 位置
```bash # Set alias (adjust path to your install location) LOBSTER="node /home/molt/clawd/tools/lobster/bin/lobster.js"
# Or install globally: npm install -g @clawdbot/lobster # Then use: lobster '<pipeline>' ```
## 快速参考
```bash # Run pipeline (human mode - pretty output) $LOBSTER '<pipeline>'
# Run pipeline (tool mode - JSON envelope for integration) $LOBSTER run --mode tool '<pipeline>'
# Run workflow file $LOBSTER run path/to/workflow.lobster
# Resume after approval $LOBSTER resume --token "<token>" --approve yes|no
# List commands/workflows $LOBSTER commands.list $LOBSTER workflows.list ```
## 核心命令
| 命令 | 用途 | |---------|---------| | `exec --json --shell "cmd"` | 运行 Shell,将 stdout 解析为 JSON | | `where 'field=value'` | 过滤对象 | | `pick field1,field2` | 投影字段 | | `head --n 5` | 获取前 N 项 | | `sort --key field --desc` | 排序项目 | | `groupBy --key field` | 按键分组 | | `dedupe --key field` | 去重 | | `map --wrap key` | 转换项目 | | `template --text "{{field}}"` | 渲染模板 | | `approve --prompt "ok?"` | **暂停以等待审批** | | `diff.last --key "mykey"` | 与上次运行对比(有状态) | | `state.get key` / `state.set key` | 读写持久化状态 | | `json` / `table` | 渲染输出 |
## 内置工作流
```bash # Monitor PR for changes (stateful - remembers last state) $LOBSTER "workflows.run --name github.pr.monitor --args-json '{\"repo\":\"owner/repo\",\"pr\":123}'"
# Monitor PR and emit message only on change $LOBSTER "workflows.run --name github.pr.monitor.notify --args-json '{\"repo\":\"owner/repo\",\"pr\":123}'" ```
## 审批流(工具模式)
当流水线遇到 `approve` 时,它将返回:
```json { "status": "needs_approval", "requiresApproval": { "prompt": "Send 3 emails?", "items": [...], "resumeToken": "eyJ..." } } ```
要继续: ```bash $LOBSTER resume --token "eyJ..." --approve yes ```
## 示例流水线
```bash # List recent PRs, filter merged, show as table $LOBSTER 'exec --json --shell "gh pr list --repo owner/repo --json number,title,state --limit 20" | where "state=MERGED" | table'
# Get data, require approval, then process $LOBSTER run --mode tool 'exec --json --shell "echo [{\"id\":1},{\"id\":2}]" | approve --prompt "Process these?" | pick id | json'
# Diff against last run (only emit on change) $LOBSTER 'exec --json --shell "gh pr view 123 --repo o/r --json state,title" | diff.last --key "pr:o/r#123" | json' ```
## 工作流文件 (.lobster)
包含步骤、条件和审批门的 YAML/JSON 文件:
```yaml name: pr-review-reminder steps: - id: fetch command: gh pr list --repo ${repo} --json number,title,reviewDecision - id: filter command: jq '[.[] | select(.reviewDecision == "")]' stdin: $fetch.stdout - id: notify command: echo "PRs needing review:" && cat stdin: $filter.stdout approval: required ```
运行:`$LOBSTER run workflow.lobster --args-json '{"repo":"owner/repo"}'`
## Clawdbot 集成
Lobster 可以通过 `clawd.invoke` 调用 Clawdbot 工具:
```bash $LOBSTER 'clawd.invoke --tool message --action send --args-json "{\"target\":\"123\",\"message\":\"hello\"}"' ```
需要设置 `CLAWD_URL` 和 `CLAWD_TOKEN` 环境变量。
## 状态目录
Lobster 默认将状态存储在 `~/.lobster/state/` 中。可通过 `LOBSTER_STATE_DIR` 覆盖。