确定性多 Agent 开发流水线:在 OpenClaw + Lobster 上的实战

> 来源: https://dev.to/ggondim/how-i-built-a-deterministic-multi-agent-dev-pipeline-inside-openclaw-and-contributed-a-missing-4ool

> 作者: ggondim

> 日期: 2026 年初

> 关键词: OpenClaw, Lobster, 多 Agent, 确定性编排

📌 核心内容

这是一篇极其详尽的实战文章,作者用了两个月时间探索如何构建一个自主运行的 AI 开发团队流水线:程序员 Agent → 审查员 Agent → 测试员 Agent,最终在 OpenClaw + Lobster 上找到了解决方案,并为 Lobster 贡献了循环(loop)支持(PR #20)。

核心原则:LLM 做创造性工作,代码做编排逻辑。绝不用 LLM 做流程控制。

🗺️ 探索历程:5 次尝试

❌ 尝试 1:Ralph Orchestrator

❌ 尝试 2:OpenClaw Sub-Agents

❌ 尝试 3:外部事件总线

❌ 尝试 4:技能驱动自编排

❌ 尝试 5:Plugin Hooks 事件总线

✅ 最终方案:Lobster + Sub-Lobsters

突破口:仔细读文档后发现 OpenClaw 三个关键原语:

1. agentToAgent — Agent 间点对点消息(非子 Agent,是对等 Agent)

2. sessions_send — 可寻址的 session 消息发送

3. Webhooks + Session Routing — 外部触发器路由到特定 Agent/Session

Lobster 几乎完美,唯一缺的是循环支持。于是作者直接为 Lobster 贡献了 PR #20。

🏗️ 最终架构


Telegram
    │
    ▼
OpenClaw Gateway
    │
    ├── Agents(独立工作区/工具/身份/模型)
    │   ├── programmer/  (Opus, 有写权限)
    │   ├── reviewer/    (Sonnet, 只读权限, 省钱)
    │   └── tester/      (有测试运行器)
    │
    ├── Lobster 工作流引擎
    │   ├── dev-pipeline.lobster  (主流程: 循环 → 测试 → 通知)
    │   └── code-review.lobster   (子流程: 写码 → 审查 → 解析)
    │
    └── llm-task 插件(结构化 JSON + Schema 验证)

主工作流


name: dev-pipeline
steps:
  - id: code-review-loop
    lobster: ./code-review.lobster    # 嵌套子工作流
    loop:
      maxIterations: 3                # 最多 3 轮
      condition: '! echo "$LOBSTER_LOOP_JSON" | jq -e ".approved"'
  
  - id: test
    command: openclaw.invoke --tool agent-send ...
    condition: $code-review-loop.json.approved == true
  
  - id: notify
    command: openclaw.invoke --tool message --action send ...

子工作流(code-review.lobster)


steps:
  - id: code      # 程序员写代码
  - id: review    # 审查员审查
  - id: parse     # llm-task 解析审查结果为 {approved, feedback}

关键:循环条件由 shell 命令判断(检查 JSON 中的 approved 字段),不是 LLM 判断。完全确定性。

💡 作者总结的五条经验

1. 不要用 LLM 做编排

> "每次我试图在 prompt 里放流程控制('完成后发给审查员'),就引入了一个故障模式。LLM 是不可靠的路由器。"

2. 仔细读文档(读两遍)

> "我差点建了个完整的外部事件总线,才发现 OpenClaw 已经有 agentToAgent、sessions_send 和 webhook session routing。"

3. 贡献缺失的部分,而不是绕过它

> "Lobster 没有循环。与其写 wrapper 模拟循环,不如直接给 Lobster 加上循环支持。PR 只有 129 行实现 + 186 行测试。"

4. Session Key 就是你的数据模型

> pipeline:: 一个字符串搞定项目隔离、角色分离和可寻址。不需要数据库。

5. 类型化管道碾压 Prompt Engineering

> "一个带 condition、loop、stdin 管道的 YAML 文件,比告诉 LLM '如果审查是否定的就回到步骤 2,但最多 3 次' 可靠一万倍。"

📊 分析与评价

与之前报告的关联

这篇文章完美印证了我们之前两篇报告的观点:

报告核心观点本文实证
[Agentic 工程师指南](https://temp.jaylab.io/world-class-agentic-engineer-report)研究与实现分离;把确定性步骤固化Lobster 做编排,LLM 做创造
[Lobster 工作流引擎](https://temp.jaylab.io/lobster-workflow-shell-report)审批门、类型化管道、节省 token本文是 Lobster 最完整的实战案例

特别值得注意的

1. GitHub Copilot 写了 100% 的实现代码 — PR #20 的代码完全由 Copilot coding agent 编写

2. 模型差异化:程序员用 Opus(贵但强),审查员用 Sonnet(省钱)

3. 零外部基础设施:不需要 Redis、不需要消息队列、不需要数据库

评分

维度评分(/10)
技术深度9.5
实用价值9
写作质量9.5
开源贡献9
**综合****9.3**

🔗 与我们的关联

1. 直接可用:我们就在用 OpenClaw,这个架构可以直接复用

2. 深度研究自动化:可以用 Lobster 把"抓取 → 搜索 → 写报告 → 部署"流水线化

3. 多 Agent 协作模式:程序员/审查员/测试员的模式可以推广到其他场景(如研究员/编辑/校对)

4. PR #20:循环支持是关键缺失,值得关注合并进度

报告由深度研究助手自动生成 | 2026-03-07