桌面智能体(desktop agent)能像人一样看屏幕、点鼠标、敲键盘,在多个应用之间搬数据。把它接进企业流程,真正的难点不在"装",而在"管":权限给多大、哪些动作必须停下来等人确认、出了事怎么追溯。下面这套流程按"先圈地、再放人"的顺序走,装在测试工位上跑通之后再考虑扩大范围。
适用场景
适合那些"步骤固定、界面固定、但要人一遍遍点"的桌面活:把邮件里的订单信息录进内部系统、按规则批量整理和归档文件、在两个系统之间对账、每周固定时间帮团队订会议室或订餐。
不适合的场景同样要说清楚:涉及涉密数据、需要临时提权、结果没人复核的高风险动作(付款、审批、删除、对外发送),都不该直接交给智能体闭环执行。另外,这类桌面智能体的客户端名称、入口和可用范围会随官方版本调整,动手前先看官方文档当前版本,别照着半年前的博客操作。
环境与前置条件
- 操作系统:macOS 近期版本、Windows 10 及以上、主流 Linux 桌面发行版。具体支持范围以官方文档当前版本为准。
- 机器:准备一台专用工位机或虚拟机,不要装在同事的主力机上。桌面自动化会接管鼠标键盘,装在主力机上会互相打架。
- 内存:8GB 是起步,同时开着浏览器、表格、邮件客户端再加智能体,16GB 更稳。
- 磁盘:预留若干 GB。日志、截图、录屏缓存会慢慢涨。
- 网络:能访问模型服务端点。如果公司出口走代理,提前拿到代理地址和端口。
- 账号:一个专用业务账号,绝不用个人管理员账号。
- 前置状态:目标应用(浏览器、邮件、表格)已经登录并保持登录态,窗口布局固定下来。
分步骤部署
第 1 步:先写清楚"它不能做什么"
这一步比装软件重要。拿一张纸列出禁止动作清单,后面所有权限配置都围绕它来。
- 不碰付款、审批、删除、对外群发这四类按钮。
- 不读写工作区目录以外的文件。
- 不访问白名单以外的域名。
- 金额或数量超过阈值就停下来通知人。
- 每个任务必须留下可核对的结果文件或截图。
第 2 步:创建专用工位与专用账号
Linux 示例:
```bash
sudo adduser --home /home/agent-runner --shell /bin/bash agent-runner
```
Windows:
```cmd
net user agent-runner /add
```
创建后不要把它加进管理员组。macOS 在"系统设置 → 用户与群组"里添加用户,账户类型选"标准"。成功标志是 id agent-runner 输出里没有 sudo、wheel、Administrators 这类高权限组。
第 3 步:安装客户端并首次登录
从官方渠道获取安装包,装在默认路径,用第 2 步的专用账号登录。多数客户端有连通性自检或健康检查入口,先跑一次。成功标志:客户端能正常打开,账号信息显示为专用账号,连通性检查通过。
第 4 步:建工作区目录并收紧权限
给智能体一个"活动范围",出了这个范围它读写都失败。
```bash
sudo mkdir -p /srv/agent/{inbox,working,outbox,logs,backup}
sudo chown -R agent-runner:agent-runner /srv/agent
sudo chmod -R 750 /srv/agent
sudo chmod 700 /srv/agent/logs
```
Windows:
```cmd
icacls C:\AgentWork /grant "agent-runner:(OI)(CI)M"
icacls C:\AgentWork /remove "Users" "Everyone"
```
macOS 除了 chmod,还要在"隐私与安全性"里按需勾选辅助功能、屏幕录制、磁盘访问,只勾真正需要的项目。
验证一下:ls -ld /srv/agent /srv/agent/logs,属主应该是 agent-runner,logs 应该是 drwx------。
第 5 步:收敛网络出口
让智能体的流量走公司代理,并只放行必要的域名。
```bash
export HTTPS_PROXY=http://proxy.corp.example:8080
export HTTP_PROXY=http://proxy.corp.example:8080
export NO_PROXY=localhost,127.0.0.1,.internal.example
```
注意:图形界面程序通常读不到 shell 里 export 的变量。Windows 要写进系统环境变量;macOS 用 launchctl setenv;Linux 桌面会话写进 /etc/environment 或用户级 systemd 环境。
第 6 步:隔离凭据和登录态
- 用独立浏览器 profile,别和人的常用浏览器混用:
```bash
chrome --user-data-dir=/srv/agent/chrome-profile
```
- 目标系统里给这个账号分配最小角色,只开它需要的那几个菜单。
- 密码进密码管理器,配置里只放引用,不放明文。
第 7 步:写一份可执行的任务清单
这份清单是团队内部文档,不是产品配置文件——把"停在哪"写清楚,比把"怎么做"写清楚更重要。
```yaml
task: 每日对账单录入
inputs:
- /srv/agent/inbox/对账单-*.xlsx
target_app: 财务系统(浏览器)
steps:
- 打开浏览器并登录财务系统
- 按下单号逐行录入
- 每条记录录入后截图存证到 /srv/agent/logs/
stop_points:
- 金额超过设定阈值时停止并通知负责人
- 出现"删除""审批""付款"按钮时停止
outputs:
- /srv/agent/outbox/录入结果.csv
```
第 8 步:三个典型任务试跑
订餐、订会议室这类要身份和支付的动作:让它做到"选好商家、填好表单、停在提交或支付前",最后一下由人点。比如把"周五中午给团队订 12:30 的会议室并订 10 份餐"拆成两步:智能体负责查空档、比价、把表单填好;人负责确认和付款。这样既省事,又把不可逆动作留在人手里。
整理文件:让它按规则批量重命名、按日期归档。先人工演练一遍规则再交给它:
```bash
find /srv/agent/inbox -name '*.pdf' -mtime +30 -print
```
把这条命令的输出作为预期结果,跑完智能体之后对照检查,多删一个少移一个都能立刻发现。
跨应用操作:从邮件或表格取数,填进网页系统,再回写状态。这类任务最怕界面变化,所以先把窗口位置、分辨率、界面语言固定下来,成功率会明显提高。第一次跑建议全程盯着,记下每一步的耗时和卡点。
验证部署是否成功
按顺序跑一遍,每条都有明确预期。
```bash
1. 客户端进程在跑(进程名以实际安装为准)
ps aux | grep -i agent | grep -v grep
2. 专用账号没有高权限组
id agent-runner
3. 工作区权限
ls -ld /srv/agent /srv/agent/logs
预期:属主 agent-runner,logs 为 drwx------
4. 出口连通性
curl -sS -o /dev/null -w '%{http_code}\n' https://<模型服务端点>/ --max-time 10
预期:返回 2xx/3xx/401 都说明网络通了;返回 000 或超时说明代理或防火墙有问题
```
最后做一个端到端冒烟测试:让智能体在 /srv/agent/working 下新建一个目录、把 inbox 里的一个测试文件改名后移进去、往 outbox 写一行结果。然后人工核对:文件真的在吗、名字对吗、内容对吗、logs 里有没有截图。四项都对,才算部署完成。
常见报错与解决
报错:Operation not permitted,或客户端无法控制另一个应用
→ 原因:系统隐私权限没授全,自动化接口被系统拦下。
→ 解决:macOS 进"系统设置 → 隐私与安全性 → 辅助功能 / 屏幕录制"勾选客户端后重启它;Linux 检查是否运行在 X11 会话,Wayland 下部分自动化会受限,换成 X11 会话再测。
报错:TLS handshake timeout 或 Connection timed out
→ 原因:图形界面程序读不到 shell 里临时 export 的代理变量。
→ 解决:改成系统级配置(Windows 系统环境变量、macOS launchctl setenv、Linux 写入 /etc/environment),重启客户端后用第 4 步的 curl 复测。
报错:element not found,或点击落在了错误位置
→ 原因:窗口没最大化、分辨率或缩放被改过、目标应用界面语言和录制时不一致。
→ 解决:统一到 1920×1080、缩放 100%,目标应用全屏运行,界面语言固定成一种,重跑任务。
报错:401 Unauthorized / 403 Forbidden
→ 原因:登录态过期,或专用账号没有该功能的角色权限。
→ 解决:在专用账号下重新登录;权限不足就找管理员补角色,别临时改用管理员账号顶一下。
报错:Permission denied: /srv/agent/...
→ 原因:文件属主不对,或目标文件正被表格软件、PDF 阅读器占用。
→ 解决:sudo chown agent-runner:agent-runner <路径>;Windows 用 icacls 重新授权;被占用的文件先关闭对应程序。
后续维护
备份:配置目录、任务清单、凭据元数据定期打包,密码本身不要写进压缩包。
```bash
tar -czf /srv/agent/backup/agent-config-$(date +%F).tar.gz -C /home/agent-runner .config
```
升级:先在测试工位升级,跑一遍冒烟任务,再推到正式工位。版本节奏以官方文档为准,别追新。
日志与监控:客户端日志和系统审计日志放在一起存,关键动作用截图或录屏留证,保留周期按公司合规要求定。监控三个指标就够了——任务成功率、人工介入次数、平均耗时。成功率突然掉下来,先查目标系统是不是改版了,再查网络和登录态。
权限复查:每季度看一次专用账号的角色、工作区 ACL、网络白名单,把不再使用的入口删掉。
用量与成本:计费和额度规则以官方计费页面为准,提前设置用量上限和超额告警,避免自动化任务跑飞。
