AI应用移动开发【免费下载链接】AGenUINative A2UI Renderer for iOS/Android/HarmonyOS. High performance streaming Generative UI. Custom Components, Styles and more.项目地址https://gitcode.com/gh_mirrors/ag/AGenUI点击查看免费下载AGenUI 是一个面向 iOS / Android / HarmonyOS 的 Native A2UI 渲染引擎而agent_sdks/go目录下的Go Agent SDK正是它的「服务端大脑」。它让 Go 编写的 Agent 能够生成符合 A2UI 协议的 UI、对 LLM 输出做流式解析、并在下发前完成严格校验从而把大模型的文本输出实时变成任意 A2UI 客户端都能渲染的富交互界面。本文将带你用一条完整管线跑通「UI 生成 → 流式解析 → 校验」三步。AGenUI Go Agent SDK 是什么为什么需要它一句话概括它是 LLM 后端与任意 A2UI 前端渲染器之间的桥梁。A2UIAgent-to-UI协议定义了一种标准方式让 AI Agent 生成丰富、可交互的用户界面。Go Agent SDK 聚焦在「服务端要做的四件事」生成结构化 UI 响应— 产出createSurface、updateComponents、updateDataModel、deleteSurface等 A2UI 消息供 Android / iOS / HarmonyOS / Web 等任何合规渲染器显示。增量流式渲染 UI— 在 LLM 逐 token 输出的同时实时解析并吐出「部分」UI 组件实现低延迟的渐进式渲染。校验输出— 用 JSON Schema 协议规则拓扑、可达性、循环引用、递归深度拦截错误避免脏数据到达客户端。管理组件目录Catalog— 加载内置或自定义 Catalog生成能教会模型「有哪些组件、怎么用」的系统提示词。 设计精髓A2UI 是声明式 数据驱动的——UI 是数据状态的直接函数组件用path绑定数据模型。这正是服务端只需下发「组件 数据」即可驱动整屏渲染的原因。服务端 UI 生成让 LLM 按规范输出 A2UI 组件第一步是「教模型」。核心入口是 a2ui.go它定义了SystemPromptOptions选项结构与InferenceStrategy接口真正实现提示词装配的是 manager.go 中的A2uiSchemaManager.GenerateSystemPrompt。它把几段内容拼成最终的 LLM 系统提示词manager.go#L255-L293角色描述RoleDescription工作流描述默认规则DefaultWorkflowRules 自定义WorkflowDescriptionUI 描述UIDescriptionSchema 指令RenderAsLLMInstructions把 JSON Schema 转成模型可读说明示例LoadExamples注入目录的示例组件组件目录Catalog由 catalog.go 的A2uiCatalog承载而标准基础目录Button、Text、Row、Column 等则由 basiccatalog.go 的BundledCatalogProvider从内嵌资源加载——Schema JSON 通过go:embed打包进二进制运行时无需额外文件。一个关键细节模型必须把 JSON 包在a2ui-json与/a2ui-json标签中并且根组件必须排在components列表第一位、父组件先于子组件Top-Down Ordering。这套约定直接服务于后续的流式解析。流式解析边生成边渲染的低延迟管线这是整个 SDK 最精彩的部分。parser.go 提供ParseResponse做同步解析适合拿到完整响应而真正的实时能力在 streaming.go 的A2uiStreamParser中入口是ProcessChunkstreaming.go#L230。它做了一件困难的事在 JSON 还没写完、大模型还在吐 token 的时候就把「已经能确定的组件」先解析出来交给渲染器。ProcessChunk的三大能力JSON 自愈Healing。模型输出常带「尾部逗号、智能引号、未闭合括号」等毛病。解析器用fixJSON自动补全括号、闭合字符串并通过 payload_fixer.go 的ParseAndFix修复尾部逗号。注意只有CuttableKeys如text、label、hint这类可安全截断的字符串字段才会被自动补全结构性字段id、surfaceId、path绝不会被误修。组件级 yield。sniffPartialComponent不断探测缓冲区里「已成形的组件」handlePartialComponent缓存后标记topologyDirty随后yieldReachable调用AnalyzeTopology做拓扑可达性分析把从根节点可达的组件打包下发。还没到的子组件会插入loading_xxx占位组件渲染器先显示骨架、到齐后再替换。安全护栏。jsonBuffer超过10 MB仍未出现闭合标签时解析器会resetJSONState防止畸形输出导致内存无限膨胀。这套「先给骨架、再填内容」的策略让客户端在第一个组件到达时就能开始布局极大降低了感知延迟。校验管线JSON Schema 协议完整性双重把关流式下发的每个片段都会先过一遍校验器 validator.go。A2uiValidator.Validatevalidator.go#L136对 v0.9 协议执行两阶段检查第一阶段 · JSON Schema 校验。用jsonschema编译器把 server-to-client、catalog、common_types 三类 Schema 注册为资源对每条消息按createSurface/updateComponents/updateDataModel/deleteSurface逐一匹配$defs子模式逐字段报错。第二阶段 · 完整性检查。ValidateComponentIntegrityAnalyzeTopology检查组件 ID 引用、拓扑可达性、循环引用、自引用ValidateRecursionAndPaths则限制函数调用深度MaxFuncCallDepth 5与全局递归深度MaxGlobalDepth 50并校验松约束 path 模式。// 校验一条 A2UI 消息rootID 为根组件strictIntegrity 决定是否严格要求无孤儿节点 if err : validator.Validate(a2uiJSON, rootID, strictIntegrity); err ! nil { return err // 返回「Validation failed: ...」聚合错误 }在流式场景下校验器以「非严格」模式运行——能确定有效的组件先放行可疑片段只打日志跳过从而兼顾速度与稳健。完整示例用 rizzcharts 电商看板串联整条管线仓库内置了一个完整可运行的 Go 示例 samples/go/rizzcharts它是一个通过 A2AJSON-RPC协议对外提供电商数据可视化的 Agent。它的三个文件恰好对应管线的三段文件职责main.goHTTP 服务、A2A 协议处理、Agent Cardagent.go调用 LLM、多轮工具调用循环、a2ui-json提取tools.go工具函数get_sales_data、get_store_sales运行流程一气呵成buildSystemPrompt用A2uiSchemaManager装配提示词 →agent.Chat驱动 LLM 与工具循环 →parseA2UIFromText提取并解析a2ui-json块 → 以 A2A data part 返回。其中自定义组件目录与示例分别在组件目录定义rizzcharts_catalog_definition.json图表 / 地图示例chart.json、map.jsonchart.json正是前文三步的「成品」——一个createSurface建表面、updateComponents声明Canvas → Column → Chart组件树根组件root排第一、updateDataModel绑定/chart.items数据最终渲染成可交互的环形图。一键安装与运行步骤1. 拉取仓库Go SDK 位于agent_sdks/gogit clone https://gitcode.com/gh_mirrors/ag/AGenUI cd AGenUI2. 安装 SDK 依赖go get github.com/AGenUI/AGenUI/agent_sdks/go3. 运行示例需要 Go 1.22 与一个 OpenAI 兼容的 API Key在 samples/go/rizzcharts 下创建.env填入OPENAI_API_KEY/OPENAI_API_BASE/LITELLM_MODEL或 Gemini 变量然后cd samples/go/rizzcharts go run .服务将启动在http://localhost:10002可访问/.well-known/agent-card.json获取能力清单或POST /发送message/send消息。4. 跑测试SDK 自带完善的单测与一致性测试cd agent_sdks/go go test ./...目录结构与核心模块速览快速定位代码以下是最值得先读的模块包入口a2ui.go —Version、SystemPromptOptions、InferenceStrategySchema 管理schema/ —A2uiSchemaManager提示词、A2uiValidator校验、A2uiCatalog目录、内嵌 Schema 资源解析器parser/ —ParseResponse同步、A2uiStreamParser流式、payload_fixer自愈、ResponsePart结果结构基础目录basiccatalog/ — 标准 A2UI 组件目录加载官方说明README.md、README.zh-CN.md小结AGenUI Go Agent SDK 把「让大模型生成 UI」这件容易踩坑的事拆成了职责清晰、层层设防的三段管线UI 生成—— 用A2uiSchemaManager生成含 Schema 示例的系统提示词让模型输出「根优先、父先子后」的规范 A2UI流式解析——A2uiStreamParser边收 token 边自愈 JSON、边做拓扑可达性分析、边插入占位组件实现「先到先渲染」校验管线——A2uiValidator用 JSON Schema 完整性检查在数据下发前拦截结构错误、循环引用与深层递归。对 Go 开发者来说这套 SDK 意味着你无需关心渲染细节只需专注「业务意图 → A2UI 组件」的映射就能把 LLM 的能力低延迟、高可靠地送达任意平台的原生界面。赞分享AI应用移动开发【免费下载链接】AGenUINative A2UI Renderer for iOS/Android/HarmonyOS. High performance streaming Generative UI. Custom Components, Styles and more.项目地址https://gitcode.com/gh_mirrors/ag/AGenUI点击查看免费下载相关推荐Genkit A2UI 实战用 a2ui() 中间件构建流式渲染生成式 UI 的 AgentGenkit A2UI 实战用 a2ui 中间件构建流式渲染生成式 UI 的 Agent A2UIAgent to UI是一种传输无关、基于 JSONAI 技能提示工程用 Go 构建 Teleport MCP 服务器并校验 JWTverify-teleport-jwt-mcp-go 实战解析用 Go 构建 Teleport MCP 服务器并校验 JWTverify teleport jwt mcp go 实战解析 Teleport 会在每次通过网络安全认证鉴权运维后端CopilotKit × LangGraph 实战指南用 Next.js Python 构建带 A2UI 生成式 UI 的智能 AgentCopilotKit × LangGraph 实战指南用 Next.js Python 构建带 A2UI 生成式 UI 的智能 Agent 本篇指南以仓库人工智能AI AgentAgent 框架前端后端创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?