# Agent 活动 (https://oh-my-webbridge.github.io/zh-cn/activity/)

> **技术预览**
>
> omw 目前是技术预览版，正在快速迭代。**之后的版本一定会有破坏兼容性的变更。**

{/* Generated from activity.zh-tw.mdx by scripts/i18n.mjs. Edit the zh-TW page instead. */}

Agent 在你自己浏览器的标签页中工作，所以扩展程序会标示它所控制的标签页。标示出现在工具栏图标、弹出式窗口，以及画在页面上方的活动层。

<Demo
  name="activity-form"
  alt="Agent 玩 The Password Game：标签页显示边缘光晕，Agent 的指针与焦点框标出密码字段，每出现一条规则，密码就逐字变长。"
/>

## 工具栏图标 [#toolbar-icon]

| 图标             | 时机                          | 工具提示                                                      |
| ---------------- | ----------------------------- | ------------------------------------------------------------- |
| 深色，白色指针   | 已连接，这个标签页未受控制    | “oh-my-webbridge：已连接”                                     |
| 深色，琥珀色指针 | 有会话控制这个标签页          | “oh-my-webbridge：会话 research 正在控制这个标签页”           |
| 灰色             | 未配对，或连接中              | “oh-my-webbridge：未配对”、“oh-my-webbridge：连接中”          |
| 灰色带红色圆点   | daemon 未运行，或 daemon 拒绝 | “oh-my-webbridge：daemon 未运行”、“oh-my-webbridge：连接遭拒” |
| 灰色带暂停符号   | 已暂停                        | “oh-my-webbridge：已暂停”                                     |

琥珀色指针只标在受控制的标签页上。其他标签页维持显示连接状态的图标。工具提示使用扩展程序的界面语言。

## 弹出式窗口 [#the-popup]

连接时，弹出式窗口最上方是标为“这个标签页”的一列。一般标签页显示“未受控制”，受控制的标签页显示“会话 research”，动作运行期间显示“会话 research 运行中”。这一列会跟随当前的标签页。

这一列下方是给 Agent 的提示词与复制按钮。提示词会轮流显示适合目前标签页的建议，每六秒换一则，最适合网页的排在前面。弹出式窗口依网址、标题与网页内容挑选建议，例如表格、表单字段、代码区块、视频或选取的文字。指针停在提示词上或焦点在提示词内时，会停在目前的建议；修改提示词后，会保留你的文字。

<Demo
  name="popup"
  alt="弹出式窗口位于 Agent 正在玩的 The Password Game 上方：已连接，“这个标签页”显示“会话 demo”，下方是建议的提示词与复制按钮，另有“暂停”与“设置”按钮。"
  still
/>

## 在页面上 [#on-the-page]

活动层会绘制在 Chrome 与 Firefox 中，涵盖会话打开的标签页，以及它向你借用的标签页。会话释放或关闭该标签页时，活动层随之结束。绘制期间，页面会显示：

- 动作运行期间的边缘光晕，动作结束后不久淡出。
- Agent 的指针，附带显示会话名称的名牌。指针会移到每个动作所针对元素的中央，并停在最后一个元素上。浅色背景上的箭头是深色带白边，深色背景上是白色带深色边。
- 右下角的标签，带有琥珀色圆点与会话名称。
- 以琥珀色指针图标作为网站图标，取代页面自己的图标。
- 动作所针对的元素周围有焦点框，框上方标示动作名称：Click、Hover、Type、Select、Check、Focus、Scroll、Drag 或 Upload。元素靠近上边缘时，标签会移到元素下方。焦点框跟随主文档中的元素；会话选取了某个框架时，页面只显示光晕、标签，以及停在上一个位置的指针。

动作结束后，焦点框会再停留片刻，所以连续的点击看起来是一次活动，而不是一闪一闪的框。导航会取代文档，活动层会在新页面上重新绘制。

## 它如何不干扰页面 [#how-it-stays-out-of-the-way]

- 活动层是一个带有 shadow root 的宿主元素。页面的样式不会影响它的各个部分。
- 它使用 `pointer-events: none`，所以点击、选取与悬停都会抵达下方的页面。
- 它是 `inert` 且 `aria-hidden`，所以屏幕阅读器与页面的无障碍树都会略过它。`read_page` 返回的页面文字不含标签，`snapshot` 也不会列出活动层。
- 截图与 PDF 时会先隐藏活动层，完成后再重新显示。
- 活动层带有 75 秒的租约，扩展程序每 30 秒续约一次。扩展程序停止续约时，页面会自行移除活动层并还原自己的网站图标，因此即使 worker 停止或调试工具会话中断，也不会留下任何标记。

## 关闭活动层 [#turn-it-off]

<Demo
  name="settings"
  alt="设置页面，有“连接”、“页面”与“高级”分组。“显示 Agent 活动”已打开。"
  still
/>

到**设置**，再到**网页**，关闭**显示 Agent 活动**。活动层会同时从所有受控制的标签页消失，之后才被会话认领的标签页也不会绘制活动层。Agent 仍会继续工作，工具栏图标与弹出式窗口的那一列仍会显示哪个会话控制该标签页。重新打开开关，会在仍受控制的标签页上绘制活动层。

活动层遵循系统的减少动态效果与减少透明度设置：光晕不再脉动，焦点框与指针直接移动而不滑行，标签改用实心背景。
