6.0 KiB
6.0 KiB
name, description
| name | description |
|---|---|
| windows_gui_operator | 在 Windows 桌面环境中执行 GUI 自动化。优先把截图直接提供给多模态模型观察,并按“观察-操作-复查-必要时重试”的闭环执行。 |
Windows GUI Operator
当用户要求你操作 Windows 图形界面时,必须严格遵循下面的 ReAct 工作流。
这个 skill 假设当前模型具备多模态图像理解能力,因此你应该把截图结果当作“观察输入”的核心证据,而不是只依赖文字描述。
核心原则
- 必须先观察,再操作,再复查;如果没有达到目标,继续下一轮观察和调整。
- 每个关键步骤都要保留本地截图,截图既要保存到本地,也要作为图片结果交给模型判断。
- 所有桌面操作都只能通过 GUI 完成,不允许通过 shell、命令行、直接启动 URL 或直接启动应用来绕过界面。
- 不要盲点、盲输;在缺少坐标或上下文时,先获取更多观察信息。
- 每次完成关键动作后,都要做确认,而不是假设动作已经生效。
- 若当前动作未达到效果,必须继续循环,直到完成目标或明确受阻。
- 不要在任务中途向用户提问“是否继续”。除非已经明确受阻,否则应自动进入下一轮观察和操作。
- 如果你输出的只是计划、状态总结、解释文字,或者原样的
<tool_call>文本,这都不算完成;你必须继续把它落实为真实工具调用。 - 一次只做一个最小必要动作。不要预先规划一长串固定操作并连续执行。
- 下一步动作必须基于“刚刚最新的一张截图和最新观察结果”,而不是基于上一个假设继续硬做。
- 在决定下一步动作前,先明确描述最新截图里的关键界面状态,例如开始菜单是否打开、浏览器是否已经出现、地址栏是否聚焦。
单步闭环工作流
每一轮都按下面顺序进行:
Observe:- 调用
get_active_window_title - 调用
save_desktop_screenshot - 读取截图对应的图片内容,先简短描述你看到了什么,再判断当前界面状态和下一步动作
- 调用
Act:- 只选择一个最小必要动作执行
- 可用工具包括:
left_click、type_text、press_keys、hotkey、wait_seconds
Verify:- 再次调用
save_desktop_screenshot - 结合新截图、活动窗口标题、工具返回文本进行判断
- 对输入任务,优先额外用
get_clipboard_text做校验
- 再次调用
Decide:- 如果目标已达成,结束
- 如果目标未达成但可继续,基于最新截图重新判断,再进入下一轮 Observe
- 如果无法继续,明确说明阻塞点和建议
不要只执行单轮。默认至少假设需要多轮迭代,直到确认成功。 不要在中途仅输出状态总结后停止等待用户确认。 如果当前轮没有真正完成目标,就继续下一轮,而不是把控制权交还给用户。
决策要求
- 每一轮只能提交一个动作决策,例如“按 Win 键”或“点击地址栏”或“输入文本”。
- 每一轮最多只允许一次真实工具动作;动作完成后必须先复查,不能在同一轮继续第二个 GUI 动作。
- 不要在同一轮里把“按 Win -> 输入 chrome -> 回车 -> 打开地址栏 -> 输入网址 -> 回车”当作一个固定脚本整体执行。
- 如果某一步出现偏差,例如焦点不对、窗口没切换、输入框没获得焦点,就必须停下来重新观察,而不是继续执行原计划。
- 如果你不确定按钮、输入框或窗口状态,就先截图再决定,不要赌测。
常用工具
save_desktop_screenshot: 截图保存到本地,并把图片返回给模型观察get_active_window_title: 获取当前窗口标题left_click: 在指定坐标单击type_text: 输入文本paste_text: 通过剪贴板粘贴文本,适合网址、搜索词和受输入法影响的内容press_keys: 顺序按键hotkey: 组合键wait_seconds: 等待界面变化get_clipboard_text: 读取剪贴板以验证输入结果
参数示例
优先按下面这些形式调用工具,不要传空字符串:
press_keys(keys=["win"], interval=0.1)type_text(text="chrome", interval=0.03)press_keys(keys=["enter"], interval=0.1)hotkey("ctrl", "l")paste_text(text="https://www.bing.com")wait_seconds(seconds=1.0)left_click(x=300, y=120, clicks=1, interval=0.2)paste_text(text="test")press_keys(keys=["enter"], interval=0.1)hotkey("ctrl", "l")
如果你暂时不确定具体参数,也要使用合理默认值,而不是传空字符串。
对网址、英文搜索词和命令词,优先使用 paste_text,不要依赖当前输入法状态。
确认策略
当前模型具备多模态能力时,你应当把截图内容纳入判断依据。 确认应综合以下证据:
- 工具返回成功
- 活动窗口标题符合预期
- 剪贴板文本与预期一致
- 操作前后截图内容与目标状态一致
- 操作前后截图已经保存到本地,可供人工核验
如果截图证据仍不充分,就继续下一轮观察,而不是提前声称完成。
失败与重试策略
- 每次动作失败后,先截图复查,再决定下一步。
- 不要连续盲目重复同一个点击动作超过 3 次。
- 如果无法定位目标控件,先通过截图重新判断布局,再进行更小步的操作。
- 如果应用未启动成功,优先通过开始菜单、任务栏或桌面图标继续用 GUI 方式尝试。
- 如果经过多轮仍不能完成,给出清晰的阻塞原因。
- 如果某个动作连续两轮都没有带来预期变化,优先改变策略,而不是机械重复原动作链。
注意事项
- 坐标点击前,优先让用户提供窗口状态、分辨率或目标位置描述。
- 涉及敏感操作时,先复述将要执行的动作,再执行。
- 如果动作可能产生副作用,拆成更小步骤,并在每一步后确认。
- 若界面未响应,先
wait_seconds,再重新截图,不要连续重复点击。