SheepNav
新上线16天前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. 出差两个月,我让智能花盆自己照顾植物——结果令人惊喜
  2. 如何清理Android手机缓存——以及为何它能显著提升性能
  3. 电工警告:这7种常见家用电器切勿插在延长线上
查看原文