Agent S
让模型通过截图和坐标定位,像人一样操作桌面应用。
按维度查看评分与理由
证据显示:README 明确警告本地编码环境会执行任意代码,并建议在可信环境中使用,这体现了对权限的有限考虑(least_privilege=1)。但未提供用户确认机制(user_confirmation=0),数据流不透明(data_flow_transparency=0),敏感数据处理无说明(sensitive_data_handling=0),依赖安全未提及(dependency_security=0)。外部影响方面,README 警告了代码执行风险,但未提供回滚机制(rollback=0)。来源归属方面,README 提供了论文引用和作者信息(source_attribution=1)。扣分原因:缺乏安全机制和透明度。
证据显示:README 和代码示例一致,提供了 CLI 和 SDK 用法,自洽性较好(self_consistency=2)。依赖可用性方面,requirements.txt 列出了依赖,但未提供版本锁定或完整性校验(dependency_availability=1)。失败消息方面,测试文件 test_providers.py 检查了配置错误,但未覆盖运行时失败(failure_messages=1)。扣分原因:依赖未固定版本,失败处理有限。
证据显示:README 明确了目标受众(研究人员、开发者)和使用场景(OSWorld、WindowsAgentArena、AndroidWorld),并提供了多平台支持(audience_and_scenarios=2)。能力边界方面,说明了单显示器限制和本地编码环境风险(capability_boundaries=2)。触发精度方面,提供了详细的 CLI 参数说明,但未明确触发条件(trigger_precision=1)。环境适配方面,支持 Linux、macOS、Windows,并提供了平台特定依赖(environment_fit=2)。扣分原因:触发条件不明确。
证据显示:README 结构清晰,包含目录、安装、使用、引用等(information_architecture=2)。安装说明详细,包括 pip 安装和额外依赖(install_notes=2)。命名稳定性方面,提供了版本更新记录,但未明确命名约定(naming_stability=1)。示例和 FAQ 方面,提供了 CLI 和 SDK 示例,但无 FAQ(examples_and_faq=2)。已知限制方面,提到了单显示器限制和本地环境风险,但不全面(known_limitations=1)。许可证为 Apache-2.0,完整(license=3)。版本变更日志方面,README 有更新记录,但无独立 CHANGELOG(versioning_changelog=2)。维护责任方面,未明确维护者或贡献指南(maintenance_responsibility=1)。扣分原因:缺少 FAQ、完整限制列表和维护责任说明。
证据显示:输出可用性方面,提供了 CLI 和 SDK 用法,输出为可执行代码(output_usability=2)。边际价值方面,声称超越人类性能,但未提供独立验证(marginal_value=2)。成本效益方面,需要多个 API 密钥和 grounding 模型,成本较高,但未提供成本分析(cost_benefit=1)。扣分原因:成本效益未量化。
证据显示:README 提供了论文链接和引用,可追溯(claim_traceability=2)。跨来源验证方面,提供了多个基准测试结果,但未提供独立复现(cross_source_corroboration=1)。事实与推断分离方面,README 区分了结果和推断,但部分声明未明确标注(fact_inference_separation=1)。扣分原因:缺乏独立验证和明确区分。
- 本地编码环境会执行任意代码,务必在可信环境中使用,并考虑沙箱隔离。
- 需要多个 API 密钥和 grounding 模型,成本较高,请评估预算。
- 依赖未固定版本,可能存在供应链风险。
- 未提供用户确认机制,自动化操作可能造成意外更改。
这个 Agent 能做什么,适合哪些场景?
Agent S 是一个面向电脑操作的开源 GUI 智能体框架,当前 README 以 Agent S3 为主要版本。它由主生成模型、OSWorldACI grounding agent 和可选的 LocalEnv 组成:主模型决定下一步,grounding 模型将动作定位到可执行的屏幕坐标。CLI 入口为 agent_s,SDK 的核心类为 AgentS3 与 OSWorldACI;SDK 示例从 pyautogui 截图读取观察结果,再返回并执行 Python 动作代码。项目声明支持 Linux、macOS 和 Windows,且设计前提是单显示器。它可接入 Azure OpenAI、Anthropic、Gemini、OpenRouter 与 vLLM,但部署者仍需自行配置主模型凭据及 grounding endpoint。
运行时,调用方提供任务指令和截图。SDK 示例使用 pyautogui.screenshot() 获取屏幕图像,保存为 PNG 字节后作为 observation["screenshot"] 传给 AgentS3.predict(instruction, observation)。AgentS3 使用配置好的主生成引擎,OSWorldACI 使用独立的 grounding 引擎和 grounding_width、grounding_height 生成可执行动作;示例以 exec(action[0]) 执行动作代码。CLI 通过 agent_s 指定 --provider、--model、--ground_provider、--ground_url、--ground_model 及 grounding 坐标分辨率运行。启用 --enable_local_env 后,Agent 可通过 call_code_agent 在本机执行 Python 和 Bash,用于文件处理、数据处理、系统自动化或代码任务。
- 需要在单显示器 Linux、macOS 或 Windows 桌面上执行多步骤 GUI 操作的自动化开发者。
- 在 OSWorld 环境中部署 Agent S3 并评估电脑操作任务的研究人员。
- 拥有 OpenAI、Anthropic、Gemini、OpenRouter 或 vLLM 推理接入,并需要将模型决策连接到屏幕坐标定位的团队。
- 需要从 Python 程序截取当前屏幕、下达如“Close VS Code”这类指令并执行返回动作的应用开发者。
- 在可信机器上需要让 Agent 处理 CSV、文件或脚本任务,并愿意开启本地代码执行环境的用户。
这个 Agent 有哪些优点和局限?
- 主模型与 grounding 模型分离,可将主推理模型与专门的 UI 坐标定位模型组合使用。
- 同时提供 agent_s CLI 与 AgentS3、OSWorldACI 的 Python SDK,便于脚本集成和命令行试用。
- README 明确列出 Linux、macOS、Windows 支持,并给出 OSWorld 部署入口。
- 可选 LocalEnv 让同一 Agent 在 GUI 操作之外处理代码、文件和数据任务。
- 必须配置独立的 grounding provider、URL、模型和坐标分辨率;这不是只填一个主模型 API key 就能运行的工具。
- 项目明确按单显示器设计,多显示器工作流不在已说明的支持范围内。
- 启用 LocalEnv 会以当前用户权限执行任意 Python 与 Bash,README 明确要求仅在可信环境使用。
- README 虽列出多家主模型提供商,但推荐配置依赖特定的主模型和 UI-TARS grounding 模型,替换组合需要自行验证。
如何安装或部署这个 Agent?
安装发布版:pip install gui-agents。若需修改源码后测试,克隆仓库并执行 pip install -e .。安装 Tesseract:macOS 示例为 brew install tesseract,README 指出 pytesseract 需要它。配置至少一个主模型凭据,例如 export OPENAI_API_KEY=<YOUR_API_KEY>;若使用相应提供商,也可配置 ANTHROPIC_API_KEY 或 HF_TOKEN。此外必须准备 grounding 模型服务的 provider、URL、模型名和坐标输出分辨率。
如何使用这个 Agent?
以 UI-TARS-1.5-7B 为 grounding 模型时,可运行:agent_s --provider openai --model gpt-5-2025-08-07 --ground_provider huggingface --ground_url http://localhost:8080 --ground_model ui-tars-1.5-7b --grounding_width 1920 --grounding_height 1080。UI-TARS-72B 则使用 --grounding_width 1000 --grounding_height 1000。Python 集成时,创建 OSWorldACI(env=local_env, platform=current_platform, engine_params_for_generation=engine_params, engine_params_for_grounding=engine_params_for_grounding),再创建 AgentS3(engine_params, grounding_agent, platform=current_platform),调用 agent.predict()。只有在可信环境才追加 --enable_local_env 或创建 LocalEnv(),因为该模式会在本机执行任意 Python 和 Bash。
这个 Agent 与同类方案有什么区别?
README 声称 Agent S2 在其列举的基准上优于 OpenAI CUA/Operator 与 Anthropic Claude 3.7 Sonnet Computer-Use;同时声称 Agent S3 在 OSWorld 的 Behavior Best-of-N 设置下达到 72.6%。这些是项目给出的基准主张,README 未提供与这些替代方案在部署方式、成本或实际工作流上的逐项比较。