Launch Oz cloud agents with computer use to reproduce UI-focused bug reports, capture visual evidence, and report reproduction findings. Use when investigating a specific interactive or visual bug from an issue, ticket, support report, or prompt.
复现错误报告
当当前上下文是描述特定错误的GitHub问题、支持报告、Linear工单或用户提示,且该错误可能通过可见的应用程序行为复现时,使用此技能。它主要用于UI、渲染、窗口、设置、编辑器、终端显示、引导或其他交互式错误,其中截图或录制能使结果更具可操作性。
父代理不应尝试手动在本地复现UI错误,除非用户明确要求。启动一个或多个启用计算机操作的Oz云代理,以便它们可以运行相关应用程序、与之交互并捕获视觉证据。
父工作流
- 仔细阅读错误报告并提取:
- 报告的行为
- 期望的行为
- 复现步骤(如果提供)
- 操作系统、应用版本/构建/渠道、Shell、功能标志、账户状态或其他相关环境约束
- 附带的截图、视频、日志或评论,这些可以缩小复现路径
- 决定此技能是否适用:
- 用于UI可见的错误、交互错误、渲染/布局错误、引导错误以及截图证据有用的错误。
- 不要用于纯后端、CI、构建、依赖或纯文本代码问题,除非提示明确要求视觉复现。
- 如果报告需要凭据、私有账户状态或复现环境无法提供的其他能力,请明确报告该约束,而不是猜测。
- 如果复现路径简单,启动一个启用计算机操作的Oz云代理。
- 如果有多个可能的复现路径,在一个
run_agents批次中启动多个Oz云代理。为每个子代理分配不同的假设或环境变体,例如:- 不同的操作系统或桌面环境
- 全新的首次运行状态与已初始化的本地状态
- 稳定版与开发版
- 全新设置与现有设置
- 不同的Shell、提示符、面板布局或设置开关
- 如果步骤不完整,利用代码库知识提出可能的应用程序状态,并分配子代理调查这些状态。不要捏造关于原始报告者环境的事实。
- 在所有子代理报告之前等待,然后进行总结。区分确认复现、部分复现、未复现、阻塞和未测试的假设。
版本和应用程序设置
- 优先使用用户报告的确切应用版本/构建/渠道进行复现,前提是存在合适的可运行工件。
- 当可以安装更接近报告者匹配的工件时,不要默默替换为最新的可用构建。
- 优先使用已发布或打包的可运行工件,而不是从源代码构建,前提是这更匹配报告者的环境且仓库特定指南允许。
- 如果找不到或无法安装确切的版本/构建,请明确报告,说明尝试了什么,并且仅在有助于继续调查时使用最合理的后备版本。
- 在清单和最终报告中记录请求的报告者版本、安装的测试版本、工件来源以及任何后备决策。
仓库特定指南
消费仓库可能附带一个配套的reproduce-bug-report-local技能。当该配套技能可用或在提示中被引用时,请阅读它,并将其仓库特定的范围、应用程序设置、环境和工作流指南作为补充说明应用。本地配套技能可能缩小范围或专门化设置,但不应重新定义此核心技能中的证据、工件、报告或安全期望。
使用类似这样的run_agents调用:
summary: Launching Oz cloud computer-use agents to reproduce the reported UI bug and collect screenshots.
remote.computer_use_enabled: true
agent_run_configs:
- name: "repro-primary"
prompt: the primary repro prompt
- name: "repro-variant"
prompt: optional variant prompt when useful
base_prompt: the shared child prompt below
当额外的子代理会重复相同步骤时,省略它们。除非用户请求特定模型,否则省略model_id。
共享子提示
给每个子代理以下共享指令,然后附加子特定的复现路径或假设。
你正在尝试使用Oz云计算机操作复现一个报告的UI错误。
目标:
- 尽可能忠实地复现报告的行为。
- 在每次有意义的交互前后捕获截图。
- 如果提供的步骤不清晰或不完整,利用代码库和产品知识识别可能产生报告行为的应用程序状态,然后测试分配的假设。
- 报告清晰的复现证据,而不仅仅是意见。
输入:
- 错误报告上下文:<粘贴或总结问题正文、评论、截图/视频描述、标签和相关元数据>
- 分配的复现路径或假设:<具体步骤、环境、应用程序状态、设置、功能标志或要测试的代码路径>
- 报告者应用版本/构建/渠道:<报告中的确切值,或未知>
- 构建/应用目标:<要安装的确切可运行工件,或如果确切工件不可用时的合理后备>
安全与隐私:
- 不要向公共报告者询问凭据、令牌、私有仓库、私有工作区名称或私有账户标识符。
- 不要在截图、日志、清单或最终报告中包含秘密、认证令牌、私有URL、Authorization头或刷新令牌。
- 除非提示和仓库特定指南明确授权安全的测试认证工作流,否则不要创建或登录账户。
- 如果分配的报告无法在允许的认证/状态约束内执行,请停止并报告阻塞。
- 除非明确指示,否则不要向GitHub、Linear、Slack或外部服务发布评论。
- 避免破坏性操作。如果复现需要删除应用程序状态,仅删除当前复现环境的测试状态,并准确报告重置了什么。
工件工作流:
- 创建一个以变体命名的专用工件目录,例如`~/bug-repro-primary`。
- 使用有序文件名保存截图,例如`01-initial-state.png`、`02-before-click-settings.png`和`03-after-click-settings.png`。
- 在工件目录中维护一个简短清单,包含:
- 截图文件名
- 时间戳
- 可见的应用程序状态
- 刚刚执行或即将执行的操作
- 截图是否显示报告的错误
- 如果工具支持内置截图或工件上传,请使用它。否则将工件留在目录中并报告路径。
复现工作流:
1. 确认你正在测试的环境:操作系统、架构、显示/会话类型、Shell(如果相关)以及应用程序/构建/版本(如果可见)。
2. 从报告中识别确切的报告者应用版本/构建/渠道(如果可用),然后使用最接近的仓库批准的可运行工件。
3. 如果没有可用的确切报告者版本,记录版本未知,并为报告选择最合理的安装目标;明确说明后备。
4. 从最匹配报告的最干净状态开始。如果错误依赖于现有设置或持久化的本地状态,不要重置应用程序状态。
5. 在尝试特定错误的复现之前,达到报告所需的基线应用程序状态。
6. 在尝试特定错误的复现之前,捕获基线截图。
7. 首先遵循提供的确切错误复现步骤(如果可用)。
8. 如果确切步骤无法复现,测试分配的假设并记录与报告的分歧。
9. 如果错误出现,停止改变变量,捕获足够的证据使复现具有可操作性。
10. 如果错误未出现,最多进行两个直接由报告或代码路径假设支持的有针对性的变化。
11. 如果应用程序崩溃、挂起或阻塞进度,捕获截图并收集非敏感的日志或终端输出来解释阻塞。
代码路径调查(针对不清晰的步骤):
- 在代码库中搜索报告中提到的UI字符串、标签、功能名称、设置键、遥测名称、路由名称和组件。
- 识别可能产生报告行为的组件、模型、功能标志或状态转换。
- 使用该调查选择有针对性的UI操作,而不是广泛的探索性点击。
- 报告形成假设的文件或符号,但最终报告应聚焦于复现证据。
报告内容:
- 在结论之前简要的错误摘要,包括问题/报告标识符(如果可用)、报告的行为和期望的行为。
- 复现状态:已确认、部分确认、未复现或阻塞。
- 你执行的确切步骤。
- 环境和应用程序/构建信息。
- 报告者请求的应用版本/构建/渠道、安装的测试版本/构建/渠道以及工件来源或后备说明。
- 观察到的行为是否与报告匹配,以及匹配程度。
- 截图列表,附简短描述和工件路径或附件名称。
- 收集的任何日志、崩溃输出或诊断信息,并删除秘密。
- 如果调查过,最可能的代码路径或涉及的状态。
- 建议的下一步调试步骤或后续问题,仅当它会实质性改变下一步操作时。
子提示模式
主要复现子代理
对于有清晰步骤的报告使用:
你负责主要的复现尝试。
在尝试变体之前,严格遵循错误报告的步骤。优先匹配报告者的操作系统、应用渠道、允许的应用状态、设置、Shell和布局。如果这些细节缺失,选择最常见的路径并明确列出假设。
变体子代理
当有特定的替代条件值得测试时使用:
你负责此复现变体:<变体名称>。
仅测试此变体分配的环境或状态。不要重复主要子代理的完整搜索空间。报告此变体是否改变结果,并为任何差异包含截图。
代码路径假设子代理
当复现步骤缺失或模糊时使用:
你负责代码路径引导的复现。
首先从报告中的字符串、UI标签、设置名称、功能名称或截图追踪可能的代码路径。然后选择一条应该能触发可疑状态的有针对性的UI路径。报告用于形成假设的代码路径以及测试它的视觉结果。
成功标准
成功使用此技能会产生:
- 带有截图和确切步骤的确认复现,或带有测试假设的明确未复现。
- 视觉证据的清晰工件路径或附件。
- 测试了哪些变体以及未测试哪些变体的简洁总结。
- 足够的环境细节,以便工程师重复测试。
- 没有泄露的秘密、凭据、私有账户详细信息或不必要的公开评论。
总结格式
当子代理完成后,按以下结构总结:
错误摘要:
- 问题/报告:<标识符或来源>
- 报告的行为:<子代理尝试复现的错误>
- 期望的行为:<本应发生的情况>
复现状态:<已确认 | 部分确认 | 未复现 | 阻塞>
测试内容:
- <变体/子代理>:<步骤和环境>
证据:
- <截图/工件路径>:<显示的内容>
发现:
- <观察到的行为与报告行为的对比>
- <可能的状态/代码路径,如果已知>
下一步:
- <一个具体的调试操作或后续问题>






