Suna: 开源多面手 AI 代理
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美元!