跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言Agent Runtime教程TypeScript

《Agent Runtime 工程化》第二章 TypeScript / Node Runtime 基础:2.2 async iterator 与流式输出

Agent 产品喜欢流式输出,主要是为了降低用户等待的不确定性,也让 runtime 更早看见模型意图。炫技排在很后面。 模型流可能先返回解释文字,再返回工具调用片段。工具执行也可能先输出日志,再最终退出。统一处理这些事件,最自然的接口是 async iterator: 事件流的好处是前端、CLI、

站点编辑发布于 2026/8/13更新于 2026/9/2945 浏览
《Agent Runtime 工程化》第二章 TypeScript / Node Runtime 基础:2.2 async iterator 与流式输出

《Agent Runtime 工程化:从工具调用循环到可恢复执行系统》封面

书名:《Agent Runtime 工程化:从工具调用循环到可恢复执行系统》

作者:陈堂会

章节:第二章 TypeScript / Node Runtime 基础 / 2.2 async iterator 与流式输出

电子版系列:查看完整目录

第二章 TypeScript / Node Runtime 基础:2.2 async iterator 与流式输出

Agent 产品喜欢流式输出,主要是为了降低用户等待的不确定性,也让 runtime 更早看见模型意图。炫技排在很后面。

模型流可能先返回解释文字,再返回工具调用片段。工具执行也可能先输出日志,再最终退出。统一处理这些事件,最自然的接口是 async iterator:

type RuntimeEvent =
  | { type: "model_delta"; text: string }
  | { type: "tool_call"; name: string; args: unknown }
  | { type: "tool_stdout"; text: string }
  | { type: "tool_stderr"; text: string }
  | { type: "step_done"; stepId: string };

async function* runAgent(input: string): AsyncGenerator<RuntimeEvent> {
  yield { type: "model_delta", text: "我先检查项目结构。" };
  yield { type: "tool_call", name: "list_files", args: { path: "." } };
  yield { type: "tool_stdout", text: "src/index.ts\npackage.json\n" };
  yield { type: "step_done", stepId: "step_1" };
}

事件流的好处是前端、CLI、trace、测试都能订阅同一套语义。不要让每个通道各写一套'半成品日志解析器'。


系列导航

前 5 篇

  • 第二章 TypeScript / Node Runtime 基础:2.1 Promise 不是全部
  • 第二章 TypeScript / Node Runtime 基础:导读
  • 第一章 Agent Runtime 全景:1.7 验收标准
  • 第一章 Agent Runtime 全景:1.6 动手任务
  • 第一章 Agent Runtime 全景:1.5 为什么岗位强调'能稳定跑'

后 5 篇

  • 第二章 TypeScript / Node Runtime 基础:2.3 AbortSignal:取消要能传到底
  • 第二章 TypeScript / Node Runtime 基础:2.4 子进程执行器:Agent 的危险地带
  • 第二章 TypeScript / Node Runtime 基础:2.5 背压:不要让日志淹没上下文
  • 第二章 TypeScript / Node Runtime 基础:2.6 资源清理比重试更重要
  • 第二章 TypeScript / Node Runtime 基础:2.7 动手任务

目录

  1. 第二章 TypeScript / Node Runtime 基础:2.2 async iterator 与流式输出
  2. 系列导航
  3. 前 5 篇
  4. 后 5 篇

更多推荐文章

查看全部
  • 8 款 AIGC 降重工具功能对比与使用建议
  • Windows 环境下 OpenClaw 环境搭建与部署指南
  • C++ 函数重载:核心规则、实现机制与实战案例
  • Ilya Sutskever 正式宣布离开 OpenAI,新项目意义重大
  • 技术拆解:P2P 组网实现远程 AI 服务安全访问
  • Logseq 本地部署与 cpolar 远程访问配置指南
  • Visual C++运行库一键安装方案:解决 DLL 缺失错误
  • C++ STL 标准库算法详解
  • 哈希表实现原理与代码详解
  • C++ 进阶:从裸指针到智能指针的内存管理进化
  • 使用 Dify 搭建合同审查法律文书机器人 Agent 全流程
  • OpenClaw 自动化控制平台:本地与远程智能代理
  • OpenClaw 远程访问配置指南:SSH 隧道与免密登录
  • 拆解 Linux 中的 IP 协议与数据链路层:地址、路由与分片逻辑
  • SpringBoot 整合 Flowable 快速实现工作流
  • 硕士论文盲审前降低 AIGC 检测率策略与评委关注点解析
  • Trae Skills 使用方法
  • 暗黑 2 存档编辑器技术架构:二进制解析与前端可视化实现
  • Microsoft C++ Build Tools 安装与验证指南
  • AI 原生 IDE 深度对比:Cursor、Trae 与 Windsurf 选型指南

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online