master-playbook 是 Open Intelligent UI 项目的 Open Generative UI 回答手册,用于规定面对不同任务时应选择的回答形式。资料显示其核心用途是帮助在“理解(Understand)”“比较(Compare)”“制作工具(Make a tool)”三类任务中,选择文本、原生组件或自定义交互式回答。
主要能力与形式选择
- 文本:用于简短回答、写作或代码。
- A2UI Table:用于基础表格型回答。
- generateSandboxedUi:用于图表、示意图和自定义交互,需遵循渲染与可视化决策。
- 理解类任务:展示关系或机制,并配有有意义的变量或步进器。
- 比较类任务:让比较标准和假设可见;简单场景用表格,仅在有助于决策时提供可编辑权重或筛选。
- 制作工具类任务:提供可用控件、经过校验的计算、输出和重置。
使用方式与流程约束 资料明确说明没有强制的“确认/计划/构建/叙述”顺序,plan_visualization 为可选;需要时可包含多个不同区块;成功出现“UI generated”结果后应避免重复构建;仅在有帮助时添加说明文字。细化修改使用当前请求和明确选择,不提供跨调用补丁或表达式追加 API。
数据与假设 应标注用户数据、检索来源、计算结果和示例值。query_data 工具返回内置示例 db.csv 的全部行且不做筛选,它不是实时数据库,对无关图表也无需调用。不得编造当前天气、价格或业务数据;缺少关键输入时应询问,或提供清晰标注的示例假设。UI 中需显示单位和计算假设。不得创建凭据表单,也不得声称外部操作已成功。
工具契约 调用 generateSandboxedUi 时须按精确顺序给出参数:initialHeight(预计完成高度)、placeholderMessages(2–4 条简短进度消息)、css(全部样式,占位符在 css 完成前保留,样式应精简)、html(可读正文标记,不含 style 块或整体脚本)、jsFunctions(命名行为函数)、jsExpressions(小型同步调用)。
沙箱限制 沙箱无同源访问能力:不可使用 localStorage、sessionStorage、cookie、IndexedDB 或同源 fetch;不可访问父级 DOM。主题变量、表单样式和 SVG 颜色类会预注入。importmap 支持 three、gsap、d3 和 chart.js。jsFunctions 与 jsExpressions 是经典脚本,不允许顶层 await;动态导入须放在异步函数内并捕获失败。
功能与可访问性 要求使用语义标题、与输入关联的标签、可键盘操作的按钮、可见焦点和可读文本;布局在手机宽度可换行;使用响应式 SVG viewBox 或 canvas 容器;在 JavaScript 到达前保持流式内容可读;尊重减少动态效果设置,并为动画提供暂停/重置。数字输入需用 valueAsNumber、Number.isFinite 和定义域边界校验,拒绝空值和零除数,不得把 NaN/Infinity 或过期结果当作有效答案;统一格式化和重置;排序应保留当前筛选;每个启用的控件必须真正生效;不可信数据使用 textContent 而非 HTML 字符串插值。
后续追问桥接 本地控件在 JavaScript 中运行。用户点击的追问可通过 Websandbox.connection.remote.sendPrompt 请求智能体推理,并应在请求中包含当前值;按钮应标注为发送消息的操作。不得在加载、定时器或普通输入变化时发送,也不得发送机密信息。外部链接使用 Websandbox.connection.remote.openLink({ url }) 且仅限 HTTPS;不要使用独立 MCP 渲染器的全局 postMessage 助手。