让 Agent-S3 替你动鼠标:计算机使用智能体实战指南
【免费下载链接】Agent-SAgent S: an open agentic framework that uses computers like a human项目地址: https://gitcode.com/GitHub_Trending/ag/Agent-S
让 AI 帮你关个软件,它连点三次没点中,第四次还关错了窗口——这是很多计算机使用智能体(GUI Agent)的真实处境。Agent-S3 就是为这个痛点做的开源框架,在 OSWorld 基准上以 72.6% 的成功率成为第一个超过人类水平(约 72%)的系统。这篇不讲论文推导,只讲怎么装、里面在干什么、它还做不好什么。
一句话说清:它替代你手动做的那件事
Agent-S3 是一个开源的计算机使用智能体框架:你给它一句自然语言("把表格里的月销售额算出来,再画个折线图"),它自己看屏幕、写代码、点鼠标,把活干完。替代的是你自己盯着屏幕做的那套重复操作。它跑在 Linux、macOS、Windows 上,底层靠 pyautogui 执行鼠标键盘动作,按单显示器环境设计。
核心原理:Worker、Grounding 和一份"岗位 SOP"
先给一张模块图。这是 Agent-S 系列(S2 时代)的架构,S3 在它基础上砍掉了 Manager 规划层,换来更低的推理开销:
S3 每天真正干活的就三个角色。
Worker(干活的):每一步收到一张截图,决定下一步做什么,并把决定写成代码。它身上挂着一份"程序性记忆"(procedural memory,本质是给模型的系统提示词)。拆开看是两类内容:一类像"岗位 SOP"——哪些任务必须走代码、哪些必须走鼠标、做完怎么验证;另一类是自动生成的动作 API 文档,模型能用的每个点击、输入函数都带着说明。类比一下:SOP 像你脑子里"这类事大概怎么做"的直觉,API 文档像你手里"具体按哪个键"的操作卡。
Grounding(翻译官):模型说"点右上角的关闭按钮",Grounding 把这句话翻译成屏幕上具体坐标的 pyautogui 代码。这一步由专门的 grounding 模型完成,官方推荐 UI-TARS-1.5-7B,你只需提供一个推理端点。
反思(Reflection):每个回合,反思代理看一遍完整轨迹,只做三选一——"你在打转,改个方向"、"按原计划继续"、"已经做完了"。它故意不给具体建议,免得替 Worker 做主、把它带偏。轨迹本身只保留最近 8 个回合的截图,这就是它的工作记忆,长任务不会撑爆上下文。
说白了,S3 的哲学是砍掉层级,把经验压进提示词和单步决策里,再用反思兜底。
🖱️ 3 步跑通第一个桌面任务
第 1 步:装好并配 Key
pip install gui-agents brew install tesseract # OCR 依赖,必装 export OPENAI_API_KEY=<你的 key>想改源码的话,先 clone 仓库(https://gitcode.com/GitHub_Trending/ag/Agent-S),再pip install -e .。
第 2 步:最小程序
import io, pyautogui from gui_agents.s3.agents.agent_s import AgentS3 from gui_agents.s3.agents.grounding import OSWorldACI gen = {"engine_type": "openai", "model": "gpt-5-2025-08-07"} gnd = {"engine_type": "huggingface", "model": "ui-tars-1.5-7b", "base_url": "http://localhost:8080", "grounding_width": 1920, "grounding_height": 1080} aci = OSWorldACI(platform="linux", engine_params_for_generation=gen, engine_params_for_grounding=gnd) agent = AgentS3(gen, aci, platform="linux") buf = io.BytesIO(); pyautogui.screenshot().save(buf, format="PNG") info, action = agent.predict("Close VS Code", {"screenshot": buf.getvalue()}) exec(action[0])predict 返回的 action 是一段 Python 代码,exec 执行它,鼠标就动了。
第 3 步:用 CLI 看它第一次动鼠标
SDK 写起来啰嗦,日常直接用命令行:
agent_s --ground_provider huggingface \ --ground_url http://localhost:8080 \ --ground_model ui-tars-1.5-7b \ --grounding_width 1920 --grounding_height 1080 \ --task "Close VS Code"provider 和 model 不传就默认 openai / gpt-5-2025-08-07(官方推荐组合)。前提是 grounding 端点已起好。终端会实时打印每一步生成的代码;卡住时按 Ctrl+C 暂停,再按一次退出,Esc 恢复。
特性拆解:GUI Agent 的三个关键设计
问题一:算表、批处理这种活,它也自己点吗?
不点。S3 内部是 GUI 和代码双轨:程序性记忆写死了规则——所有电子表格计算、数据清洗、批量修改交给代码代理(call_code_agent),GUI 只留给点击、拖拽、画图这类必须过界面的事。代码代理在你本机跑 Python/Bash,最多 20 步预算,结束时报 DONE、FAIL 或 BUDGET_EXHAUSTED。对你的实际影响:表格类任务不用一格一格点,界面刷新错一格也不会全乱。
问题二:点偏了、转圈了,谁管?
反思代理。它每步都过一遍"截图+思考+动作"的轨迹,专门盯两种翻车:动作原地循环、轨迹偏离任务。只提醒"方向不对",不指定下一步。这个设计看着保守,但避开了"反思器自己乱出主意"的常见坑。
问题三:66% 的基线是怎么到 72.6% 的?
靠 Behavior Best-of-N(bBoN),也就是"跑多遍,挑最好的"。单跑 Agent S3(100 步内)在 OSWorld 上是 66%,已经超过当时 SOTA(GTA1 w/ GPT-5 的 63.4%);bBoN 把同一任务跑 N 遍,先用叙述代理把每个动作的前后截图转成一句"事实"——点击位置画圈标注,动作区域放大 4 倍——再由裁判代理两两对比轨迹,挑出完成度最高的一条。最终72.6%,超过人类约 72% 的水平(OSWorld,+6.6pp)。
换个角度,零样本泛化也不差:同一套方法搬到 WindowsAgentArena,从 3 次 rollout 里挑选,50.2% 提到 56.6%;AndroidWorld 从 68.1% 提到 71.6%。
完整实战:算月销售额、出图,全流程走一遍
任务:"把 sales.xlsx 里的月销售额算出总和与月均,再画一张折线图。"
- Worker 看到截图和规则,第一步不点鼠标,直接发起 call_code_agent,把原话任务交给代码代理。
- 代码代理在本机逐步执行:读文件 → 算 SUM/AVERAGE → 原地改好(规则要求完整覆盖而不是追加)→ 报告 DONE。
- GUI 侧不直接信代码结果。规则要求用 GUI 验证,而且代码改过的文件在当前打开的应用里不刷新,必须整个关掉 LibreOffice Calc 再重新打开,才能看到新数字。
- 验证通过才画图。插图表明确禁止代码代理干,走 GUI:插入 → 图表 → 选数据范围 → 完成。
- agent.done() 收尾。
能力边界同样清楚:Bash 命令 30 秒超时;代码代理 20 步预算,用完报 BUDGET_EXHAUSTED;图表、透视表这类视觉元素必须走 GUI。
⚠️ 先别急:这个计算机使用智能体目前做不好的事
- 只支持单显示器。多屏环境没有适配,别直接上。
- 它执行的是模型生成的代码。日常模式是 pyautogui 级别的操作;加上 --enable_local_env 后,任意 Python/Bash 都以你的用户权限运行,仓库原文的提醒是"只在可信环境、可信输入下使用"。别对着装有敏感数据的机器跑。
- 72.6% 是离线评测成绩。bBoN 要跑 N 遍任务,再跑事实生成和裁判(命令在 osworld_setup/s3/OSWorld.md),成本是 N 倍;日常 CLI 用的是单遍 S3。另外 grounding 依赖一个可用端点,UI-TARS-1.5-7B 得自己部署或租推理服务。
谁该用它,下一步看哪里
- 做 RPA、办公自动化的:电子表格、文件批处理是它最稳的场景,GUI+代码双轨天然贴合这类活。
- 做 GUI 测试、端到端验证的:"按流程点一遍、检查点对不对"就是 OSWorld 式任务,CLI 可以直接当测试入口。
- 想本地跑桌面助手的:三大平台都支持,但要预留部署 grounding 端点的时间;仓库 integrations/ 目录下还有一个现成的 wrapper 例子可以参考。
继续深入,看这三处就够:gui_agents/s3/agents/(Worker、grounding、代码代理源码)、gui_agents/s3/bbon/(叙述与裁判实现)、models.md(各模型 API 接入方式)。第一步建议就一件:起一个 UI-TARS-1.5-7B 端点,用 CLI 对它说"Close VS Code",看着它动完鼠标,再考虑怎么接进你自己的流程。
【免费下载链接】Agent-SAgent S: an open agentic framework that uses computers like a human项目地址: https://gitcode.com/GitHub_Trending/ag/Agent-S
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考