Agent S碾压OpenAI,像真人操作电脑,上网填表写文案全自动!连续千步零失误,-开源码库社区-开源分享-6协议-村兔网

Agent S碾压OpenAI,像真人操作电脑,上网填表写文案全自动!连续千步零失误,

特工S: 像人一样使用计算机

🥳 更新

  •  2025/10/02:发布 Agent S3 及其技术论文,在 OSWorld 上设定了 69.9% 的新 SOTA(接近 72% 的人类性能),在 WindowsAgentArena 和 AndroidWorld 上具有很强的通用性!它也更简单、更快、更灵活。
  •  2025/08/01: Agent S2.5 发布(gui-agents v0.2.5):更简单、更好、更快!作系统上的新 SOTA世界验证!
  •  2025/07/07: Agent S2 论文被 COLM 2025 录用!蒙特利尔见!
  •  2025/04/27: Agent S 论文荣获 ICLR 2025 Agentic AI for Science Workshop 最佳论文奖🏆!
  •  2025/04/01:发布了 Agent S2 论文,其中包含在 OSWorld、WindowsAgentArena 和 AndroidWorld 上的新 SOTA 结果!
  •  2025/03/12:发布 Agent S2 以及 gui-agents v0.2.0,这是计算机使用代理 (CUA) 的最新技术,性能优于 OpenAI 的 CUA/Operator 和 Anthropic 的 Claude 3.7 Sonnet Computer-Use!
  •  2025/01/22: Agent S 论文被 ICLR 2025 录用!
  •  2025/01/21: 发布 gui-agents 库 v0.1.2,支持 Linux 和 Windows!
  •  2024/12/05: 发布 gui-agents 库 v0.1.0,让您轻松使用 Agent-S for Mac、OSWorld 和 WindowsAgentArena!
  •  2024/10/10:发布 Agent S 论文和代码库!

目录

  1. 💡 介绍
  2. 🎯 当前结果
  3. 🛠️ 安装和设置
  4. 🚀 用法
  5. 🤝 确认
  6. 💬 引文

💡 介绍

欢迎使用 Agent S,这是一个开源框架,旨在通过代理-计算机接口实现与计算机的自主交互。我们的使命是构建智能 GUI 代理,可以从过去的经验中学习并在您的计算机上自主执行复杂的任务。

无论您是对人工智能、自动化感兴趣,还是为基于代理的尖端系统做出贡献,我们都很高兴您来到这里!

🎯 当前结果

在 OSWorld 上,仅 Agent S3 在 100 步设置中就达到了 62.6%,已经超过了之前的 61.4%(Claude Sonnet 4.5)。随着 Behavior Best-of-N 的加入,性能甚至攀升至 69.9%,使计算机使用代理的准确率仅达到人类水平的几个点 (72%)。

Agent S3 还表现出很强的零样本泛化。在 WindowsAgentArena 上,通过从 3 个部署中进行选择,准确率从仅使用 Agent S3 的 50.2% 提高到 56.6%。同样,在 AndroidWorld 上,性能从 68.1% 提高到 71.6%

🛠️ 安装和设置

先决条件

  • 单显示器:我们的代理专为单显示器屏幕而设计
  • 安全性:代理运行 Python 代码来控制您的计算机 – 请谨慎使用
  • 支持的平台: Linux、Mac 和 Windows

安装

要在不克隆存储库的情况下安装 Agent S3,请运行

pip install gui-agents

如果要在进行更改时测试 Agent S3,请克隆存储库并使用

pip install -e .

别忘了还 !Pytesseract 需要这个额外的安装才能工作。brew install tesseract

API 配置

选项 1:环境变量

添加到您的 (Linux) 或 (MacOS):.bashrc.zshrc

export OPENAI_API_KEY=<YOUR_API_KEY>
export ANTHROPIC_API_KEY=<YOUR_ANTHROPIC_API_KEY>
export HF_TOKEN=<YOUR_HF_TOKEN>

选项 2:Python 脚本

import os
os.environ["OPENAI_API_KEY"] = "<YOUR_API_KEY>"

支持的型号

我们支持 Azure OpenAI、Anthropic、Gemini、Open Router 和 vLLM 推理。有关详细信息,请参阅 models.md。

接地型号(必填)

为了获得最佳性能,我们建议托管在 Hugging Face 推理端点或其他提供商上 UI-TARS-1.5-7B。有关设置说明,请参阅 Hugging Face Inference Endpoints。

🚀 用法

⚡️ 推荐设置:
为了获得最佳配置,我们建议使用 OpenAI gpt-5-2025-08-07 作为主要型号,搭配 UI-TARS-1.5-7B 进行接地。

CLI

请注意,这是运行 Agent S3,这是我们改进的代理,没有 bBoN。

使用所需参数运行代理 S3:

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

本地编码环境(可选)

对于需要执行代码的任务(例如,数据处理、文件作、系统自动化),您可以启用本地编码环境:

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 \
    --enable_local_env

⚠️ 警告:本地编码环境会在您的计算机上本地执行任意 Python 和 Bash 代码。仅在受信任的环境和受信任的输入中使用此功能。

必需参数

  • --provider:主要生成模型提供者(例如 openai、anthropic 等)- 默认值:“openai”
  • --model:主代型号名称(例如,gpt-5-2025-08-07)- 默认值:“gpt-5-2025-08-07”
  • --ground_provider:接地模型的提供程序 – 必需
  • --ground_url:接地模型的 URL – 必填
  • --ground_model:接地模型的型号名称 – 必填
  • --grounding_width:接地模型输出坐标分辨率的宽度 – 必填
  • --grounding_height:接地模型输出坐标分辨率的高度 – 必填

可选参数

  • --model_temperature:修复所有模型调用的温度(对于 o3 等模型,必须设置为 1.0,但对于其他模型可以留空)

接地模型尺寸

接地宽度和高度应与接地模型的输出坐标分辨率相匹配:

  • UI-TARS-1.5-7B:使用--grounding_width 1920 --grounding_height 1080
  • UI-TARS-72B:使用--grounding_width 1000 --grounding_height 1000

可选参数

 

  • --model_url:主生成模型的自定义 API URL – 默认值:“”
  • --model_api_key:主生成模型的 API 密钥 – 默认值:“”
  • --ground_api_key:用于接地模型终结点的 API 密钥 – 默认值:“”
  • --max_trajectory_length:保持轨迹的最大图像转数 – 默认值:8
  • --enable_reflection:启用反射代理以协助工作代理 – 默认值:True
  • --enable_local_env:启用本地编码环境执行代码(警告:在本地执行任意代码)- 默认值:False

本地编码环境详细信息

本地编码环境使 Agent S3 能够直接在您的计算机上执行 Python 和 Bash 代码。这对于以下情况特别有用:

  • 数据处理:作电子表格、CSV 文件或数据库
  • 文件作:批量文件处理、内容提取或文件组织
  • 系统自动化:配置更改、系统设置或自动化脚本
  • 代码开发:编写、编辑或执行代码文件
  • 文本处理:文档作、内容编辑或格式化

启用后,代理可以使用该作为可以通过编程而不是 GUI 交互完成的任务执行代码块。call_code_agent

要求:

  • Python:用于运行 Agent S3 的相同 Python 解释器(自动检测)
  • Bash:可在 (macOS 和 Linux 上的标准配置)/bin/bash
  • 系统权限:代理以与执行它的用户相同的权限运行

安全注意事项:

  • 本地环境执行与运行代理的用户具有相同权限的任意代码
  • 仅在受信任的环境中启用此功能
  • 代理为系统级作生成代码时要小心
  • 考虑在沙盒环境中运行不受信任的任务
  • Bash 脚本以 30 秒的超时执行,以防止进程挂起

gui_agentsSDK

首先,我们导入必要的模块。是 Agent S3 的主要代理类。是我们的接地代理,它将代理作转换为可执行的 Python 代码。AgentS3OSWorldACI

import pyautogui
import io
from gui_agents.s3.agents.agent_s import AgentS3
from gui_agents.s3.agents.grounding import OSWorldACI
from gui_agents.s3.utils.local_env import LocalEnv  # Optional: for local coding environment

# Load in your API keys.
from dotenv import load_dotenv
load_dotenv()

current_platform = "linux"  # "darwin", "windows"

接下来,我们定义引擎参数。 用于主体,用于接地。对于 ,我们支持 HuggingFace TGI、vLLM 和 Open Router 等自定义端点。engine_paramsengine_params_for_groundingengine_params_for_grounding

engine_params = {
  "engine_type": provider,
  "model": model,
  "base_url": model_url,           # Optional
  "api_key": model_api_key,        # Optional
  "temperature": model_temperature # Optional
}

# Load the grounding engine from a custom endpoint
ground_provider = "<your_ground_provider>"
ground_url = "<your_ground_url>"
ground_model = "<your_ground_model>"
ground_api_key = "<your_ground_api_key>"

# Set grounding dimensions based on your model's output coordinate resolution
# UI-TARS-1.5-7B: grounding_width=1920, grounding_height=1080
# UI-TARS-72B: grounding_width=1000, grounding_height=1000
grounding_width = 1920  # Width of output coordinate resolution
grounding_height = 1080  # Height of output coordinate resolution

engine_params_for_grounding = {
  "engine_type": ground_provider,
  "model": ground_model,
  "base_url": ground_url,
  "api_key": ground_api_key,  # Optional
  "grounding_width": grounding_width,
  "grounding_height": grounding_height,
}

然后,我们定义接地剂和代理 S3。

# Optional: Enable local coding environment
enable_local_env = False  # Set to True to enable local code execution
local_env = LocalEnv() if enable_local_env else None

grounding_agent = OSWorldACI(
    env=local_env,  # Pass local_env for code execution capability
    platform=current_platform,
    engine_params_for_generation=engine_params,
    engine_params_for_grounding=engine_params_for_grounding,
    width=1920,  # Optional: screen width
    height=1080  # Optional: screen height
)

agent = AgentS3(
    engine_params,
    grounding_agent,
    platform=current_platform,
    max_trajectory_length=8,  # Optional: maximum image turns to keep
    enable_reflection=True     # Optional: enable reflection agent
)

最后,我们来查询代理!

# Get screenshot.
screenshot = pyautogui.screenshot()
buffered = io.BytesIO() 
screenshot.save(buffered, format="PNG")
screenshot_bytes = buffered.getvalue()

obs = {
  "screenshot": screenshot_bytes,
}

instruction = "Close VS Code"
info, action = agent.predict(instruction=instruction, observation=obs)

exec(action[0])
请登录后发表评论

    没有回复内容