Agent S2:讓你也能輕鬆打造電腦使用AI代理人! (台灣繁體中文版)
你是否曾經夢想過,擁有一位能自動操作電腦,幫你完成繁瑣任務的 AI 助手?現在,夢想不再遙遠! Agent S2,一個開源框架,讓你也能輕鬆打造屬於自己的電腦使用 AI 代理人 (Computer Use Agent, CUA)。 本篇文章將帶領台灣的讀者們,一步步了解 Agent S2 的核心概念、安裝設定,以及如何開始使用它,就算你是 AI 初學者也能快速上手!
什麼是 Agent S2?
Agent S2 是一個基於「通用-專用框架」 (Generalist-Specialist Framework) 的電腦使用代理人。簡單來說,它就像一個聰明的 AI 助理,能夠理解你的指令,並透過模擬人類操作電腦的方式,自動執行各種任務。
與之前的版本 Agent S1 相比,Agent S2 在效能上有了顯著的提升,在 OSWorld、WindowsAgentArena 和 AndroidWorld 等基準測試中,都取得了最先進 (State-of-the-Art, SOTA) 的成果,甚至超越了 OpenAI 的 CUA/Operator 和 Anthropic 的 Claude 3.7 Sonnet Computer-Use!
核心概念:通用與專用
Agent S2 的核心在於其「通用-專用框架」。這個框架將 AI 代理人的能力分為兩個部分:
- 通用能力 (Generalist): 負責理解使用者的指令,並將其分解成一系列可執行的步驟。
- 專用能力 (Specialist): 負責將這些步驟轉換成實際的電腦操作,例如點擊按鈕、輸入文字等。
這種分工合作的方式,讓 Agent S2 能夠更有效地處理複雜的任務,並具有更強的適應性。
Agent S2 能做什麼?
Agent S2 的應用範圍非常廣泛,以下是一些常見的應用場景:
- 自動化辦公任務: 例如自動整理文件、發送郵件、填寫表單等。
- 網路爬蟲: 自動抓取網頁上的資訊,例如商品價格、新聞內容等。
- 遊戲外掛: 自動執行遊戲中的重複性操作,例如打怪、收集資源等。(請注意,使用外掛可能違反遊戲規則,請謹慎使用)
- 軟體測試: 自動測試軟體的各項功能,找出潛在的 bug。
總之,只要是需要透過電腦操作來完成的任務,Agent S2 都有機會派上用場。
Agent S2 的優勢
- 開源免費: Agent S2 是一個開源專案,你可以免費使用、修改和分享它。
- 效能卓越: Agent S2 在多個基準測試中都取得了 SOTA 的成果,效能超越了許多商業產品。
- 易於使用: Agent S2 提供了簡單易懂的 API 和 CLI 工具,讓你能夠快速上手。
- 高度可擴展: Agent S2 的模組化設計,讓你能夠輕鬆地擴展其功能,例如添加新的任務類型、使用不同的語言模型等。
如何開始使用 Agent S2?
以下將介紹 Agent S2 的安裝設定和基本使用方法。
1. 安裝 Python 環境
首先,你需要確保你的電腦上已經安裝了 Python 環境。建議使用 Python 3.7 或更高的版本。你可以從 Python 官網 下載安裝程式。
2. 安裝 gui-agents 套件
在 Python 環境安裝完成後,你可以使用 pip 指令來安裝 gui-agents
套件:
pip install gui-agents
3. 設定 API 金鑰
Agent S2 需要使用語言模型 (Language Model, LLM) 來理解使用者的指令。目前 Agent S2 支援多種 LLM,包括 OpenAI、Anthropic、Gemini 等。你需要先申請相應的 API 金鑰,然後將其設定為環境變數。
例如,如果你想使用 OpenAI 的 GPT 模型,你需要先申請 OpenAI API 金鑰,然後將其設定為環境變數:
export OPENAI_API_KEY=<YOUR_API_KEY>
你也可以將環境變數設定在 Python 腳本中:
import os
os.environ["OPENAI_API_KEY"] = "<YOUR_API_KEY>"
4. 安裝 Perplexica (可選)
Agent S2 能夠整合網路知識檢索功能,讓代理人能夠更有效地完成任務。如果你想使用這個功能,你需要安裝 Perplexica。
Perplexica 是一個開源的知識檢索工具,你可以使用 Docker 來快速部署它。
- 安裝 Docker Desktop: 請從 Docker 官網 下載並安裝 Docker Desktop。
- 下載 Perplexica: 複製 Perplexica 程式碼庫:
git clone https://github.com/ItzCrazyKns/Perplexica.git cd Perplexica git submodule update --init
- 設定 Perplexica: 將
sample.config.toml
重新命名為config.toml
,並填寫以下欄位:OPENAI
: 你的 OpenAI API 金鑰 (如果想使用 OpenAI 模型)。OLLAMA
: 你的 Ollama API URL (如果想使用 Ollama 模型)。 例如: `http://host.docker.internal:11434`GROQ
: 你的 Groq API 金鑰 (如果想使用 Groq 模型)。ANTHROPIC
: 你的 Anthropic API 金鑰 (如果想使用 Anthropic 模型)。
- 啟動 Perplexica: 在包含
docker-compose.yaml
檔案的目錄中執行以下指令:docker compose up -d
- 設定 Perplexica URL: 將 Perplexica URL 設定為環境變數:
export PERPLEXICA_URL=http://localhost:{port}/api/search
其中
{port}
是你在config.toml
中設定的 port 號。
5. 執行 Agent S2
完成以上步驟後,你就可以開始執行 Agent S2 了。
你可以使用 CLI 工具來執行 Agent S2:
agent_s2 \
--provider "anthropic" \
--model "claude-3-7-sonnet-20250219" \
--grounding_model_provider "anthropic" \
--grounding_model "claude-3-7-sonnet-20250219" \
這個指令會啟動 Agent S2,並使用 Anthropic 的 Claude 3.7 Sonnet 模型作為主要的語言模型和視覺基礎模型 (visual grounding model)。
你也可以使用 Python SDK 來執行 Agent S2:
import pyautogui
import io
from gui_agents.s2.agents.agent_s import AgentS2
from gui_agents.s2.agents.grounding import OSWorldACI
# 載入 API 金鑰
from dotenv import load_dotenv
load_dotenv()
current_platform = "linux" # "darwin", "windows"
engine_type_for_grounding = "huggingface"
engine_params = {
"engine_type": "openai",
"model": "gpt-4o",
}
if engine_type_for_grounding == "huggingface":
engine_params_for_grounding = {
"engine_type": "huggingface",
"endpoint_url": "<endpoint_url>/v1/",
}
elif engine_type_for_grounding == "claude":
engine_params_for_grounding = {
"engine_type": "claude",
"model": "claude-3-7-sonnet-20250219",
}
elif engine_type_for_grounding == "gpt":
engine_params_for_grounding = {
"engine_type": "gpt",
"model": "gpt-4o",
}
else:
raise ValueError("Invalid engine type for grounding")
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" # 假設你已經設定好 Perplexica
)
# 截圖
screenshot = pyautogui.screenshot()
buffered = io.BytesIO()
screenshot.save(buffered, format="PNG")
screenshot_bytes = buffered.getvalue()
obs = {
"screenshot": screenshot_bytes,
}
instruction = "關閉 VS Code"
info, action = agent.predict(instruction=instruction, observation=obs)
exec(action[0])
這個腳本會截取螢幕截圖,然後指示 Agent S2 關閉 VS Code 編輯器。
錯誤排除指南
在使用 Agent S2 的過程中,你可能會遇到一些問題。以下是一些常見的問題和解決方案:
- API 金鑰設定錯誤: 請確保你已經正確地設定了 API 金鑰。
- Perplexica 安裝失敗: 請檢查 Docker 是否已正確安裝並啟動,以及 Perplexica 的設定是否正確。
- Agent S2 無法理解指令: 請嘗試使用更清晰、更明確的指令。
- Agent S2 操作錯誤: 請檢查你的程式碼是否正確,以及 Agent S2 的設定是否符合你的需求。
個人實作心得
在實際使用 Agent S2 的過程中,我發現以下幾點非常重要:
- 選擇合適的語言模型: 不同的語言模型在效能和價格上都有所不同。你需要根據你的需求和預算來選擇合適的語言模型。
- 提供清晰的指令: Agent S2 的效能很大程度上取決於你提供的指令的清晰程度。請盡量使用簡潔、明確的語言來描述你的任務。
- 適當的環境設定: Agent S2 需要在一個乾淨、穩定的環境中運行。請確保你的電腦上沒有其他程式干擾 Agent S2 的運行。
結論
Agent S2 是一個非常有潛力的開源框架,它讓你也能夠輕鬆打造屬於自己的電腦使用 AI 代理人。雖然 Agent S2 的學習曲線可能稍微陡峭,但只要你願意花時間去學習和實踐,相信你一定能夠掌握它的使用方法,並將其應用於各種場景中。
希望這篇文章能夠幫助台灣的讀者們更好地了解 Agent S2,並開始使用它來改善他們的工作和生活。 祝你使用愉快!
參考閱讀
https://github.com/simular-ai/Agent-S