Clawdbot 流式传输
了解 Clawdbot AI 助手流式响应、分块、输入指示器和实时消息投递。
Clawdbot 流式传输概述
Clawdbot 支持流式响应,实现实时 AI 交互。流式传输支持输入指示器、部分消息更新和长响应的分块投递。
流式传输模式
完整流式传输
完整流式传输在令牌生成时投递:
{
"streaming": {
"mode": "full",
"chunkSize": 50
}
}分块投递
分块投递分割长响应:
{
"streaming": {
"mode": "chunked",
"maxLength": 4000,
"delimiter": "\n\n"
}
}提供商支持
| 提供商 | 流式传输 | 输入指示 | 分块 |
|---|---|---|---|
| 部分 | 是 | 是 | |
| Telegram | 完整 | 是 | 是 |
| Discord | 完整 | 是 | 是 |
| 微信 | 否 | 否 | 是 |
| 飞书 | 部分 | 是 | 是 |
输入指示器
配置
{
"typing": {
"enabled": true,
"interval": 3000,
"stopOnComplete": true
}
}行为
- 每
interval毫秒发送指示器 - 响应完成时自动停止
- 提供商特定实现
消息分块
为什么需要分块?
- 平台消息长度限制
- 更好的用户体验
- 降低超时风险
分块设置
| 设置 | 默认值 | 描述 |
|---|---|---|
maxLength | 4000 | 每块最大字符数 |
delimiter | \n\n | 首选分割点 |
delay | 500 | 块之间的毫秒数 |
示例
长响应自动分割:
[块 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 会自动回退到非流式投递。
性能提示
- 根据提供商限制调整块大小
- 启用输入指示器以获得更好的用户体验
- 使用自适应缓冲应对网络变化
- 监控流延迟以进行优化
下一步
- Clawdbot 概念 - 核心概念
- Clawdbot 频道 - 频道设置
- Clawdbot 网关 - 网关配置