跳到主要内容
知识地图AFS-UI

你在这里。看看这个问题与其他知识怎样相连。

选择节点前往页面 · 展开后可留在地图中阅读

知识地图沿着连接,读懂一个问题
← 学习

学习 / AFS + AFS-UI

从上下文,到界面。

同一个任务,可以显示成卡片、列表,也可以成为 agent 的操作对象。从这个例子出发,理解界面改变时,背后的对象与操作怎样保持联系。

从 AFS 开始

选一条起点路径

  1. 01
    从 AFS 开始

    理解任务能指向什么、访问什么、操作什么。

    第一次接触 · 认识资源与地址5 个问题
  2. 02
    从两面理解一个界面

    把人看见的界面,连到 agent 能使用的结构。

    已了解 AFS · 连接画面与对象5 个问题
  3. 03
    什么应该保持稳定?

    沿着演讲背后的架构问题展开。

    架构讨论 · 理解哪些约定应当稳定6 个问题
  4. 04
    分清协议、设备与组件

    看懂一棵界面树、它使用的协议,以及网站怎样呈现它。

    面向开发者 · 分清协议与网站实现9 个问题
  5. 05
    看懂相近名字背后的区别

    把协议、SDK、宿主和设计工具放回各自的位置。

    已了解 AUP · 比较各方案的职责8 个问题
  6. 06
    从找到资源,到可靠地操作它

    分清地址、能力、更新与失败,读懂共享工作环境的行为。

    已了解 AFS · 资源行为与可靠性6 个问题

把知识连成一场演讲

万物演进,什么应当保持?

从 X Window 的启发出发,讨论共享上下文、寻址与显示之间的关系,再提出可以检验这些设计的研究问题。

看看知识怎样连接

每篇解释都能独立阅读。“先了解”标出了它用到的背景。

01

可寻址的工作世界

资源、路径与操作

  1. AFS 把什么组织在一起?

    AFS 为任务提供一份有名字、可查看的资源视图。

  2. 路径给 agent 带来了什么?

    路径在命名空间中标识资源,让操作有明确的对象。

  3. 服务怎样接入 AFS?

    Provider 实现资源操作,挂载把它接入命名空间。

  4. 为什么操作的含义必须稳定?

    有了地址,还要让使用者知道对它进行的操作意味着什么。

  5. 共享上下文意味着所有人看见全部内容吗?

    Small World 为一个观察者呈现相关资源,而不是开放整个系统。

  6. 挂载把资源放到哪里?

    入口路径与资源的原来位置,可以是两回事。

  7. 有了地址,就知道能做什么吗?

    资源的位置、支持的操作和调用者权限,要分别确认。

  8. 另一块屏幕怎样知道内容变了?

    读取同一地址与收到变化通知,是两个步骤。

  9. 两个人同时修改,会发生什么?

    共享地址不替你决定旧版本的修改应该怎样处理。

  10. 搜索与查询,为什么要分开?

    找相关内容,与按明确条件取得记录,是两类请求。

  11. 失败以后,应该重试还是换一个做法?

    不存在、不支持、被拒绝和版本冲突,需要不同的处理。

02

可查看结构的界面

可操作上下文的视图

  1. AFS-UI 增加了什么?

    AFS-UI 把界面看作可操作上下文的投影,让人和 agent 都能参与其中。

  2. 按钮背后,agent 能看见什么?

    视觉控件可以对应有名字的结构、状态和动作,而不只是一片像素。

  3. 视图变了,对象可以不变吗?

    把上下文与投影分开,就能让多种视图指向同一组可操作对象。

  4. Display 和 session 有什么不同?

    显示端负责呈现与交互,会话组织一段交互上下文中的操作状态。

  5. 翻到界面背后,应该看到什么?

    检查界面应该揭示当前视图的真实结构,以及它与状态的关系。

03

延续至今的设计思想

变化中的稳定边界

  1. X Window 给了我们什么启发?

    计算发生的地方,与人看见并操作它的地方,可以分开。

  2. 独立的部分怎样才能组合?

    兼容的资源地址和操作,让不同部分无需共享全部实现细节也能协作。

04

界面的协议表达

节点、绑定、事件与能力

  1. AUP 是什么?

    Agentic UI Protocol 描述界面结构,以及它怎样连接状态和动作。

  2. 一棵 AUP tree 里有什么?

    从一张任务卡片读懂身份、类型、属性与子节点。

    先了解 ↑AUP 是什么?
  3. src、bind 和 propBind 有什么区别?

    读取资源、写回输入与更新属性,是不同的连接。

  4. 点击按钮以后发生什么?

    从界面事件走到明确的操作目标。

  5. 同一份界面,每个设备都能显示吗?

    设备能力描述与降级,决定一份结构怎样落地。

    先了解 ↑AUP 是什么?
  6. AUP 的 primitives 有哪些?

    18 个核心类型,是读懂界面的词汇入口。

    先了解 ↑AUP 是什么?
05

面向 Web 的实现

站点、主题与实现边界

  1. Web Device 是什么?

    把内容与界面组织成可访问的网站,是另一层工作。

    先了解 ↑AUP 是什么?
  2. AUP 与 Web Device 怎样分工?

    一个描述界面合同,一个组织 Web 站点的实现。

  3. Web Device 的组件是什么?

    区分核心 primitive、Web-only 类型与主题组件,并查看默认主题目录。

06

逐个认识核心类型

18 个类型,一次弄懂一个问题

  1. view:怎样把内容放在一起?

    view 负责组织子节点;布局表达它们如何排列。

  2. text:一段文字怎样成为节点?

    text 表达文字内容、标题层级与受支持的格式。

  3. media:图片、音频和视频怎样表达?

    media 表达媒体类型、来源及辅助说明。

  4. input:怎样接收用户输入?

    input 表达一个输入控件;change 表达值的变化。

  5. action:按钮怎样表达意图?

    action 表达可触发的动作或导航入口。

  6. overlay:弹窗的打开状态放在哪里?

    overlay 表达弹窗等覆盖式界面,并为打开或关闭保留明确状态。

  7. table:什么时候用表格表达数据?

    table 用列定义与行数据表达可比较的记录。

  8. time:时间显示与日程表有何不同?

    time 表达日期、时钟或倒计时等时间信息。

  9. chart:图表的语义与绘图库如何分开?

    chart 表达数据可视化;具体 Web 绘制有自己的实现。

  10. map:地图是不是任意空间图谱?

    map 面向地理位置、地图中心与标记。

  11. calendar:怎样表达一组日程?

    calendar 把事件组织成月、周、日或议程视图。

  12. chat:chat 列入核心词汇意味着什么?

    chat 是核心类型;使用它仍需选择支持的会话目标。

  13. rtc:预留类型是不是已完成的能力?

    rtc 为实时通信预留名称;当前还不能把它当成已可用的通话控件。

  14. explorer:怎样浏览一片 AFS 资源?

    explorer 表达资源浏览子系统;运行时还需支持它的展开与呈现。

  15. editor:编辑器是否自动保存资源?

    editor 提供代码或文本编辑;保存取决于明确连接。

  16. canvas:画布上的笔迹是不是共享数据?

    canvas 提供自由绘制;画出的内容是否保存和共享,要由应用连接。

  17. surface:怎样把另一个资源或界面放进来?

    surface 提供嵌入呈现的边界,连接资源或远端 AUP。

  18. afs-list:同一批资源能有不同列表视图吗?

    afs-list 把 AFS 资源集合组织成列表、网格等呈现。

07

理解相邻方案

协议、SDK 与设计工作流

  1. 这些 Generative UI 方案怎样比较?

    按职责、地址、状态与交互合同比较,而不是只按名字排队。

  2. A2UI 解决什么问题?

    把 agent 提供的界面描述,交给客户端支持的组件来呈现。

    先了解 ↑AUP 是什么?
  3. MCP Apps 是什么?

    让 MCP 工具在支持的宿主里带出交互式 HTML 界面。

  4. MCP-UI 与 MCP Apps 是什么关系?

    标准与围绕标准的实现工具,不宜混为两个独立阵营。

  5. AG-UI 与 A2UI 是同一层吗?

    一个聚焦 agent 与应用之间的事件交流,一个描述界面。

    先了解 ↑AUP 是什么?
  6. Flutter GenUI SDK 是另一种协议吗?

    它是把生成式界面接入 Flutter 的一组实现工具。

  7. Google Stitch 应放在哪一层比较?

    从设计工作流理解它,再与运行时协议分开讨论。

  8. 同样叫 path,指向的是同一种东西吗?

    比较地址所在的范围、解析方式与可执行的操作。