Clawdbot 流式传输

了解 Clawdbot AI 助手流式响应、分块、输入指示器和实时消息投递。

Clawdbot 流式传输概述

Clawdbot 支持流式响应,实现实时 AI 交互。流式传输支持输入指示器、部分消息更新和长响应的分块投递。

流式传输模式

完整流式传输

完整流式传输在令牌生成时投递:

{
  "streaming": {
    "mode": "full",
    "chunkSize": 50
  }
}

分块投递

分块投递分割长响应:

{
  "streaming": {
    "mode": "chunked",
    "maxLength": 4000,
    "delimiter": "\n\n"
  }
}

提供商支持

提供商流式传输输入指示分块
WhatsApp部分
Telegram完整
Discord完整
微信
飞书部分

输入指示器

配置

{
  "typing": {
    "enabled": true,
    "interval": 3000,
    "stopOnComplete": true
  }
}

行为

  • interval 毫秒发送指示器
  • 响应完成时自动停止
  • 提供商特定实现

消息分块

为什么需要分块?

  • 平台消息长度限制
  • 更好的用户体验
  • 降低超时风险

分块设置

设置默认值描述
maxLength4000每块最大字符数
delimiter\n\n首选分割点
delay500块之间的毫秒数

示例

长响应自动分割:

[块 1] 响应的第一部分...

[块 2] 续...

[块 3] 最后部分...

流事件

事件类型

事件描述
stream_start流式传输开始
stream_chunk新内容块
stream_end流式传输完成
stream_error发生错误

WebSocket 事件

ws.on('message', (data) => {
  const event = JSON.parse(data);

  switch(event.type) {
    case 'stream_start':
      // 显示输入指示器
      break;
    case 'stream_chunk':
      // 追加内容
      break;
    case 'stream_end':
      // 隐藏输入指示器
      break;
  }
});

缓冲管理

配置

{
  "buffer": {
    "maxSize": 10000,
    "flushInterval": 100,
    "strategy": "adaptive"
  }
}

策略

策略描述
immediate立即发送每个令牌
batched按间隔批量令牌
adaptive根据网络调整

错误处理

流错误重试

{
  "streaming": {
    "retry": {
      "enabled": true,
      "maxAttempts": 3,
      "backoff": "exponential"
    }
  }
}

回退到非流式传输

如果流式传输失败,Clawdbot 会自动回退到非流式投递。

性能提示

  1. 根据提供商限制调整块大小
  2. 启用输入指示器以获得更好的用户体验
  3. 使用自适应缓冲应对网络变化
  4. 监控流延迟以进行优化

下一步