最近调研”AI 生成的 JSON 怎么评估质量”和”agent UI 协议”,读了 4 篇代表性论文。这篇是速读 + 技术地图 + 工程启示。
一、4 篇论文速览
1.1 Object Aligner — JSON Schema 相似度评分
- arxiv:2607.01972v1
- 作者:Jan Drchal | 2026
- 做了什么:开源 Python 库,给两张 JSON 对象确定性相似度评分
- 怎么做的:递归对齐两棵 JSON 树
- 无序集合:Hungarian algorithm(最优匹配)
- 有序集合:sequence alignment(动态规划)
- 图/超图:Weisfeiler-Leman color refinement 推断双射
- 场景:信息抽取、工具调用、agent 规划、知识图谱构建
- 亮点:可作为 prompt optimizer 的 reward signal,比 LLM-as-judge 便宜 + 确定性
1.2 MCP 工具描述优化
- 论文:MCP Tool Descriptions Are Smelly! Towards Improving AI Agent Efficiency with Augmented MCP Tool Descriptions
- 主题:MCP 工具的 description 写得好不好直接影响 agent 准确率
- 核心发现:
- description 措辞差 → agent 选错工具 → 任务失败
- 简单改写 + 加 few-shot 示例 → 准确率提升 20-40%
- 实践工具:mcp-tool-optimizer(自动改写 MCP description)
1.3 json-render 与 generative UI
- 工具:vercel-labs/json-render
- 核心思想:让 LLM 输出结构化 JSON → 前端按 catalog 渲染成 UI
- 关键点:
- JSON schema = UI 组件的 catalog
- LLM 输出什么字段,前端就渲染什么组件
- 不需要前端写专门的渲染代码
- 应用场景:
- AI 助手(输出 dashboard 配置 → 前端渲染)
- 数据分析(输出查询 → 自动生成图表)
- 报告生成(输出结构 → 排版成 PDF / Word)
1.4 agent UI 协议(Agent-UI Protocol)
- 核心:让 agent 与前端 UI 通信的标准化协议
- 类似 MCP 但面向 UI:MCP 是工具调用,agent-UI 是 UI 渲染
- 典型实现:
二、4 个项目关系图
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| ┌──────────────────┐ │ json-render │ ← UI 渲染 │ (Vercel 实验) │ └──────────────────┘ ↑ ┌──────────────────┐ │ agent-UI 协议 │ ← 通信标准 └──────────────────┘ ↑ ┌──────────────────┐ │ Object Aligner │ ← 评分 └──────────────────┘ ↑ LLM 输出 ──→ JSON schema ──→ MCP 工具 ──→ UI 渲染
|
三、Object Aligner 详解(最实用)
3.1 解决什么问题
1 2 3 4 5 6 7 8 9 10 11 12 13
| llm_output = {"name": "Alice", "age": 30, "city": "Beijing"}
gold = {"name": "Alice", "age": 30, "city": "Beijing"}
llm_output_2 = {"name": "Alice", "age": "30", "city": "Beijing"}
|
3.2 实际使用
1 2 3 4 5 6 7 8 9 10 11 12
| pip install object-aligner
python -c " from object_aligner import align score, repairs = align( candidate=llm_output, gold=gold, schema=json_schema ) print(f'Score: {score}') # 0.85 print(f'Repairs: {repairs}') # ['age 类型应为 int 不是 str'] "
|
3.3 在 prompt 优化中的用法
1 2 3 4 5 6 7 8 9
| from gepa import optimize
def reward(prompt, output, gold): score, _ = align(output, gold, schema) return score
optimize(prompt, reward=reward, iterations=100)
|
四、json-render 详解
4.1 Catalog 设计
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| { "type": "object", "properties": { "title": { "type": "string", "render": "heading" }, "kpi": { "type": "number", "render": "bigNumber" }, "chart": { "type": "object", "render": "chart", "properties": { "type": { "enum": ["bar", "line", "pie"] }, "data": { "type": "array" } } } } }
|
4.2 LLM 输出 → UI 渲染
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| llm_output = { "title": "今日销售", "kpi": 12500, "chart": { "type": "bar", "data": [{"name": "周一", "value": 2000}, ...] } }
|
4.3 优势 vs 传统做法
1 2 3 4 5
| 传统:前端写 100 个 if/else 渲染不同 JSON 字段 json-render:写 schema,AI 输出什么就渲染什么 → 前端代码减少 80% → 新增字段不用改前端 → AI 可以"创造"新 UI 组件
|
五、4 个工程启示
5.1 LLM 输出必须可验证
1 2 3 4 5 6 7
| def validate_output(llm_output, expected_schema): score, repairs = align(llm_output, expected_schema=expected_schema) if score < 0.8: retry_with_feedback(repairs) return llm_output
|
5.2 MCP description 是被低估的关键
1 2 3 4 5 6 7
| 多数团队只关注: - 工具能跑(functional) - 参数正确(schema valid)
忽略的: - description 写得好(agent 选对工具的关键) - few-shot 示例(提升调用准确率 30%+)
|
投入 1 小时优化 10 个工具的 description,比调整 prompt 模型收益大。
5.3 generative UI 不是 LLM 专属
1 2 3 4 5 6 7 8
| 适用: - 后端 API 返回 JSON → 前端按 catalog 渲染 - 配置文件 → 工具 UI - 数据库 schema → 管理后台
不适用: - 固定业务逻辑的页面(电商列表等) - 高交互的 SPA(图表编辑器等)
|
5.4 agent-UI 协议是 2026 年新趋势
1 2 3 4 5
| 传统:agent 输出文字 + 链接 新趋势:agent 输出可执行 UI 组件 - 按钮 → 点击触发 agent 后续动作 - 表单 → 收集用户输入 - 图表 → 可缩放/筛选
|
六、3 个未解决
- 跨 provider 一致性:不同 LLM 输出 JSON 格式差异大,评分鲁棒性?
- catalog 复杂度上限:超过 50 个组件时 json-render 性能下降
- agent-UI 协议标准化:各厂商协议不同(MCP / agent-UI / Vercel AI SDK),互通性差
七、3 条相关项目
4 篇论文综合启示:AI 编程工具的”质量”问题,本质是”AI 输出 ↔ 期望 schema”的距离度量 + 可执行表示(UI 渲染)问题。Object Aligner 解决前者,json-render 解决后者,组合起来就是”AI 生成可执行 UI”的完整链路。