SheepNav
新上线17天前130 投票

将 Markdown 转化为生成式 UI 的协议:一个探索性原型

随着生成式 UI 和 AI 代理代码执行成为热点,如何将它们整合成一个功能完整的架构?一位开发者构建了一个原型,提出以 Markdown 作为协议,在一个流中同时传输文本、可执行代码和数据,实现流式执行。

核心理念:Markdown 作为统一协议

该原型基于三个核心想法:

  1. Markdown 作为协议:利用 LLM 已熟知的 Markdown 语法,在一个流中承载文本、代码和数据,无需额外学习新格式。
  2. 流式执行:代理编写并执行代码,每个语句在完成后立即执行,无需等待完整响应。
  3. mount() 原语:一个函数,允许代理创建响应式 UI,并建立客户端-服务器-LLM 之间的数据流模式。

协议设计:三种块类型

开发者定义了三种 Markdown 块类型,以区分不同内容:

  • 文本块:使用普通 Markdown 格式,直接流式传输给用户。
  • 代码块:以 ````tsx agent.run` 开头,在服务器上的持久化上下文中执行。
  • 数据块:以 ````json agent.data => "id"` 开头,将数据流式传输到 UI 中。

这种设计允许 LLM 在单个响应中任意交错输出文本、代码和数据,解析器能随着令牌到达增量处理。语法天然可扩展,如需新块类型,只需添加新的围栏标题。

反馈循环:console.log 作为代理自对话机制

反馈循环简洁高效:

  • LLM 生成包含代码块的 Markdown。
  • 文本流式传输给用户,代码在服务器上增量执行。
  • console.* 输出和异常作为新回合反馈给 LLM。

这形成了一个闭环,使代理能基于执行结果调整后续行为。

行业背景与意义

在 AI 代理快速发展的背景下,该原型探索了生成式 UI 的可行架构。它避免了为 LLM 设计新协议的复杂性,直接利用现有 Markdown 知识,降低了实现门槛。流式执行和统一协议可能为动态、交互式 AI 应用提供新思路,尤其是在需要实时代码生成和数据流的场景中。

然而,这仍是一个早期原型,实际应用中需考虑安全性、性能扩展和错误处理等挑战。开源代码库可供社区进一步实验和迭代。

延伸阅读

  1. 太空数据中心能否支撑SpaceX的巨额估值?
  2. 在日本,机器人不是来抢工作的,而是填补没人愿意干的岗位
  3. 我让Google Maps里的Gemini规划我的一天,结果出乎意料地好
查看原文