Chat SDK 代理现可通过 json-render 流式生成 UI

Chat SDK 代理现可通过 json-render 流式生成 UI

💡 原文英文,约300词,阅读约需1分钟。
📝

内容提要

Chat SDK 代理现可通过 json-render 流式生成 UI:代理按类型化组件目录写出 JSON 规格,再转换为 Chat SDK 卡片,各适配器以平台原生格式(如 Slack 的 Block Kit、Teams 的 Adaptive Cards)发布。目录涵盖表格、图表、按钮等,无需为每种消息形态单独开发工具。streamCard 在根元素有内容后发布卡片,并随新元素流入更新消息,默认每 500 毫秒编辑一次;流结束后显示最终校验过的卡片。toCard 会按组件模式校验属性,无效时抛出 CardSpecError 并列出问题,便于让模型修正。平台对单条消息有容量上限,可传入限制拒绝超限规格。

🔎

延伸解读

流式生成 UI 的工作机制

代理根据类型化组件目录生成 JSON 规格,json-render 将其转换为 Chat SDK 卡片,各适配器再以平台原生格式发布。streamCard 在根元素有内容后立即发布卡片,并随新元素流入更新消息,默认每 500 毫秒编辑一次,与 Chat SDK 的流式间隔一致。流结束后显示最终校验过的卡片。

校验与错误处理

toCard 会按组件模式校验每个元素的属性,无效时抛出 CardSpecError 并列出具体问题,便于将问题列表返回给模型以修正规格。这有助于在生成过程中及早发现并纠正错误,确保最终卡片符合预期结构。

平台容量限制与适配器行为

平台对单条消息有容量上限,Chat SDK 适配器会降级处理超限内容,例如 Slack 适配器将第二个表格转为代码块。为避免这种降级,可以传入限制来拒绝超限规格,从而确保内容以预期形式呈现。

❓

Q&A

Chat SDK 代理如何通过 json-render 流式生成 UI?

代理根据类型化组件目录编写 JSON 规格,json-render 将其转换为 Chat SDK 卡片,各适配器再以平台原生格式(如 Slack 的 Block Kit、Teams 的 Adaptive Cards)发布。

json-render 的组件目录包含哪些内容?

目录涵盖表格、图表、按钮等组件,因此无需为每种消息形态单独开发和维护工具。

streamCard 是如何实现流式更新卡片的?

streamCard 在根元素有内容后发布卡片,并随着新元素流入更新消息,默认每 500 毫秒编辑一次;流结束后显示最终校验过的卡片。

toCard 如何校验 JSON 规格?

toCard 会按组件模式校验每个元素的属性,无效时抛出 CardSpecError 并列出每个问题,便于将问题列表返回给模型修正。

平台对消息容量有限制时如何处理?

平台对单条消息有容量上限,Chat SDK 适配器会降级处理超限内容(如 Slack 适配器将第二个表格转为代码块),也可以传入限制来拒绝超限规格。

如何在代理中集成 json-render 来流式生成卡片?

使用 defineCatalog 定义组件目录,在代理被提及时调用 streamText 生成文本流,再通过 streamCard 将流式内容发布为卡片。

🏷️

标签

➡️

继续阅读