Concepts 导读

多消息并发时,队列如何保证不打架

自动回复的 LLM 调用很贵,多条消息同时进来会抢资源、超限。这个队列按会话和全局两层串行化,默认主线程并发 4、子代理 8,每个会话同一时间只跑一个 run。最容易搞错的是消息模式:`steer` 会打断当前 run 插入新消息,`collect` 把多条合并成一次回复,`steer-backlog` 则既插入又保留后续回复,容易造成重复响应。

先讲这一页到底在解决什么

多消息并发时,队列如何保证不打架

自动回复的 LLM 调用很贵,多条消息同时进来会抢资源、超限。这个队列按会话和全局两层串行化,默认主线程并发 4、子代理 8,每个会话同一时间只跑一个 run。最容易搞错的是消息模式:`steer` 会打断当前 run 插入新消息,`collect` 把多条合并成一次回复,`steer-backlog` 则既插入又保留后续回复,容易造成重复响应。

原文共 12 节,先看 Start Here 路径:/concepts/queue 查看官方原文

第一站

🚶 先想画面:每个会话门口都有一条小排队绳

同一个会话里,如果上一轮还没做完,新消息就不能硬挤进去。否则两个助手会同时翻同一本本子,现场一定乱。

📚 同一本本子一次只翻一页

原文那句“only one active run per session”可以这样记:同一个 session,一次只允许一个人坐在桌前写。

🚦 全局也有总阀门

除了每个会话自己的小排队绳,系统还有全局并发上限,免得所有会话一起冲,把网关累坏。

⭐ 这一页的一句话版

Queue 不是为了拖慢你,而是为了别让同一个会话同时被两只手乱写。

📌 真正想解决的

LLM 调用贵、工具运行慢、文件和日志容易冲突,所以排队不是装样子,是秩序。

第二站

🧭 queue mode 不是术语大全,它是在决定“新消息插到哪儿”

这页最容易看晕的就是几种 mode。把它们想成几种插队方式,就顺了。

➡️

steer

像对正在做事的助手喊一声“顺手把这个也带上”。如果它还来得及转向,就直接插进当前那轮。

followup

像说“这条先记在后面,等当前这轮做完再单独处理”。

🧺

collect

像把后面一串零散新消息先装进一个小篮子,等轮到时再一起处理。默认就是这种,更安静也更省。

✂️

interrupt

像直接打断当前动作,改做最新的那条。力气最大,也最容易让前一轮半途而废。

第三站

🧺 为什么默认更偏爱 collect

因为现实聊天里,最常见的不是你真的要硬插一条紧急指令,而是你连着发了两三句补充说明。

💬 连发消息很常见

“等一下”“还有这个”“刚刚那个再补一句”,这些都很像同一件事,不值得每句都单开一轮。

🧠 collect 更像人类聊天

它会先等一会儿,看看你是不是还要继续补,再把这一串一起交给代理,更顺也更省上下文。

debounceMs

像在门口多等几秒,看看后面还有没有你刚刚补发的那句,别每个字都单独起跑。

capdrop

像规定篮子最多装多少条,太多了以后是丢旧的、丢新的,还是先压成一张简短小纸条。

第四站

🛠 命令和配置,在现场到底是在调什么

这一页的配置块别背,先把动作看懂。

/queue collect

像对当前会话说:“接下来新消息先帮我攒着,别一条条抢着跑。”

/queue steer

像说:“如果来得及,就把新补充直接塞进当前正在跑的这轮里。”

/queue default

像把当前会话临时改过的排队规则清掉,回到系统默认。

messages.queue.byChannel.discord: "collect"

像提前给 Discord 这扇门贴上规则牌:从这里来的消息,默认按 collect 这套排法走。

第五站

🎯 Queue 最容易造成的错觉,是“怎么像重复回复了”

原文专门提醒 steer-backlog 可能让你感觉像收到了两次。其实不是系统疯了,而是它故意分了“当前带一嘴”和“后面再补一轮”。

➕ steer-backlog

像一边冲着正在干活的助手大喊一句“把这个也记上”,一边又把完整消息放回后面的待办篮子里。

👀 看起来像两次

你可能先看到一条在当前流里被带上的响应,后面又看到一轮正式 followup,所以表面上像重复。

📌 官方真正建议什么

如果你就想“一条新消息对应一次结果”,优先用 collect 或普通 steer,别上来就玩 steer-backlog。

🎈 一句话收住

有些像“重复”的现象,其实是排队策略不同,不是消息坏了。

最后总结

🎈 把 Queue 这页压成一句最好记的话

Queue 就是 OpenClaw 门口那条排队绳,它负责把同一个会话里的新消息安排好,别让大家一窝蜂冲进来把桌子撞翻。

如果你下一页只想继续看一页,我建议看 /concepts/streaming。因为消息一旦排进队里,接下来大家最关心的通常就是:回复会不会边写边冒出来,还是最后一次吐完。