Skip to content

在 OpenClaw 中配置并行专家通道(specialist lanes)可让不同聊天室或群聊的请求路由到专属智能体,避免一个长任务阻塞其他对话。核心方法是把并行当作稀缺资源设计问题:先为每个通道编写 lane contract(定义职责、非目标、聊天预算和交接规则),再通过队列模式(collect + debounceMs)和 maxConcurrent 限制全局并发。不要直接用 coordinator,否则只会协调混乱。关键命令:创建 workspace 时写入 system prompt 作为 lane contract,或在已有 workspace 的 system prompt 字段追加。

OpenClaw 并行通道配置:如何分流专家智能体避免阻塞

Parallel specialist lanes 让一个 Gateway 能把不同聊天或房间路由到不同智能体,同时保持用户体验流畅。关键在于把并行视为稀缺资源设计问题,而不是简单加更多智能体。

核心原理:哪些资源会变成瓶颈

一个 specialist lane 只有在减少真实瓶颈的争用时才提升吞吐量:

  • Session locks:同一时间只能有一个 run 修改给定 session。
  • Global model capacity:所有可见的 chat run 仍然共享 provider 限制。
  • Tool capacity:shell、browser、network 和 repository 工作可能比模型轮次本身慢。
  • Context budget:长对话记录让每次后续轮次变慢且注意力分散。
  • Ownership ambiguity:重复的智能体做相同工作浪费容量。

OpenClaw 已经通过 command queue 对每个 session 串行化 run 并限制全局并行。Specialist lanes 在此基础上增加策略:哪个智能体拥有哪个工作、什么留在聊天内、什么变成后台工作。

推荐部署路线

阶段 1:Lane contracts + 后台重型工作

为每个 lane 在 workflow 和 system prompt 中编写书面 contract:

  • Purpose:该 lane 拥有的工作。
  • Non-goals:它应该交接而不是尝试去做的工作。
  • Chat budget:快速回答留在聊天内;长任务应简短确认,然后在后台 sub-agent 或 task 中运行。
  • Handoff rule:当另一个 lane 拥有该工作时,说明应该去哪并提供简洁的交接摘要。
  • Tool-risk rule:优先使用能完成工作的最小工具面。

这是最便宜的阶段,能解决大部分堵塞问题:一个编码工作不再让 research lane 变得像糖浆一样慢,每个 chat 也保持自己的上下文干净。

阶段 2:优先级和并发控制

围绕每个 lane 的业务价值调整队列和模型容量:

json5
{
  agents: {
    defaults: {
      maxConcurrent: 4,
      subagents: { maxConcurrent: 8, delegationMode: "prefer" },
    },
  },
  messages: {
    queue: {
      mode: "collect",
      debounceMs: 1000,
      cap: 20,
      drop: "summarize",
    },
  },
}

对高优先级工作使用 direct/personal 聊天和 production-ops agents。让 research、drafting 和 batch coding 在系统繁忙时进入后台任务。

阶段 3:Coordinator / 流量控制器

当多个 lane 活跃时添加一个小型 coordinator 模式:

  • 跟踪活跃的 lane 任务和所有者。
  • 跨群组检测重复请求。
  • 在 lane 之间路由交接摘要。
  • 只呈现阻塞项、已完成结果和人类必须做的决策。

不要从这里开始。没有 lane contract 的 coordinator 只是协调混乱。

Lane contract 模板(最小版本)

md
# Lane contract

## Owns

- <该 lane 负责的工作>

## Does not own

- <要交接的工作>

## Chat budget

- 快速问题直接回答。
- 对于多步骤、慢速或工具密集型工作:简短确认,生成/后台任务,然后完成时返回结果。

## Handoff

如果另一个 lane 拥有请求,回复:

- 目标 lane
- 目标
- 相关上下文
- 确切下一动作

## Tool posture

使用能完成该任务的最小工具面。避免广泛的 shell 或网络工作,除非该 lane 明确拥有它。

常见问题

配置了 specialist lanes 后为什么还是感觉卡顿?

检查是否所有 lane 共享同一个 provider 的 maxConcurrent 上限。确保在 agent 配置中显式设置 maxConcurrent 和子智能体并发限制,并确认队列模式是否正确(推荐 collect + debounceMs 组合)。

怎么知道 lane contract 写得够不够细?

测试两个场景:一个 lane 收到另一个 lane 所属的请求时,是否直接告知交接目标和上下文;一个长任务启动时,是否先返回一条“任务已后台处理”的消息而非卡住聊天入口。如果做不到,contract 不够细。

多个 lane 之间出现重复请求怎么办?

Phase 3 引入的 coordinator 能检测跨群组的重复请求。在此之前,可在 lane contract 中加入 dedupKey 字段,或在交接时会话中标识请求 ID 来手动去重。

相关文档