跳转到主要内容

概述

Shannon 提供实时事件流式传输,因此您可以在任务执行时进行监控。这对于以下场景至关重要:
  • 向用户提供实时反馈
  • 调试工作流执行
  • 构建交互式 UI
  • 监控长时间运行的任务

流式传输技术

Shannon 支持两种流式传输协议:
由于 SSE 的简单性和内置重连处理,建议大多数用例使用 SSE。

服务器发送事件(SSE)

使用 cURL

输出:

使用 Python SDK

事件类型

Shannon 在不同类别中发出 33 种事件类型。以下是最常用的事件类型:

核心工作流事件

LLM 和工具事件

进度和状态事件

多智能体事件(需要功能门控)

有关所有 27 种事件类型的完整列表,请参阅事件类型参考

WebSocket 流式传输

通过 WebSocket 连接

WebSocket 流式传输目前仅支持服务器到客户端。使用 REST API /api/v1/tasks/{id}/cancel 取消任务。

过滤事件

按类型过滤事件以减少噪音:

进度跟踪

从事件计算任务进度:
输出:

实时 UI 示例

React 组件

关键实现细节:
  • Shannon 发出命名的 SSE 事件(例如,event: AGENT_STARTED),因此您必须为每种事件类型使用 addEventListener()
  • 浏览器的 EventSource API 不支持自定义请求头。不要通过查询参数传递 API 密钥;应由后端代理注入请求头(或在开发环境关闭认证)
  • 始终在清理函数中清除事件监听器,以防止内存泄漏

错误处理

优雅地处理连接失败:

流式传输身份验证

启用身份验证时,提供 API 密钥:

带 API 密钥的 SSE

带 API 密钥的 Python SDK

性能考虑

事件缓冲

Shannon 缓冲事件以防止压垮客户端:

保持连接

SSE 每 15 秒发送保持连接注释以防止超时:

资源清理

完成后始终关闭流:

多任务监控

同时监控多个任务:

桌面应用程序

Shannon 提供基于 Tauri 构建的原生桌面应用程序,用于实时任务监控和管理。桌面应用提供:
  • 活动任务的实时事件流
  • 任务提交和管理界面
  • 实时指标和可视化
  • 会话历史浏览
桌面应用程序已取代之前的 Web 仪表板。请参阅桌面应用指南了解安装和使用说明。

最佳实践

1. 使用 SSE 进行简单监控

2. 处理断开连接

3. 过滤不必要的事件

4. 设置超时

下一步

Python SDK

使用 SDK 进行异步流式传输

API 参考

流式传输 API 详情

监控

任务监控指南

WebSocket API

WebSocket 文档