> ## Documentation Index
> Fetch the complete documentation index at: https://docs.avibe.bot/llms.txt
> Use this file to discover all available pages before exploring further.

# 标注 Show Page

> 在 Show Page 上指着任何东西——一个元素、一块区域、一张截图——直接告诉 agent 你的意思。答案会回到页面上。

[Show Page](/zh/concepts/show-pages) 不是一张只能看的讲义。标注把它变成一个双向的界面：你指着你真正想说的那个东西——一张图、一段文字、一处看起来不对劲的空白——说上一句，你的 agent 就会像收到任何一条消息一样接住它。当答案「展示」比「描述」更省事时，它会回到**页面上**，就钉在你指的那个东西旁边。

这和 Show Page 本身是同一个念头，只是反过来：不是 agent 递给你一张页面，而是你在页面上指给 agent 一个位置。

<Note>
  标注和页面上原位回应随近期的 Avibe 版本一起提供。如果你的聊天里在 Show Page 上没有标注控件，或者 `vibe show` 还没有列出 `annotate` / `reply` / `marks` 这些命令，运行 `vibe upgrade` 后重新加载即可。
</Note>

## 打开标注

当你在 [Workbench](/zh/concepts/workbench) 聊天里打开一个 Show Page 时，页面头部会出现一个 **标注** 控件，就在「返回对话」按钮旁边。它**默认关闭**——在你打开它之前，页面和普通网页没有区别。

* **在桌面端**，这个控件一开始是一个图标。点开它，它会展开成一个小分段控件：**标注** 开关，加上两个模式，**Smart** 和 **截图**。
* **在手机上**，它是一个按钮，点开一个紧凑的弹出层——选 **Smart** 或 **截图**，或者 **关闭标注**。点按钮本身会用你上次用过的模式打开标注。

标注第一次会以 **Smart** 模式打开，之后会记住你上次用的模式。任何时候按 **Esc** 都能退出。标注关闭时，页面上的点击、链接、控件都和以前完全一样。

## Smart 模式——指着说

Smart 模式用来指页面上已经有的东西。

1. **点一个元素**、**选一段文字**，或者 **框选一块区域**。一张评论卡片会打开，锚定在你选中的东西上。
2. 给它一个**意图**，让 agent 知道你想要哪种回应：
   * **评论**——一句备注或观察。
   * **修改**——你希望这里被改。
   * **疑问**——你在问它；agent 会被引导直接在页面上原位回答。
   * **批准**——一键通过，不用打字。
3. 发送。你的标注会作为一条消息进入聊天，你的 agent 随即回应——改页面、在页面上回复，或者在聊天里回答，哪种合适用哪种。

因为 **批准** 不需要文字，给某样东西点头就是一次点击的事。

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

有时候重点不是某一个元素，而是几样东西放在一起是什么样。截图模式会截下一块区域，让你在上面标注。

1. **框选** 你在意的那块区域。Avibe 会在你的浏览器里本地截图——不会弹出屏幕共享请求，而且在通常无法屏幕录制的 iPhone 一类设备上也能用。
2. 在截图上放下**带编号的评论**——这里「1」、那里「2」——想放几条放几条。
3. 把它们**一起成批发送**，让 agent 拿到完整的画面和你按顺序排好的备注。

<Note>
  在触屏上，你框选区域时页面滚动会被锁住，好让你的拖拽保持精准。按 **Esc**，或把标注关掉，就能重新正常滚动。
</Note>

## 在独立页面上

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

## 发送之后会怎样

你的标注会作为一条普通消息出现在聊天里（带一个标记，让你看得出它来自页面），并像你发送的其他任何东西一样触发一次回复。

agent 也可以**在页面上**回答。它这么做时，你指的那个元素旁边会出现一个**紫色圆点**——一条简短的回应，锚定在你的问题上。点开它读答案；读过之后，这个标记就**退场**：它会淡成一个安静的灰点，下次加载不再出现。把它们想成对话气泡，而不是越堆越多的便利贴。

有几条规则让页面保持清爽：

* 同一时刻最多有**五**个未读标记内联显示。超出的会收进**右下角的一个徽标**，它的列表里装着每一个仍然活跃的标记。
* 如果 agent 改过页面、某个标记原来的位置没了，这个标记会移进徽标列表，标为 **「原位置已更新」**——它的文字仍然可读，而且绝不会被钉到错误的位置。

## 公开页面：谁能标注

当你把一个 Show Page [发布](/zh/concepts/show-pages)成公开的 `/p/…` 链接时，读和写两侧是区别对待的：

* **拿到链接的任何人都能查看**页面，并读上面的标记。
* **标注需要在同一个浏览器里登录** workbench。匿名访客看到的是只读页面，没有标注控件。登录后控件就会出现。

每一条标注都会记录**是谁做的**——你的 workbench 身份——好让你和 agent 能分清各自的贡献。你标注的东西没有一条是匿名的，公开链接也绝不会让陌生人写你的页面。

## 在页面上回答：反向标记

这个闭环的后半段属于 agent。这些命令你不用自己敲——你只要说出想要的行为（「我在页面上的疑问就在页面上回我」「你改过的地方都标一下」），agent 就会用下面这些 `vibe show` 命令。写 agent 指令时值得知道它们，它们也是 agent 遵循的参考。

| 命令                                                            | 作用                                                      |
| ------------------------------------------------------------- | ------------------------------------------------------- |
| `vibe show reply <event-id> --message "…"`                    | 回答某一条具体的标注，锚定在你指的位置。对同一条标注再回复一次会替换掉之前的回复。               |
| `vibe show mark <target> --message "…"`                       | 在某个元素上主动留一条说明——一个命名的页面锚点或一个 CSS 选择器。对同一个目标再标一次会替换掉之前那条。 |
| `vibe show marks`                                             | 列出页面上当前活跃的标记。                                           |
| `vibe show unmark <id-或-target> …`                            | 退场一个或多个标记（用空格分隔）。                                       |
| `vibe show annotate --on \| --off [--mode smart\|screenshot]` | 从 agent 这一侧打开或关闭你的标注层，或切换它的模式。这只是操控标注层——它不会发出任何聊天消息。    |

agent 几乎不用自己拼命令：每一条到达它的标注都带着自己的 event id，其中许多还会附上一行可以直接运行的 `vibe show reply …`。是在页面上回答、还是直接改页面内容来响应，由 agent 按场景自己判断。

agent 也可以直接在它写的页面里声明一条说明，在它编写的任意元素上加一个 `agent-note` 属性：

```jsx theme={null}
<section agent-note="这个区块已切换到新数据源。">
```

这种说明和元素同生共死——重写或移除这个元素，说明会在下次渲染时跟着走。（命名的 `mark-*` 锚点说的是某样东西**在哪**；`agent-note` 说的是 agent 想就它告诉你**什么**。）

**一口气说完它的生命周期：** 标记是对话气泡。未读的显示为一个紫色圆点；读一次就让它永久退场。一条回复始终和它所回答的那条标注配对。agent 被引导每一轮只留一两个标记；最多五个内联显示，其余落进徽标；而一个锚点已经无法解析的标记会退化进徽标列表，而不是被猜着钉到错误的位置。

页面承载对话，聊天保留记录。有这两样，指着 agent 的成果、再拿到回答，就只是……在说话而已。想了解一张页面本来能是什么，见 [Show Pages](/zh/concepts/show-pages)。
