For the complete documentation index, see llms.txt. This page is also available as Markdown.

4.3 流式处理与事件驱动架构

流式处理和事件驱动是现代智能体系统的必要能力,支持低延迟和高吞吐。本节介绍流式处理的优势,对比 OpenClaw 和 Claude Code 的实现方式,并讨论事件流架构和背压控制机制。

4.3.1 为什么工具输入应在流式响应中解析

传统的批处理模型(Batch Model)将智能体推理与工具执行分离:

推理完成 → 提取工具调用 → 执行工具 → 等待全部完成 → 反馈给 Agent

这种模式的问题:

  1. 高延迟:必须等待所有工具执行完成才能继续推理,单个慢工具阻塞整个流程

  2. 无法流式响应:用户无法看到实时的智能体思考过程

  3. 低效的资源利用:CPU 和网络资源无法充分并发

  4. 错误恢复困难:工具失败后难以进行灵活的备选处理

流式处理模型 (Streaming Model)将工具调用输入的解析和工具执行调度集成到响应流中。关键边界是:文本增量可以立即转发;工具参数必须等 input_json_delta 累积完整、工具块结束后才能执行。

图 4-3:流式处理架构

流式处理的核心优势

  1. 低时间延迟:用户可以立即看到智能体的首字节响应,而不需要等待所有工具完成

  2. 高吞吐量:多个完整工具调用可以并发执行,单个慢工具不阻塞其他工具结果收集

  3. 更好的用户体验:实时反馈让用户感知到系统正在工作

  4. 灵活的错误恢复:工具失败时可以立即重试或选择替代方案

4.3.2 Claude Code 的 StreamingToolExecutor 设计

Claude Code 采用 流式响应 + 异步工具执行 的模式:

4.3.3 OpenClaw 的响应流处理

OpenClaw 采用“响应流优先”的设计,在流式响应过程中持续检测工具调用:

4.3.4 事件流架构

完整的 智能体循环产生的事件序列:

事件流的实现

4.3.5 背压与流量控制

在流式处理中,如果客户端处理事件的速度慢于服务器生成事件的速度,会导致内存溢出。需要实现背压机制:

4.3.6 本节小结

流式处理与事件驱动是现代智能体系统的必要能力:

  1. 流式处理的优势 明显:低延迟、高吞吐、更好的用户体验、灵活的错误恢复

  2. 工具输入应在流式响应中解析,但工具执行必须等完整输入到达后再调度;这样既保持低延迟文本反馈,也避免半截 JSON 参数触发工具

  3. 事件流架构 定义了清晰的状态转移和事件序列,使得系统行为可观测、可预测、可调试

  4. Claude Code 的异步生成器模式和 OpenClaw 的流响应处理 都实现了这一原则,但编程模型不同(其中 Claude Code 采用异步并发,OpenClaw 采用流式顺序处理)

  5. 背压管理 是生产环境中必需的,防止内存溢出和系统过载

最后更新于