首页/新闻资讯/正文详情

Flue SDK 事件流指南:从 send 到实时逐字渲染,Agent 执行进度全链路掌握

发布时间:2026/11/4 3:17:13 来源:云帆数科 栏目:资讯中心
Flue SDK 事件流指南:从 send 到实时逐字渲染,Agent 执行进度全链路掌握
Flue SDK 事件流指南从 send 到实时逐字渲染Agent 执行进度全链路掌握【免费下载链接】flueThe sandbox agent framework.项目地址: https://gitcode.com/GitHub_Trending/flue1/flue用 Flue 部署的 Agent 是怎么把执行进度推给你的答案是flue/sdk客户端的事件流send()受理后回复、工具调用、推理过程都以事件块的形式持续流回。本文带你走完整条链路——submissionId、offset断点、observe()实时订阅、长轮询与 SSE 双模式、自动重连去重外加一份新手踩坑清单看完就能搭出一个实时盯着 Agent 干活的界面。发完消息回复去哪了大概率你第一次写 Flue 客户端代码会遇到这个场景const result await client.send({ kind: user, body: 帮我总结一下 }); // 打印 result.reply —— undefined没有这个字段。消息发出去了但send()的返回值里没有回复。卡住你的人多半是拿它当一问一答的同步接口在调。这不是 bug而是 Flue 刻意的202 受理模型服务端把消息持久化落库之后立刻返回 202此刻 Agent 可能还没跑起来。返回体里只有四个东西其中两个是你后续所有操作的钥匙字段干什么用submissionId这次提交的唯一身份。Agent 跑完时结算事件会带着它回来offset断点标记resume token。从它之后读事件流看到的就是 Agent 接下来产生的一切不重放历史streamUrl这条对话的事件流地址uid对话实例标识可用于条件发送所以整条链路的心智模型是写走 HTTP 一发即走读全部走同一条事件流。全景消息从哪进事件从哪出把全局立起来只需要记住三个位置入口POST一条消息 → 202 受理submissionIdoffset出口同一条对话的事件流持续吐出消息、工具调用、结算等事件块续传点每次读响应都会带下一个offset存下它断了从这里接着读SDK 的 FlueClient 就是围绕写一次、读一条流封装的下面按你会遇到的四个问题来讲而不是按方法名罗列。四个关键动作发起任务send()拿到断点就走send()的职责就一件投递消息拿到受理回执。不关心过程的场景比如后台批量下发用它就够了之后想读进度凭手里的offset随时能接上流。const admission await client.send({ kind: user, body: 帮我总结一下 }); // admission.submissionId、admission.offset —— 存好后面全靠它盯住过程observe()订阅可渲染的状态这是实时界面的核心。observe.ts 里的观察器会先拉一遍历史快照补齐上下文再切到实时尾巴live tailing持续跟进并且替你维护好一份可以直接渲染的FlueConversationState。你只需要订阅它把状态画出来const observation client.observe(); observation.subscribe(() { const { conversation } observation.getSnapshot(); for (const message of conversation?.messages ?? []) { if (message.display ! visible) continue; for (const part of message.parts) { if (part.type text) renderText(part.text, part.state); } } });拿到结果read() 要回复wait() 只要成败两种拿结果的需求两个方法// 只要回复文本等这次提交结算直接给答案 const reply await client.read(admission);// 只要成败信号结算成功 resolve失败/中止抛 FlueExecutionError try { await client.wait(admission); } catch (error) { console.error(submission failed:, error); }wait()还能挂onEvent回调逐块观察原始事件做监控、审计时常用配合submissionId精确对上哪一次提交。恢复现场history()刷新后补快照页面刷新、进程重启、打开一个别人正在跑的对话——先history()拿一次当前完整快照FlueConversationSnapshot再observe()接管后续实时部分现场就接上了。const snapshot await client.history(); // snapshot.messages 是完整对话snapshot.offset 可以直接作为续读断点把实时感做对live 模式、相位和 part.stateobserve()的实时尾巴有两种传输方式stream.ts 中的FlueEventStream统一承载模式特点什么时候选long-poll默认长轮询兼容性好大多数场景的稳妥选择sseSSE 长连接连接常驻逐字显示 token 这类对延迟敏感的场景两者推的是同一批事件块、同样的投递保证差别只在连接形态。配合两个状态字段UI 就活了phase观察器的连接生命周期按loading → connecting → live → closed走出错进error短暂重连时会从live回落connecting。进度条、加载转圈直接订阅它驱动即可。part.state每条文本/推理片段的生成状态——streaming表示正在流式生成done表示已完整。逐字打字机效果就是靠它区分半截和完整。底层不用记事件块长什么样可靠性谁来兜底流上传输的最小单元是 ConversationStreamChunk认识即可块类型含义message-delta文本/推理的增量片段打字机效果的来源tool-input/tool-output/tool-output-error工具调用的入参、结果、报错message-started/message-completed一条消息的开始与结束data-partAgent 主动写入的命名结构化数据conversation-reset对话被重置携带全新快照submission-settled某次提交的终态结算你基本不用亲手处理这些块——observe()已把它们归约成完整状态只有wait()的onEvent回调会接触原始块。可靠性这块SDK 替你把脏活全干了流协议参考 有完整的线级说明offset是不透明断点每次响应带回下一个值原样保存、原样回传。别解析它别对它做加减。至少一次投递连接中途断开时传输层从断点重放在途的那批事件——宁可重复不可丢失。按position自动去重每个块都带单调递增的positionobserve()会丢弃重放的重复块界面上不会出现同一段话打出两遍。自动恢复内置僵尸流看门狗流长时间无动静就自动取消重连遇到 401/403 按退避策略重试而不是立刻失败。结论一句话网络抖动、刷新、重启你不用写一行补偿逻辑业务代码只负责收到状态就渲染。新手最容易踩的四个坑坑后果正确做法把offset当数字做算术续读位置错乱、请求被拒把它当不透明字符串原样存、原样传拿到事件就渲染不去重重连重放后同一内容打出两遍交给observe()维护状态若自己消费原始流按position去重刷新页面直接重新 observe不补快照开场白缺失界面凭空断片先history()补一次快照再让observe()接管实时部分等send()的返回里出现回复永远等不到send()只做受理结果走read()/wait()/ 事件流我想要 X就做 Y你想要做法聊天界面逐字显示observe()subscribe()按part.state区分生成中/完成后台批处理只要结果read()一行拿回复文本页面刷新后恢复现场先history()补快照再observe()接管确认某次提交成败wait()挂submissionIdresolve 成功 / reject 失败审计监控原始事件wait()的onEvent回调按position去重延伸阅读SDK 客户端与五个方法定义client.ts事件流迭代器重连、断点重放stream.ts观察器状态机去重、看门狗、重试策略observe.tschunk 协议与归约逻辑conversation-stream.ts结算等待与wait()实现settle.ts官方事件文档sdk/events.md线级流协议参考streaming-protocol.mdFlueClient 完整 API 参考flue-client.md想实时盯住 Agent 的每一刻核心就一句话send()把任务交出去剩下的交给事件流——断点续读、去重、重连全是它的事你只管把渲染好的状态画出来。【免费下载链接】flueThe sandbox agent framework.项目地址: https://gitcode.com/GitHub_Trending/flue1/flue创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

10分钟跑通 Arduino ESP32 开发环境:装核心到点亮 LED 一次点亮
10分钟跑通 Arduino ESP32 开发环境:装核心到点亮 LED 一次点亮

10分钟跑通 Arduino ESP32 开发环境:装核心到点亮 LED 一次点亮 【免费下载链接】arduino-esp32 Arduino core for the ESP32 family of SoCs 项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32 arduino-esp32 是乐鑫官方的 ESP32 全系 Ardui… · 2026/11/1 1:20:12

UniHacker 使用指南:三步让 Unity 2022.1 及以下版本(含 Unity Hub)离线免登录
UniHacker 使用指南:三步让 Unity 2022.1 及以下版本(含 Unity Hub)离线免登录

UniHacker 使用指南:三步让 Unity 2022.1 及以下版本(含 Unity Hub)离线免登录 【免费下载链接】UniHacker 为Windows、MacOS、Linux和Docker修补所有版本的Unity3D和UnityHub 项目地址: https://gitcode.com/GitHub_Trending/un/UniHacker… · 2026/11/1 1:20:12

Source Han Sans vs Noto Sans CJK:开源泛中日韩字体选型完整指南
Source Han Sans vs Noto Sans CJK:开源泛中日韩字体选型完整指南

Source Han Sans vs Noto Sans CJK:开源泛中日韩字体选型完整指南 【免费下载链接】source-han-sans Source Han Sans | 思源黑体 | 思源黑體 | 思源黑體 香港 | 源ノ角ゴシック | 본고딕 项目地址: https://gitcode.com/gh_mirrors/so/source-han-sans Source Han Sans… · 2026/11/2 23:57:04

TPOT指标:大语言模型推理性能优化的关键
TPOT指标:大语言模型推理性能优化的关键

1. 为什么TPOT比平均延迟更重要?在评估大语言模型(LLM)推理性能时,大多数开发者第一反应就是看"平均延迟"这个指标。但真实生产环境中,我见过太多团队被这个看似直观的数字坑惨了——明明测试时平均响应时间… · 2026/11/4 7:37:36

无人水面艇实时NMPC控制技术解析与实践
无人水面艇实时NMPC控制技术解析与实践

1. 无人水面艇控制技术现状与挑战无人水面艇(USV)作为水上自主系统的核心载体,其控制技术直接决定了任务执行的可靠性和精确度。传统PID控制虽然实现简单,但在应对复杂海况、强非线性动力学特性时往往表现不佳。我在参与某型巡逻艇… · 2026/11/4 7:37:36

单体架构与微服务架构的核心差异与选型指南
单体架构与微服务架构的核心差异与选型指南

1. 现代Web应用架构概览在当今互联网产品开发领域,Web应用架构的选择直接影响着团队协作效率、系统可维护性和业务扩展能力。作为从业十余年的全栈开发者,我见证过单体架构统治时代的辉煌,也参与了微服务架构的落地实践。这两种主流架构模式各… · 2026/11/4 7:37:36

GRP-U8行政事业版账套核心表解析与SQL对账实战
GRP-U8行政事业版账套核心表解析与SQL对账实战

简介:面向用友GRP-U8管理软件行政事业版的数据库速查文档,供财务系统实施、运维与数据调整人员使用。行政事业版后台表与函数数量庞杂,实际动手改数据时却往往无从下手。这份文档的价值在于精简梳理:逐一筛选后指出真正需要关注的… · 2026/11/4 7:37:36

Q平台调试工具环境搭建:QPM、QFIL与Chromatix配置指南
Q平台调试工具环境搭建:QPM、QFIL与Chromatix配置指南

简介:一份面向高通平台开发、调试与相机调优人员的操作手册,聚焦QPM、QFIL、Chromatix等工具链的入门认知与常见问题排查,适合需要快速建立工具使用框架的初中级开发者。压缩包内为1个doc文档,约2.45MB,以文字说明和流… · 2026/11/4 7:37:36

C++20标准查阅指南:UB、ODR、模块与协程的工程用法
C++20标准查阅指南:UB、ODR、模块与协程的工程用法

简介:《ISO/IEC 14882:2020(E) Programming languages — C》是C第六版国际标准文档,面向C开发者、编译器与工具链实现者、高校教师及需要核对语言规则的进阶学习者,为语法语义、实现合规性与跨平台可移植性提供权威依据。资源包仅含1个PDF文… · 2026/11/4 7:36:36

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

AI辅助技术栈评估:提升研发决策效率60%
AI辅助技术栈评估:提升研发决策效率60%

1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年… · 2026/11/4 0:00:17

从生成Token到直接决策:Jev如何重塑AI Agent工程实践
从生成Token到直接决策:Jev如何重塑AI Agent工程实践

1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你… · 2026/11/4 0:00:17

32G统一内存跑大模型:内存账、TPS实测与端云分流
32G统一内存跑大模型:内存账、TPS实测与端云分流

想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统… · 2026/11/4 0:00:17

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码