事件管理
发送事件
发送各种类型的事件到频道,包括流式文本消息和自定义事件
POST
概述
发送各种类型的事件到频道,包括流式文本消息和自定义事件。支持AG-UI协议事件,用于实时流式通信。查询参数
强制结束频道中现有的流,然后开始新流
0- 不强制结束1- 强制结束现有流
请求体
必传参数
客户端消息编号,必须唯一且不重复。用于标识和跟踪消息/流。对于流式消息,同一流中的所有事件应使用相同的client_msg_no。建议使用UUID格式。
目标频道ID,事件将发送到此频道。对于个人频道,这应该是目标用户ID。对于群组频道,这应该是群组ID。
频道类型
1- 个人频道2- 群组频道
事件对象
可选参数
发送者用户ID。如果未提供或为空,默认为系统UID。用于标识发送事件的用户。
响应字段
操作状态,成功时返回
"ok"状态码
| 状态码 | 说明 |
|---|---|
| 200 | 事件发送成功 |
| 400 | 请求参数错误或事件数据无效 |
| 500 | 服务器内部错误 |
流式消息机制
流式消息流程
- 开始流:发送
___TextMessageStart事件启动流 - 发送内容:发送多个
___TextMessageContent事件传输消息块 - 结束流:发送
___TextMessageEnd事件关闭流
重要注意事项
- 同一流中的所有事件必须使用相同的
client_msg_no - 除非使用
force=1,否则每个频道只能有一个活跃流 - 对于个人频道,系统会自动处理虚假频道ID生成
- 事件会自动路由到适当的集群节点
事件类型详解
AG-UI协议事件
AG-UI协议事件用于实时流式通信,特别适用于AI应用:| 事件类型 | 用途 | 数据格式 |
|---|---|---|
___TextMessageStart | 启动流式文本消息会话 | 初始内容或元数据 |
___TextMessageContent | 发送内容块 | 文本块内容 |
___TextMessageEnd | 终止流式文本消息会话 | 完成标记 |
___ToolCallStart | 开始工具调用事件 | 工具名称或元数据 |
___ToolCallArgs | 发送工具调用参数 | JSON格式的参数 |
___ToolCallEnd | 结束工具调用事件 | 完成状态 |
___ToolCallResult | 返回工具执行结果 | JSON格式的结果 |
自定义事件
任何不以___ 开头的事件类型都被视为自定义事件,可用于:
- 用户状态更新
- 系统通知
- 业务逻辑事件
- 应用特定的交互
使用场景
AI聊天机器人
实时协作
系统通知
最佳实践
- 唯一标识:使用UUID格式的
client_msg_no确保唯一性 - 流管理:及时结束不再使用的流,避免资源浪费
- 错误处理:处理流冲突和发送失败的情况
- 权限验证:确保发送者有频道的发送权限
- 数据格式:对于复杂数据使用JSON格式的字符串
- 性能优化:合理控制流式消息的发送频率
错误处理
常见错误
| 错误 | 原因 | 解决方案 |
|---|---|---|
| 事件类型不能为空 | 未提供event.type | 确保提供有效的事件类型 |
| 频道中已有流正在运行 | 尝试在有活跃流的频道开始新流 | 使用 force=1 或等待现有流结束 |
| 流不存在 | 尝试向不存在的流发送内容 | 检查流是否已正确创建 |
| 流已关闭 | 向已关闭的流发送内容 | 重新开始新的流 |

