Agent S
扫码查看

能像人一样操作电脑的开源智能体框架

Agent S

综合介绍

Agent-S 是一个开源的智能体框架,它的核心目标是让AI像人类一样,通过图形用户界面(GUI)与电脑进行自主交互。 传统的自动化工具通常依赖特定的API或脚本,而Agent-S可以直接观察屏幕、操作鼠标和键盘来完成任务,这让它能够跨越不同的应用程序和操作系统工作。 该框架由Simular AI开发,其背后理念是通过模拟人类解决问题的方式,将复杂的任务分解成更小、更易于管理的部分。 为了实现这一点,Agent-S 采用了一种名为“经验增强分层规划”的方法,它结合了从网络上获取的实时知识和从过去操作中学习到的内部经验。 通过这种方式,Agent-S 能够不断学习和优化,从而更高效地完成用户指定的各种电脑操作任务。

功能列表

  • 自主GUI交互: 智能体能像人类用户一样,通过识别屏幕上的图形界面元素来操作电脑,执行点击、滚动、输入文本等动作。
  • 经验增强的分层规划: Agent-S能够将一个复杂的大任务拆解成多个小任务,并利用从网络和过往经验中学习到的知识来制定执行计划。
  • 记忆与学习能力: 拥有叙事记忆(高层抽象经验)和情景记忆(详细步骤经验)两种记忆机制,使其可以从成功和失败的经验中持续学习,不断提升任务执行能力。
  • 跨平台兼容: 支持在macOS、Windows和Linux等主流操作系统上运行,展示了良好的通用性。
  • 多模态大模型集成: 集成了像OpenAI的GPT系列和Anthropic的Claude等先进的多模态大语言模型(MLLM),使其具备理解屏幕截图和执行复杂指令的能力。
  • Agent-Computer Interface (ACI): 引入了一个专门的“智能体-计算机接口”,该接口作为抽象层,将智能体的意图转化为精确的计算机操作指令,提升了控制的稳定性和准确性。
  • 开源与可扩展: 作为一个开源项目,开发者可以根据自身需求进行修改和扩展,将新功能和工具集成到框架中。

使用帮助

Agent-S(及其最新版本Agent-S2)提供了一套完整的工具,让用户可以通过命令行或SDK来驱动一个能操作电脑的AI智能体。以下是详细的安装和使用流程。

一、 环境准备与安装

在开始之前,请确保你的系统环境满足要求。Agent-S支持macOS、Windows和Linux,但需要注意一些平台相关的细节。

1. Python环境:Agent-S 需要Python 3.9到3.12之间的版本。 你可以通过以下命令检查你的Python版本:

python --version

2. 安装核心包:Agent-S的核心功能被打包在gui-agents这个库中。使用pip可以直接进行安装:

pip install gui-agents

3. 克隆代码仓库 (可选):虽然直接安装库即可使用,但克隆官方GitHub仓库可以让你获取最新的示例代码和配置文件。

git clone https://github.com/simular-ai/Agent-S.git
cd Agent-S

4. 平台注意事项:

  • Linux用户: 官方文档警告,在Linux上使用conda创建虚拟环境可能会与自动化所需的pyatspi库产生冲突。 建议直接在系统Python环境或使用venv等其他虚拟环境方案中进行安装。
  • Windows用户: 需要额外安装pywinautopywin32以支持Windows平台的自动化操作。

二、 配置API密钥

Agent-S需要调用大语言模型(LLM)来进行思考和决策,因此必须配置相关服务的API密钥。

  1. 获取API密钥:你需要拥有至少一个来自OpenAI、Anthropic或Hugging Face的API密钥。
  2. 设置环境变量:最推荐的配置方式是设置环境变量。这样可以避免在代码中暴露密钥。
    • 在Linux或macOS上, 编辑你的.bashrc.zshrc文件:
      nano ~/.zshrc
      

      在文件末尾添加以下内容,并替换成你自己的密钥:

      export OPENAI_API_KEY="sk-..."
      export ANTHROPIC_API_KEY="sk-ant-..."
      export HF_TOKEN="hf_..."
      

      保存文件后,执行source ~/.zshrc使配置生效。

    • 在Windows上, 你可以在“系统属性”->“高级”->“环境变量”中添加相应的系统变量。
    • 在代码中临时设置: 你也可以在Python脚本的开头设置环境变量,但不建议在生产环境中使用此方法。
      import os
      os.environ["OPENAI_API_KEY"] = "<YOUR_API_KEY>"
      

三、 使用命令行(CLI)运行Agent-S

命令行是与Agent-S交互最直接的方式。

1. 基本用法:安装完成后,你可以使用gui-agents命令启动智能体。你需要提供一个任务指令。

gui-agents --instruction "打开计算器,计算123乘以456等于多少"

2. 指定模型:你可以通过参数指定使用哪个大语言模型。例如,使用Claude 3.5 Sonnet:

gui-agents --instruction "在谷歌搜索今天的天气" --model "claude-3-5-sonnet-20240620"

或者使用GPT-4o:

gui-agents --instruction "在谷歌搜索今天的天气" --model "gpt-4o"

3. 运行流程:当命令执行后,Agent-S会:

  • 截取当前屏幕的截图。
  • 将截图和你的指令一起发送给你配置的大语言模型。
  • 模型会分析屏幕内容和指令,返回下一步应该执行的操作代码(通常是pyautogui代码)。
  • 本地系统执行这段代码,例如移动鼠标、点击按钮或输入文字。
  • 循环这个过程,直到任务完成。

❗重要警告: Agent-S会直接在你的电脑上执行代码。 确保你在一个安全可控的环境下运行它,并时刻监控其行为,避免执行可能损坏系统或泄露隐私的危险操作。

四、 使用SDK进行二次开发

如果你希望将Agent-S的能力集成到自己的应用程序中,可以使用其提供的SDK。

以下是一个基本的使用示例:

import os
from gui_agents.s2 import AgentS2
from gui_agents.acis.os_world_aci import OSWorldACI
# 确保API密钥已设置
# os.environ["OPENAI_API_KEY"] = "你的密钥"
# 1. 定义模型参数
# 主智能体使用GPT-4o
engine_params = {
"provider": "openai",
"model": "gpt-4o",
"temperature": 0.0,
}
# 接地模型使用Claude Sonnet 3.5 (用于将指令转换为代码)
engine_params_for_grounding = {
"provider": "anthropic",
"model": "claude-3-5-sonnet-20240620",
"temperature": 0.0,
}
# 2. 初始化智能体和计算机接口
# OSWorldACI是负责将动作转换为可执行代码的模块
grounding_agent = OSWorldACI(engine_params=engine_params_for_grounding)
agent = AgentS2(engine_params=engine_params, grounding_agent=grounding_agent)
# 3. 准备输入
# 指令
instruction = "帮我打开记事本,然后输入'你好,Agent-S!'"
# 截取屏幕截图作为观察输入
# (这里需要一个截图函数,OSWorldACI内部有实现)
observation = grounding_agent.get_observation()
# 4. 执行预测并获取动作
# predict方法会返回思考过程和最终要执行的Python代码
info, action = agent.predict(instruction=instruction, observation=observation)
# 5. 执行返回的动作
if action and action[0]:
print(f"将要执行的代码: {action[0]}")
# 注意:exec是直接执行代码,有安全风险
exec(action[0])

这个例子展示了如何通过代码驱动Agent-S完成一个简单的任务。 你可以基于此构建更复杂的自动化工作流。

应用场景

  1. 日常办公自动化Agent-S可以处理重复性的办公任务,例如从不同网站或文件中整理数据到电子表格、定时发送邮件报告、或者管理日历事件。 比如,你可以让它每天早上自动打开公司内部系统,检查新的通知并汇总成摘要。
  2. 软件操作和测试对于没有提供API接口的桌面软件,Agent-S可以通过模拟用户的鼠标和键盘操作来进行自动化测试或数据录入。 例如,测试人员可以编写指令,让Agent-S在软件中执行一系列标准的测试流程,并记录结果。
  3. 信息收集与研究当需要从多个网站收集信息时,Agent-S可以自动打开浏览器,访问指定网页,滚动页面,点击链接,并复制所需信息。 这对于市场研究、学术资料收集或新闻监控等场景非常有用。
  4. 辅助功能对于行动不便的用户,Agent-S可以成为一个强大的辅助工具。用户可以通过语音或简单的文本指令,让智能体完成复杂的电脑操作,从而降低使用现代软件的门槛。

QA

  1. Agent-S是如何工作的?Agent-S通过截取电脑屏幕的图像,结合用户给出的文本指令,利用多模态大语言模型(如GPT-4o)来理解当前屏幕上有什么以及用户的意图。 然后,它会生成一小段用于控制鼠标和键盘的Python代码(例如使用pyautogui库),并在本地执行这段代码来完成点击、输入等操作。这个“观察-思考-行动”的循环会一直持续,直到完成任务。
  2. 使用Agent-S需要付费吗?Agent-S框架本身是开源且免费的。 但是,它需要调用第三方的大语言模型(LLM)服务,如OpenAI的GPT或Anthropic的Claude。 这些服务通常是按使用量收费的,所以你需要为你使用的API调用支付相应的费用。
  3. Agent-S支持哪些操作系统?Agent-S被设计为跨平台框架,目前支持macOS、Windows和Linux操作系统。 不过,在不同系统上安装时可能需要处理一些特定的依赖问题。
  4. Agent-S和其他自动化工具有什么不同?传统的自动化工具(如Selenium用于网页,或AutoHotkey用于桌面)大多依赖于代码、API接口或预定义的规则。而Agent-S是一个更智能的“通用”智能体,它不依赖特定应用的API,而是像人一样通过“看”屏幕来决定如何操作,这使得它在理论上可以操作任何有图形界面的程序。
  5. 在电脑上运行Agent-S是否安全?存在一定的安全风险。因为Agent-S会生成并执行代码来直接控制你的电脑,所以它有能力访问你的文件、点击恶意链接或输入敏感信息。 官方强烈建议用户在使用时要小心,最好在一个受控的环境中运行,并始终监督它的行为,以便在它做出不符合预期的操作时能够立即中止。
微信微博Email复制链接