大家好,我是贝克街的捉虫师呀!
你是否也曾梦想过,能有一个AI助手帮你处理那些重复繁琐的电脑操作?例如,自动回复邮件、整理文件,甚至是完成一些简单的网页任务。过去,我们可能需要编写复杂的脚本或者使用RPA工具才能实现,但现在,有了Agent S2,一切都变得简单多了。
今天,我要给大家介绍一个非常有趣且实用的开源项目——Agent S2,它能让AI像人类一样自主地操作你的电脑,真正实现AI与人机交互的无缝衔接。
项目概述
Agent S2,是由simular-ai团队开发的开源框架,旨在构建能够自主与计算机交互的智能GUI代理。你可以把它想象成一个虚拟的“数字助理”,它可以通过观察屏幕、理解内容,然后像人一样使用鼠标和键盘来完成各种任务。
这个项目的核心定位是Agent-Computer Interface(ACI),即代理-计算机接口。它就像一个翻译器,将AI的指令转化为计算机可以理解和执行的操作。 Agent S2使用Python语言构建,具有模块化和可扩展的特点,允许开发者根据自己的需求定制和扩展功能。
项目数据
- GitHub星标数量:🌟3528,今日新增317星
- 主要开发语言:🐍 Python
- 维护状态:积极维护中,最近更新频繁
- 贡献者数量:由simular-ai团队主导开发
- 社区活跃度: 活跃,可以通过Discord参与讨论和交流
功能亮点
- 💻 屏幕内容理解
Agent S2通过观察屏幕内容,利用视觉模型理解当前应用的状态和元素,为后续操作提供依据。这就像给AI装上了一双“眼睛”,让它能够“看到”屏幕上的信息。 - 🖱️ 键盘鼠标控制
Agent S2能够模拟人类的键盘和鼠标操作,例如点击按钮、输入文本、滚动页面等。这使得AI可以像人一样与各种应用程序进行交互。 - 🧠 任务规划与推理
Agent S2内置了任务规划和推理引擎,可以根据用户指令和当前环境,制定详细的操作步骤,并逐步执行。这就像给AI装上了一个“大脑”,让它能够思考和决策。 - 🌐 网络知识检索
Agent S2集成了Perplexica搜索引擎,可以根据任务需求,从互联网上检索相关信息,为决策提供支持。这就像给AI配备了一个“知识库”,让它能够随时获取最新的信息。 - ⚙️ 模块化设计
Agent S2采用模块化设计,将不同功能划分为独立的模块,方便开发者进行定制和扩展。这种设计使得Agent S2具有很高的灵活性和可维护性。 - 🤖 持续学习与优化
Agent S2可以通过学习历史经验和用户反馈,不断优化自身的行为策略,提高任务完成的效率和准确性。这就像让AI拥有了“学习能力”,可以不断进步和成长。
安装与使用
环境要求与前置条件
- Python 3.8+
- pip
- (可选) Docker (用于Perplexica网络检索)
- LLM API Keys (例如 OpenAI, Anthropic, Gemini)
安装指南
- 安装gui-agents包:
pip install gui-agents
- 配置LLM API Keys (添加到
.bashrc
或.zshrc
):
export OPENAI_API_KEY=<YOUR_API_KEY>
export ANTHROPIC_API_KEY=<YOUR_ANTHROPIC_API_KEY>
export HF_TOKEN=<YOUR_HF_TOKEN>
-
(可选) 设置Perplexica网络检索:
- 安装并运行Docker Desktop
- 克隆Perplexica仓库:
git clone https://github.com/ItzCrazyKns/Perplexica.git
cd Perplexica
git submodule update --init
* 配置 `config.toml` 文件
* 启动Docker Compose:
docker compose up -d
* 设置 Perplexica URL:
export PERPLEXICA_URL=http://localhost:{port}/api/search
快速入门
以下是一个简单的Agent S2使用示例:
import pyautogui
import io
from gui_agents.s2.agents.agent_s import AgentS2
from gui_agents.s2.agents.grounding import OSWorldACI
from dotenv import load_dotenv
load_dotenv()
current_platform = "linux" # "darwin", "windows"
engine_params = {
"engine_type": "openai",
"model": "gpt-4o",
}
engine_type_for_grounding = "huggingface"
engine_params_for_grounding = {
"engine_type": "huggingface",
"endpoint_url": "<endpoint_url>/v1/",
}
grounding_agent = OSWorldACI(
platform=current_platform,
engine_params_for_generation=engine_params,
engine_params_for_grounding=engine_params_for_grounding
)
agent = AgentS2(
engine_params,
grounding_agent,
platform=current_platform,
action_space="pyautogui",
observation_type="mixed",
search_engine="Perplexica" # Assuming you have set up Perplexica.
)
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])
常见问题
-
Q: Agent S2无法识别屏幕元素?
A: 确保API Key配置正确,并且视觉模型正常工作。检查
grounding_model_resize_width
参数是否与屏幕分辨率匹配。
* Q: Agent S2执行操作不准确?A: 尝试调整任务规划和推理引擎的参数,或者提供更明确的指令。
* Q: 如何使用其他LLM模型?A: 修改
engine_params
中的model
参数,并确保已安装相应的依赖。
使用场景与推荐理由
- 自动化办公:Agent S2可以用于自动化处理邮件、文件管理、数据录入等日常办公任务,提高工作效率。例如,自动将收到的发票保存到指定文件夹,并提取关键信息录入报销系统。
- Web应用测试:Agent S2可以模拟用户在Web应用上的操作,自动执行测试用例,发现潜在的Bug。例如,自动注册用户、填写表单、提交订单等。
- 智能家居控制:Agent S2可以与智能家居系统集成,通过语音或文本指令控制家电设备。例如,自动打开电视、调节灯光、播放音乐等。
推荐理由:
- 开源免费:Agent S2是一个完全开源的项目,你可以免费使用和修改,无需担心版权问题。
- 高度可定制:Agent S2采用模块化设计,你可以根据自己的需求定制和扩展功能。
- 功能强大:Agent S2集成了屏幕内容理解、键盘鼠标控制、任务规划推理等多种功能,可以完成各种复杂的任务。
- 社区支持:Agent S2拥有活跃的社区,你可以在社区中获取帮助和交流经验。
与其他自动化工具相比,Agent S2的优势在于它能够像人类一样理解屏幕内容,并进行智能决策,而不仅仅是简单地执行预设的脚本。这使得Agent S2具有更高的灵活性和适应性,可以应对各种复杂的场景。
适合的用户群体:
- 软件开发者
- 自动化测试工程师
- AI研究人员
- 对AI自动化感兴趣的爱好者
结语
Agent S2是一个非常有潜力的开源项目,它将AI与人机交互技术相结合,为我们提供了一种全新的自动化解决方案。 无论你是想提高工作效率,还是探索AI的更多可能性,Agent S2都值得你尝试。
GitHub链接:https://github.com/simular-ai/Agent-S
快来试试Agent S2,让AI成为你的得力助手吧! 如果你在使用过程中遇到任何问题,欢迎在评论区留言,或者加入我们的社区一起讨论。