docs/prds/agent-browser/prd.md
这份 PRD 要回答的问题:用户让 Agent 上网查东西、办事情时,怎样让整个过程发生在 AionUi 里——用户看得见、插得上手、登录态不丢。
给谁用:
产品现状:侧边预览框已能展示 Agent 打开的网页(带地址栏、前进后退),也支持多个预览 tab 并存。但用户不能自己主动打开一个浏览器页面;Agent 的浏览器操作能力默认关闭、需要手动配置才能用;网页登录态不持久,重启即丢。
目标体验:预览框不只是"Agent 给什么看什么"的被动窗口,用户随时可以主动开网页。
入口位置:复用文件树面板右上角已有的「打开工作区,用……」下拉,在菜单中新增「浏览器」一项。该下拉当前提供 VS Code / 终端 / 文件管理器三个选项,均为"跳出 App 用外部工具打开工作区文件夹";浏览器是"在 App 内打开",因此在菜单中以分隔线与前三项区隔,避免用户误以为会启动外部 Chrome。
<webview> 容器,也没有可供 Agent 操作的 CDP 端口——技术上无法承载应用内浏览器。因此 WebUI 模式下该入口仍然隐藏;这不是遗漏,而是该形态不具备的能力。Case 覆盖:
| 场景 | 期望行为 |
|---|---|
输入不带 http:// 的域名(如 github.com) | 自动补全协议并访问 |
| 输入中文/关键词 | 走搜索引擎 |
| 页面加载失败(断网、404) | 页内给出可理解的错误提示 + 重试按钮,不白屏 |
| 页面内点链接 | 默认当前 tab 内跳转;页面要求新窗口打开时在新 tab 打开 |
| 临时工作区 | 下拉可见,菜单仅「浏览器」一项 |
| WebUI 模式 | 入口隐藏(该形态无 <webview> 与 CDP,不支持) |
目标体验:用户说"帮我打开某网站查一下",Agent 直接操作 App 内的浏览器,页面在侧边预览框实时呈现——用户看着 Agent 干活。
Case 覆盖:
| 场景 | 期望行为 |
|---|---|
| Agent 说"打开 X 网站" | 预览框自动展开并显示该页面 |
| Agent 操作时用户正在看另一个预览 tab | 不强行抢焦点,tab 上给出活动提示,用户可点过去看 |
| 页面需要登录 | Agent 停下说明,用户在预览框里自己登录,之后 Agent 继续 |
| 用户中途关掉了 Agent 正在用的 tab | Agent 感知到页面已关闭,向用户说明而不是静默失败 |
| 同时开着两个 AionUi 窗口/实例 | 各自的 Agent 只操作各自实例内的浏览器,互不串扰 |
**归属:跟随项目,与现有预览框完全一致。**右侧预览区属于项目而非单个会话,浏览器 tab 沿用同一规则,用户不需要理解任何新概念:
其他规则:
Agent 操作浏览器的底层机制,会在本机开放一个控制通道。默认开启意味着装好即有——这是零配置体验的代价。
首次知情提示:Agent 第一次操作应用内浏览器时给一次性提示,让用户知道正在发生什么,而不是页面莫名自己动起来。