@lynx-js/genui/a2ui
English | 简体中文
@lynx-js/genui/a2ui 是面向 A2UI v0.9 的 ReactLynx 客户端运行时。它消费经过校验的
A2UI server-to-client JSON messages,并在你的应用中渲染可信的 ReactLynx 组件。
当你已经有、或准备构建一个返回 A2UI messages 的 Agent 服务时,使用这个包。它不托管 Agent,不调用 LLM,不拥有后端路由,也不提供 chat shell。你的应用负责传输层,并把消息写入 renderer。
如果你第一次接触 A2UI,可以先这样理解:
- 在 React 里,是你的代码选择组件并传入 props。
- 在 A2UI 里,是 Agent 从你的应用发布的组件 Catalog 中选择组件。
- Client 仍然渲染真实的 ReactLynx 组件。模型只发送数据,告诉渲染器用哪个已授权组件、传哪些 props。
最终产物不是任意生成代码,而是由可信 Catalog 组装出的 ReactLynx UI 树。
安装
在 ReactLynx 应用中安装公开的 GenUI 包:
如果想使用内置 light/dark CSS variables,可以在入口处引入一次可选的默认主题 tokens:
快速开始
创建 MessageStore,注册 generated UI 允许渲染的组件,并把 generated actions 转发回你的 Agent 服务。
MessageStore 按到达顺序保存原始 protocol messages。<A2UI> 订阅它、处理新消息、渲染 active surface,并通过
onAction 抛出 generated UI actions。
你需要负责什么
首次接入要知道
- 只把 generated UI 允许使用的组件传给
catalogs。 - 当 messages 可能使用
formatString、formatDate、required、email或and等 A2UI function calls 时,加入...basicFunctions。 - 需要通过
serializeCatalog(...)把 JSON schemas 发送给 Agent 时,把组件和它的catalog.jsonmanifest 配对。 - 包里故意没有
@lynx-js/genui/a2ui/catalog/all导出。请在接入点组合你真正需要的 catalog,让 bundle 成本保持可见。 - 新 turn 或新 session 需要重置
<A2UI>时,传入不同的key;组件会在一次 mount 生命周期内持有自己的MessageProcessor。

