Skip to main content
Show Page 不是一张只能看的讲义。标注把它变成一个双向的界面:你指着你真正想说的那个东西——一张图、一段文字、一处看起来不对劲的空白——说上一句,你的 agent 就会像收到任何一条消息一样接住它。当答案「展示」比「描述」更省事时,它会回到页面上,就钉在你指的那个东西旁边。 这和 Show Page 本身是同一个念头,只是反过来:不是 agent 递给你一张页面,而是你在页面上指给 agent 一个位置。
标注和页面上原位回应随近期的 Avibe 版本一起提供。如果你的聊天里在 Show Page 上没有标注控件,或者 vibe show 还没有列出 annotate / reply / marks 这些命令,运行 vibe upgrade 后重新加载即可。

打开标注

当你在 Workbench 聊天里打开一个 Show Page 时,页面头部会出现一个 标注 控件,就在「返回对话」按钮旁边。它默认关闭——在你打开它之前,页面和普通网页没有区别。
  • 在桌面端,这个控件一开始是一个图标。点开它,它会展开成一个小分段控件:标注 开关,加上两个模式,Smart截图
  • 在手机上,它是一个按钮,点开一个紧凑的弹出层——选 Smart截图,或者 关闭标注。点按钮本身会用你上次用过的模式打开标注。
标注第一次会以 Smart 模式打开,之后会记住你上次用的模式。任何时候按 Esc 都能退出。标注关闭时,页面上的点击、链接、控件都和以前完全一样。

Smart 模式——指着说

Smart 模式用来指页面上已经有的东西。
  1. 点一个元素选一段文字,或者 框选一块区域。一张评论卡片会打开,锚定在你选中的东西上。
  2. 给它一个意图,让 agent 知道你想要哪种回应:
    • 评论——一句备注或观察。
    • 修改——你希望这里被改。
    • 疑问——你在问它;agent 会被引导直接在页面上原位回答。
    • 批准——一键通过,不用打字。
  3. 发送。你的标注会作为一条消息进入聊天,你的 agent 随即回应——改页面、在页面上回复,或者在聊天里回答,哪种合适用哪种。
因为 批准 不需要文字,给某样东西点头就是一次点击的事。

截图模式——在截图上标注

有时候重点不是某一个元素,而是几样东西放在一起是什么样。截图模式会截下一块区域,让你在上面标注。
  1. 框选 你在意的那块区域。Avibe 会在你的浏览器里本地截图——不会弹出屏幕共享请求,而且在通常无法屏幕录制的 iPhone 一类设备上也能用。
  2. 在截图上放下带编号的评论——这里「1」、那里「2」——想放几条放几条。
  3. 把它们一起成批发送,让 agent 拿到完整的画面和你按顺序排好的备注。
在触屏上,你框选区域时页面滚动会被锁住,好让你的拖拽保持精准。按 Esc,或把标注关掉,就能重新正常滚动。

在独立页面上

单独打开一个 Show Page——一个直接的 /show/… 标签页,或者一个你固定到 Dock 的页面——就没有聊天头部来放这个控件了。这时右下角会有一个小的悬浮按钮。它打开同样的模式、产生同样的结果:你的标注照样回流到这个会话的对话里,agent 照样回答。

发送之后会怎样

你的标注会作为一条普通消息出现在聊天里(带一个标记,让你看得出它来自页面),并像你发送的其他任何东西一样触发一次回复。 agent 也可以在页面上回答。它这么做时,你指的那个元素旁边会出现一个紫色圆点——一条简短的回应,锚定在你的问题上。点开它读答案;读过之后,这个标记就退场:它会淡成一个安静的灰点,下次加载不再出现。把它们想成对话气泡,而不是越堆越多的便利贴。 有几条规则让页面保持清爽:
  • 同一时刻最多有个未读标记内联显示。超出的会收进右下角的一个徽标,它的列表里装着每一个仍然活跃的标记。
  • 如果 agent 改过页面、某个标记原来的位置没了,这个标记会移进徽标列表,标为 「原位置已更新」——它的文字仍然可读,而且绝不会被钉到错误的位置。

公开页面:谁能标注

当你把一个 Show Page 发布成公开的 /p/… 链接时,读和写两侧是区别对待的:
  • 拿到链接的任何人都能查看页面,并读上面的标记。
  • 标注需要在同一个浏览器里登录 workbench。匿名访客看到的是只读页面,没有标注控件。登录后控件就会出现。
每一条标注都会记录是谁做的——你的 workbench 身份——好让你和 agent 能分清各自的贡献。你标注的东西没有一条是匿名的,公开链接也绝不会让陌生人写你的页面。

在页面上回答:反向标记

这个闭环的后半段属于 agent。这些命令你不用自己敲——你只要说出想要的行为(「我在页面上的疑问就在页面上回我」「你改过的地方都标一下」),agent 就会用下面这些 vibe show 命令。写 agent 指令时值得知道它们,它们也是 agent 遵循的参考。 agent 几乎不用自己拼命令:每一条到达它的标注都带着自己的 event id,其中许多还会附上一行可以直接运行的 vibe show reply …。是在页面上回答、还是直接改页面内容来响应,由 agent 按场景自己判断。 agent 也可以直接在它写的页面里声明一条说明,在它编写的任意元素上加一个 agent-note 属性:
这种说明和元素同生共死——重写或移除这个元素,说明会在下次渲染时跟着走。(命名的 mark-* 锚点说的是某样东西在哪agent-note 说的是 agent 想就它告诉你什么。) 一口气说完它的生命周期: 标记是对话气泡。未读的显示为一个紫色圆点;读一次就让它永久退场。一条回复始终和它所回答的那条标注配对。agent 被引导每一轮只留一两个标记;最多五个内联显示,其余落进徽标;而一个锚点已经无法解析的标记会退化进徽标列表,而不是被猜着钉到错误的位置。 页面承载对话,聊天保留记录。有这两样,指着 agent 的成果、再拿到回答,就只是……在说话而已。想了解一张页面本来能是什么,见 Show Pages