给 AI Agent 一个虚拟桌面:用 Amazon WorkSpaces 操作遗留桌面应用的完整实践
痛点:那些没有 API 的老系统
上周接到一个需求——把公司内部的药房管理系统接入 AI Agent,让它自动处理处方补充流程。
打开系统一看,我人傻了。这是一个纯桌面应用,没有 REST API,没有 GraphQL,连个命令行接口都没有。交互方式只有鼠标点点点、键盘敲敲敲。
这不是个例。Gartner 2024 年的数据显示,75% 的组织还在跑缺乏现代 API 的遗留应用。更夸张的是,71% 的财富 500 强公司的关键业务流程运行在没有 API 的大型机系统上。
传统思路是"应用现代化改造"——重写接口、加 API 层、做数据中间件。但现实是:改造周期长、风险高、预算批不下来。老板要的是"下个月就上线"。
所以当我看到亚马逊云科技推出 WorkSpaces AI Agent Desktop 的时候,直觉告诉我:这个方向对了。
思路转变:不改应用,改交互方式
WorkSpaces AI Agent Desktop 的核心思路很简单——既然人能通过桌面操作这些应用,AI Agent 为什么不行?
给 Agent 分配一个虚拟桌面环境,让它像人一样"看屏幕"和"操作鼠标键盘"。应用本身不用做任何修改。
具体来说,Agent 通过三个能力完成操作:
- Computer Vision — 对桌面截图做视觉理解,识别按钮、输入框、菜单等 UI 元素
- Computer Input — 模拟鼠标点击、键盘输入、滚动等操作
- Screenshot Storage — 存储操作过程的截图,用于审计和调试
Agent 通过 IAM 认证连接到 WorkSpaces 实例,整个过程在亚马逊云科技的安全体系内完成。不需要把凭证暴露给外部服务,不需要开额外的网络端口。
架构拆解
整体架构分三层:
┌─────────────────────────────────────────┐
│ AI Agent (你的业务逻辑) │
│ LangChain / CrewAI / Strands Agents │
├─────────────────────────────────────────┤
│ MCP 标准协议层 │
├─────────────────────────────────────────┤
│ Amazon WorkSpaces Instance │
│ ┌───────────────────────────────┐ │
│ │ Computer Vision (截图识别) │ │
│ │ Computer Input (点击/输入) │ │
│ │ Screenshot Storage (审计) │ │
│ └───────────────────────────────┘ │
│ 遗留桌面应用运行于此 │
└─────────────────────────────────────────┘
几个关键设计决策:
MCP 协议兼容:支持 Model Context Protocol 标准,意味着你不会被锁死在某个 Agent 框架里。今天用 LangChain,明天想换 CrewAI 或者 Strands Agents,迁移成本很低。
IAM 认证:Agent 用 IAM Role 连接 WorkSpaces,权限管理走亚马逊云科技统一的身份体系。可以精细控制哪个 Agent 能访问哪台桌面。
分辨率固定 1280×720 PNG:这个设计很务实。固定分辨率保证了 Computer Vision 模型的输入一致性,PNG 无损格式保证了 UI 元素的清晰度。
动手配置
配置过程比我预想的简单。核心步骤:
1. 创建 WorkSpaces Stack
在 WorkSpaces 控制台创建新的 Stack,这一步和创建普通 WorkSpaces 实例一样。
2. 启用 AI Agent 能力
在 Stack 配置里找到 AI agents section,勾选三个开关:
- ✅ Enable Computer Input
- ✅ Enable Computer Vision
- ✅ Enable Screenshot Storage
3. 配置分辨率
设置桌面分辨率为 1280×720,截图格式 PNG。
{
"screenResolution": {
"width": 1280,
"height": 720
},
"screenshotFormat": "PNG",
"computerInput": true,
"computerVision": true,
"screenshotStorage": true
}
4. 设置 IAM 权限
给你的 Agent 配置 IAM Role,允许它连接到指定的 WorkSpaces 实例:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"workspaces:DescribeWorkspaces",
"workspaces:CreateConnect*",
"workspaces:GetScreenshot",
"workspaces:SendInput"
],
"Resource": "arn:aws:workspaces:us-east-1:123456789012:workspace/ws-xxxxxxxxx"
}
]
}
5. Agent 代码集成
亚马逊云科技在 GitHub 上提供了 starter code。以 Python + LangChain 为例,核心流程:
# 伪代码示意 Agent 操作流程
class WorkSpacesAgent:
def __init__(self, workspace_id):
self.workspace = connect_workspace(workspace_id)
def execute_task(self, task_description):
# 1. 截图获取当前桌面状态
screenshot = self.workspace.get_screenshot()
# 2. Computer Vision 理解界面
ui_elements = self.vision.analyze(screenshot)
# 3. 规划操作步骤
actions = self.planner.plan(task_description, ui_elements)
# 4. 逐步执行操作
for action in actions:
if action.type == "click":
self.workspace.click(action.x, action.y)
elif action.type == "type":
self.workspace.type_text(action.text)
elif action.type == "scroll":
self.workspace.scroll(action.direction)
# 每步操作后重新截图确认状态
screenshot = self.workspace.get_screenshot()
self.verify_state(screenshot, action.expected_state)
实战用例:处方补充 Agent
拿我接到的那个需求来说,处方补充的完整流程是:
- 查患者记录 — 在药房系统里搜索患者 ID,打开处方历史
- 搜药品 — 在药品库里查找对应药品的库存
- 下单 — 填写补充数量、选择配送方式
- 确认 — 检查信息无误后提交订单
每一步都是桌面上的鼠标点击和键盘输入。Agent 通过 Computer Vision 识别当前界面状态,判断该点哪里、该输入什么,然后用 Computer Input 完成操作。
关键的是——药房系统本身没有做任何修改。不需要加 API,不需要改代码,不需要更新版本。
踩坑记录
折腾过程中遇到几个坑,记录下来:
坑 1:UI 元素识别不稳定
老系统的 UI 设计比较"复古",按钮样式不统一,有些文字用的是位图渲染。解决办法是固定分辨率(1280×720)并确保字体渲染清晰。如果系统 UI 实在太模糊,考虑调整 Windows 的 ClearType 设置。
坑 2:操作节奏太快
Agent 执行操作的速度远快于人类,有些老系统的界面刷新跟不上。解决办法是在每步操作后加等待,用截图对比确认页面已经加载完成再进行下一步。
坑 3:弹窗和异常处理
老系统很爱弹各种警告框、确认框。需要在 Agent 逻辑里加异常检测——每次截图后先判断有没有意外弹窗,有的话先处理弹窗再继续主流程。
适用场景判断
这个方案不是万能的。我总结了几个适用判断标准:
适合用的场景:
- 遗留桌面应用,无 API、无改造可能
- 流程相对固定、步骤可预测
- 对操作速度要求不是毫秒级
- 需要审计追踪(截图自动存储)
不太适合的场景:
- 高频交易类操作(延迟敏感)
- UI 频繁变更的应用(Vision 模型需要重新适应)
- 已有完善 API 的系统(直接调 API 更高效)
可用区域和费用
目前处于 Preview 阶段,AI Agent 相关能力不额外收费(WorkSpaces 实例本身的费用还是要付的)。
可用区域覆盖挺广:
- 北美:US East、US West、Canada
- 欧洲:Europe
- 亚太:Tokyo、Mumbai、Sydney、Seoul、Singapore
下一步
如果你也有类似的遗留系统对接需求,建议的上手路径:
- 去 GitHub 拉 starter code 跑一遍 demo
- 选一个简单的、步骤少的流程先试水
- 逐步增加复杂度,加入异常处理逻辑
- 跑稳了再推到生产环境
官方资源:
- WorkSpaces 产品页:https://aws.amazon.com/workspaces/
- GitHub starter code:搜索 AWS WorkSpaces AI Agent
这个方案最打动我的地方是务实——不搞理想化的"全面现代化改造",而是承认现实:老系统就是在那里,短期内改不掉,那就想办法让 AI 适应它。这种思路在企业里能落地。

浙公网安备 33010602011771号