GitHub:GitHub - kortix-ai/suna: Suna - Open Source Generalist AI Agent
更多AI開源軟件:發現分享好用的AI工具、AI開源軟件、AI模型、AI變現 - 小眾AI
Suna 是一個完全開源的 AI 助手,可幫助您輕松完成實際任務。通過自然對話,Suna 成為您進行研究、數據分析和日常挑戰的數字伴侶 — 將強大的功能與直觀的界面相結合,了解您的需求并提供結果。
Suna 強大的工具包包括用于導航 Web 和提取數據的無縫瀏覽器自動化、用于文檔創建和編輯的文件管理、Web 爬蟲和擴展搜索功能、用于系統任務的命令行執行、網站部署以及與各種 API 和服務的集成。這些功能和諧地協同工作,使 Suna 能夠解決您的復雜問題并通過簡單的對話實現工作流程自動化!
?
?
主要功能
? 瀏覽器自動化:自動抓取網頁數據,告別手動復制粘貼!
? 文件管理:智能生成報告、表格,支持多種格式,文檔管理從未如此簡單。
? 網絡爬蟲:精準抓取信息,自動生成總結,研究效率翻倍!
? 命令行執行:自動化腳本、系統管理,復雜操作一句話搞定。
? API集成:無縫對接LinkedIn、Crunchbase等平臺,輕松獲取第三方數據。
? 數據分析:市場趨勢、投資建議、論文對比,Suna幫你深度挖掘數據價值!
安裝和使用
先決條件
-
Supabase:
- 創建新的 Supabase 項目
- 保存項目的 API URL、anon key 和服務角色 key 以備后用
- 安裝 Supabase CLI
-
Redis 和 RabbitMQ:
- 轉到文件夾/backend?
- 跑docker compose up redis rabbitmq?
-
Daytona:
- 在 Daytona 上創建帳戶
- 從您的賬戶設置中生成 API 密鑰
- 轉到圖片
- 點擊“添加圖片”
- Enter 作為映像名稱kortix/suna:0.1.2?
- 設置為 Entrypoint/usr/bin/supervisord -n -c /etc/supervisor/conf.d/supervisord.conf?
-
LLM API 密鑰:
- 獲取 API 密鑰 Anthropic
- 雖然其他提供程序應該通過 LiteLLM 工作,但建議使用 Anthropic – 需要調整提示,以便其他提供程序為工具調用輸出正確的 XML。
-
搜索 API 密鑰(可選):
- 要增強搜索功能,請獲取 Tavily API 密鑰
- 對于 Web 抓取功能,請獲取 Firecrawl API 密鑰
-
RapidAPI API 密鑰(可選):
-
要啟用 LinkedIn 等 API 服務,您需要一個 RapidAPI 密鑰
-
每個服務都需要在你的 RapidAPI 賬戶中單獨激活:
- 在其相應的文件中找到服務的 (例如,在 backend/agent/tools/data_providers/LinkedinProvider.pybase_url"https://linkedin-data-scraper.p.rapidapi.com"?)
- 在 RapidAPI Marketplace 上訪問該特定 API
- 訂閱服務(許多服務提供免費套餐,但請求有限)
- 訂閱后,您的代理將通過 API 服務工具使用該服務
-
安裝步驟
- 克隆存儲庫:
git clone https://github.com/kortix-ai/suna.git
cd suna
- 配置后端環境:
cd backend
cp .env.example .env # Create from example if available, or use the following template
編輯文件并填寫您的憑據:.env?
NEXT_PUBLIC_URL="http://localhost:3000"# Supabase credentials from step 1
SUPABASE_URL=your_supabase_url
SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key# Redis credentials from step 2
REDIS_HOST=your_redis_host
REDIS_PORT=6379
REDIS_PASSWORD=your_redis_password
REDIS_SSL=True # Set to False for local Redis without SSLRABBITMQ_HOST=your_rabbitmq_host # Set to localhost if running locally
RABBITMQ_PORT=5672# Daytona credentials from step 3
DAYTONA_API_KEY=your_daytona_api_key
DAYTONA_SERVER_URL="https://app.daytona.io/api"
DAYTONA_TARGET="us"# Anthropic
ANTHROPIC_API_KEY=# OpenAI API:
OPENAI_API_KEY=your_openai_api_key# Optional but recommended
TAVILY_API_KEY=your_tavily_api_key # For enhanced search capabilities
FIRECRAWL_API_KEY=your_firecrawl_api_key # For web scraping capabilities
RAPID_API_KEY=
- 設置 Supabase 數據庫:
# Login to Supabase CLI
supabase login# Link to your project (find your project reference in the Supabase dashboard)
supabase link --project-ref your_project_reference_id# Push database migrations
supabase db push
然后,再次轉到 Supabase Web 平臺 ->選擇您的項目 -> 項目設置 -> 數據 API -> 并在“公開的架構”中添加“basejump”(如果還沒有)
- 配置前端環境:
cd ../frontend
cp .env.example .env.local # Create from example if available, or use the following template
編輯文件:.env.local?
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
NEXT_PUBLIC_BACKEND_URL="http://localhost:8000/api" # Use this for local development
NEXT_PUBLIC_URL="http://localhost:3000"
注意:如果您使用的是 Docker Compose,請使用容器名稱而不是 localhost:
NEXT_PUBLIC_BACKEND_URL="http://backend:8000/api" # Use this when running with Docker Compose
- 安裝依賴項:
# Install frontend dependencies
cd frontend
npm install# Install backend dependencies
cd ../backend
poetry install
- 啟動應用程序:
在一個終端中,啟動前端:
cd frontend
npm run dev
在另一個終端中,啟動后端:
cd backend
poetry run python3.11 api.py
在另一個終端中,啟動 backend worker:
cd backend
poetry run python3.11 -m dramatiq run_agent_background
5-6. Docker Compose 替代方案:
在使用 Docker Compose 運行之前,請確保您的環境文件已正確配置:
-
在 中,如上所述設置所有必需的環境變量backend/.env?
-
對于 Redis 配置,請使用 instead 而不是 localhostREDIS_HOST=redis?
-
對于 RabbitMQ,請使用 localhostRABBITMQ_HOST=rabbitmq?
-
Docker Compose 設置將自動設置這些 Redis 環境變量:
REDIS_HOST=redis REDIS_PORT=6379 REDIS_PASSWORD= REDIS_SSL=FalseRABBITMQ_HOST=rabbitmq RABBITMQ_PORT=5672
-
-
在 中,確保設置為使用容器名稱frontend/.env.localNEXT_PUBLIC_BACKEND_URL="http://backend:8000/api"?
然后運行:
export GITHUB_REPOSITORY="your-github-username/repo-name"
docker compose -f docker-compose.ghcr.yaml up
如果您在本地構建鏡像,而不是使用預構建的鏡像:
docker compose up
Docker Compose 設置包括后端將自動使用的 Redis 和 RabbitMQ 服務。
-
訪問 Suna:
- 打開瀏覽器并導航到http://localhost:3000?
- 使用 Supabase 身份驗證注冊一個帳戶
- 開始使用您的自托管 Suna 實例!
實戰演習
我們讓它規劃下5.1的旅游行程
生成一次前往倫敦的個人旅行,5 月 1 日從深圳出發。行程將持續 10 天。在倫敦市中心尋找一家谷歌評價至少為 4.5 分的住宿,為我尋找旅途中有趣的戶外活動。生成一份詳細的行程計劃。
可以看到suna做了一系列的推理,并且循環使用了:**網絡搜索->命令執行->創建文件**等操作!經過了15次的tools調用,最終生成了一份完整的攻略計劃!
?
?
可以看到,功能還是很強大的,目前看最大的缺點就是價格有點貴,每個月只能使用2小時,費用卻需要20美元!