Files
isphere-ai-bridge/docs/source-discovery/2026-07-11-a-route-user-silent-rpa.md
2026-07-11 15:11:03 +08:00

130 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# A-route RPA 用户无感运行说明
日期2026-07-11
## 目标
A-route 当前看重窗口和 UIA 控件,而不是背后的网络逻辑。这里的“用户无感”指:
1. 不遮挡当前用户桌面。
2. 不抢焦点。
3. 不接管鼠标键盘。
4. 数字员工仍然能通过 HWND/UIA 找到目标窗口和控件。
5. 所有动作可记录、可复现、可回收。
## 当前已实现
脚本:
```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File E:\coding\codex\isphere-ai-bridge\scripts\open-offline-real-client-window.ps1 -UserSilent
```
效果:
- 从完整离线客户端目录启动 `IMPlatformClient.exe`
- 使用 `-WindowStyle Minimized` 降低启动阶段闪窗概率。
- 找到真实 `IMPlatformClient` 窗口后移动到屏幕外:
- 主窗:`x=-32000, y=-32000`
- 提示窗:同样移到屏幕外
- 设置 `SWP_NOACTIVATE`,不调用前台激活。
- 不生成屏幕截图,避免因为窗口在屏幕外得到无意义图片。
- 继续输出 UIA dump供 RPA 选择器验证。
本轮验证结果:
- 新启动进程:`IMPlatformClient.exe`
- PID`20060`
- 主窗口:`0x340330`
- UIA 根控件:
- `automation_id=frmLogin`
- `framework_id=WinForm`
- `class_name=WindowsForms10.Window.8.app.0.d3a00f_r7_ad1`
- UIA dump 仍可读,即使窗口处于屏幕外:
- `is_offscreen=true`
- 子控件 `skinState``skinLoadPanel` 可见于控件树
## 推荐无感等级
### L1当前用户会话内屏幕外运行
适合当前开发机验证:
```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File E:\coding\codex\isphere-ai-bridge\scripts\open-offline-real-client-window.ps1 -UserSilent
```
优点:
- 实现最快。
- 不影响当前屏幕。
- UIA 读控件可继续工作。
限制:
- 如果某些发送动作必须依赖真实鼠标点击或 OCR 截图,屏幕外模式不适合。
- 发送路径应优先使用 `ValuePattern``InvokePattern``WM_SETTEXT``BM_CLICK` 等 HWND/UIA/Win32 方式。
### L2当前用户会话内可见但不激活
适合排查窗口状态:
```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File E:\coding\codex\isphere-ai-bridge\scripts\open-offline-real-client-window.ps1 -WindowMode Visible -NoActivate
```
优点:
- 人能看到窗口。
- 尽量不抢焦点。
限制:
- 仍可能遮挡用户桌面。
- 只适合调试,不适合长期运行。
### L3独立 Windows 用户会话运行
这是生产上更稳的“真正无感”方案:
- 给数字员工单独建一个 Windows 用户。
- 在该用户会话里登录 iSphere。
- RPA/WinHelper/MCP 都运行在同一个独立会话。
- 业务用户使用自己的桌面,看不到数字员工窗口。
优点:
- 不影响业务用户桌面。
- 不抢业务用户焦点。
- 可以保留真实可见窗口,兼容 OCR/坐标兜底。
限制:
- 需要部署层面的账户和会话管理。
- WinHelper 必须和目标窗口在同一交互式桌面会话里运行。
### L4不用 RPA走 B-route/API/sidecar
这是最终最无感的方向:
- 没窗口。
- 不依赖桌面。
- 不受焦点、分辨率、UI 改版影响。
但当前分支是 A-route RPA所以本轮先把 L1/L2 做出来。
## 结论
当前已经具备 L1 无感基础能力:
- 真实客户端可打开。
- 可屏幕外运行。
- 不需要前台焦点。
- UIA 控件树仍可读取。
下一轮应把发送/搜索动作约束在非焦点方式上:
1. 优先 UIA `ValuePattern`/`InvokePattern`
2. 其次 HWND 消息 `WM_SETTEXT`/`BM_CLICK`
3. 最后才考虑坐标/OCR坐标/OCR 只能放到独立 Windows 用户会话里做,不能放当前用户桌面长期运行。