Skip to main content
computer 让专家直接操作你的桌面:原生应用、游戏、任何没有 DOM 的界面。它是最底层的交互工具,也是最需要理解约束才用得好的一个。

激活条件

profy-computeruser_selectable: truerequires: { desktop_connected: true }。两个条件缺一不可——必须在插件面板勾选,且必须运行 Profy 桌面端。云端沙盒里这个插件不会激活。

元素寻址:优先 token,不要坐标

这是用好 computer 的关键,也是最容易踩坑的地方。cua-driver 0.17 的寻址规则很严: token 会过期:对同一个窗口再做一次 get_window_state,上一批 token 全部失效,报 stale_element_token。正确反应是重新取一次快照再重试,而不是换成坐标。

标准工作流

第 5 步不是可选的——像素级操作没有返回值告诉你「点中了没有」,只有重新快照才能确认。

18 个 action

观察

操作

幻影光标:move 被硬禁用

调用 move 会直接拿到这条错误:
这是设计,不是缺陷。Profy 采用幻影光标模式:
  • 无障碍寻址的 click 通过 AX API 派发事件,压根不碰光标
  • 像素坐标的 click 在驱动层做保存/恢复,点完光标回原位
所以专家操作桌面时你可以继续用电脑,两边互不抢夺光标。

后台按键与它的已知盲区

keypress 默认 delivery_mode="background",不抢焦点。代价是:原生应用的菜单快捷键(Cmd+N、Cmd+F 等)在后台可能被静默忽略——没有报错,只是什么都没发生。 正确的处理顺序:
  1. 按完后 get_window_state 验证,发现没变化
  2. delivery_mode="foreground" 重试一次(会抢焦点)
  3. 或者换 invoke_menu,它走无障碍菜单,既不抢焦点也不会被忽略
菜单类操作直接用 invoke_menu 是更好的默认选择。

自动像素回落

用 token 点击时如果无障碍层拒绝了,工具会自动做一次像素重试:重新取一次快照,按失败 token 里解析出的索引找到元素,点它的框中心。 这个回落需要你同时传了 window_id——没传就直接返回原始错误,不做回落。所以即使用 token 定位,也建议把 window_id 一起带上。

失败与对策

执行链路

screenshot 在 driver 层被翻译成 get_desktop_state(全屏)或 get_window_state(窗口)——cua-driver 里并没有独立的 screenshot 命令。 底层驱动是 trycua/cua-driver-rs,版本在桌面端 platform.ts 里锁定为 0.17。本文所有寻址约束都是这个版本的行为。

与 chrome / browser 的分工

网页任务优先 chromebrowser——它们不依赖分辨率,稳定得多。computer 留给没有别的办法的场景。

继续阅读

Chrome

控制你自己的浏览器,带登录态

Browser

沙盒内的隔离浏览器

录制与回放

把一段桌面操作固化成可复用流程

工具全表

每个 action 的完整参数