综合介绍
Suna 是 Kortix AI 开发的一个开源通用 AI 代理,托管在 GitHub 上,基于 Apache 2.0 许可证,允许用户免费下载、修改和自托管。它通过自然语言对话帮助用户完成复杂任务,如网页浏览、文件管理、数据抓取和网站部署。Suna 采用模块化架构,包括 Python/FastAPI 后端、Next.js/React 前端、Supabase 数据库和 Daytona 沙盒,确保安全性和灵活性。它支持与 OpenAI、Anthropic 等大语言模型集成,并通过 Tavily 和 RapidAPI 提供实时搜索和数据服务。
功能列表
- 浏览器自动化 :自动导航网页、填写表单、提取数据,支持价格监控和内容抓取。
- 文件管理 :创建、编辑、删除文件,支持批量处理和格式转换(如 CSV 转 JSON)。
- 网页抓取与搜索 :通过 Tavily 实时搜索,抓取网页内容,生成结构化报告。
- 命令行操作 :在 Daytona 沙盒中执行 Linux 命令,处理系统任务。
- 网站部署 :将静态网站部署到 Cloudflare Pages,生成公开访问链接。
- API 集成 :连接 LinkedIn、Zillow 等服务,获取专业数据,如公司信息或房产数据。
- 数据分析 :处理 JSON、CSV、XML 数据,生成可视化图表或报告。
- 任务规划 :通过
todo.md
系统分解复杂任务,自动执行并跟踪进度。
使用帮助
安装流程
Suna 支持自托管,适合有 Python 和 Node.js 开发经验的用户。以下是详细安装步骤:
- 准备环境 :
- 安装 Python 3.11+、Node.js 20.x、Git。
- 配置 Redis(推荐 Upstash 或本地安装)。
- 创建 Supabase 项目,获取 API URL、匿名密钥和服务角色密钥。
- 注册 Daytona 账户,配置
adamcohenhillel/kortix-suna:0.0.20
镜像。 - 获取 OpenAI 或 Anthropic API 密钥。
- (可选)获取 Tavily 和 RapidAPI 密钥,增强搜索和数据功能。
- 克隆代码库 :
git clone https://github.com/kortix-ai/suna.git
cd suna
- 配置后端环境 :
- 进入
backend
目录,复制.env.example
为.env
:cd backend cp .env.example .env
- 编辑
.env
,填写以下内容:NEXT_PUBLIC_URL="http://localhost:3000" SUPABASE_URL=your_supabase_url SUPABASE_ANON_KEY=your_supabase_anon_key SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key REDIS_HOST=your_redis_host REDIS_PORT=6379 REDIS_PASSWORD=your_redis_password REDIS_SSL=True DAYTONA_API_KEY=your_daytona_api_key DAYTONA_SERVER_URL="https://app.daytona.io/api" DAYTONA_TARGET="us" ANTHROPIC_API_KEY=your_anthropic_api_key MODEL_TO_USE="anthropic/claude-3-7-sonnet-latest" TAVILY_API_KEY=your_tavily_api_key RAPID_API_KEY=your_rapid_api_key
- 进入
- 配置 Supabase 数据库 :
- 安装 Supabase CLI:
npm install -g @supabase/supabase
- 登录并链接项目:
supabase login supabase link --project-ref your_project_reference_id supabase db push
- 在 Supabase 控制台的 Project Settings > Data API 中,确保 “basejump” 出现在 Exposed Schema。
- 安装 Supabase CLI:
- 配置前端环境 :
- 进入
frontend
目录,复制.env.example
为.env.local
:cd ../frontend cp .env.example .env.local
- 编辑
.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" NEXT_PUBLIC_URL="http://localhost:3000"
- 进入
- 安装依赖 :
- 前端:
cd frontend npm install
- 后端:
cd ../backend pip install -r requirements.txt
- 前端:
- 启动服务 :
- 启动后端:
cd backend python api.py
- 启动前端:
cd frontend npm run dev
- 打开浏览器,访问
http://localhost:3000
,注册账户即可使用。
- 启动后端:
- (可选)云部署 :
- 通过 suna.so 使用 Kortix 提供的云服务,免去本地配置。
主要功能操作
浏览器自动化
Suna 使用 Chromium 浏览器执行网页操作。例如,输入“从亚马逊提取 iPhone 14 价格”:
- Suna 打开亚马逊,搜索 iPhone 14。
- 定位价格元素,提取数据。
- 返回结果或保存为文件。
操作步骤 :
- 在聊天界面输入指令,如“提取某网站价格”。
- Suna 显示操作进度,返回结果。
- 可导出数据为 CSV 或 JSON。
文件管理
Suna 支持文件创建和编辑。例如,“创建 report.txt,写入销售数据”:
- Suna 生成文件,写入指定内容。
- 支持批量处理,如转换文件格式。
操作步骤 :
- 输入指令,指定文件名和内容。
- Suna 返回文件路径或内容预览。
- 可继续操作,如“将文件转为 PDF”。
网页抓取与搜索
Suna 集成 Tavily 提供实时搜索。例如,“分析德国汽车市场”:
- Suna 搜索相关网页,提取数据。
- 清洗数据,生成报告。
操作步骤 :
- 输入分析主题。
- Suna 规划抓取流程,显示结果。
- 可保存为 CSV、JSON 或 PDF。
命令行操作
Suna 在 Daytona 沙盒中运行 Linux 命令。例如,“列出目录文件”:
- Suna 执行
ls
,返回结果。 - 支持复杂命令,如
grep
或sed
。
操作步骤 :
- 输入命令或任务描述。
- Suna 返回输出或处理结果。
网站部署
Suna 支持静态网站部署。例如,“部署我的 HTML 项目”:
- Suna 验证文件,上传至 Cloudflare Pages。
- 返回公开 URL。
操作步骤 :
- 输入项目路径和部署指令。
- Suna 确认后执行部署。
- 返回访问链接。
特色功能操作
任务规划
Suna 使用 todo.md
系统分解任务。例如,“规划伦敦 10 天行程”:
- Suna 创建任务清单(搜索航班、酒店、活动)。
- 逐项执行,生成行程文档。
操作步骤 :
- 输入任务描述。
- Suna 显示
todo.md
计划。 - 用户可调整或确认执行。
API 集成
Suna 支持 LinkedIn、Zillow 等 API。例如,“抓取巴塞罗那公司数据”:
- Suna 调用 LinkedIn API,提取公司信息。
- 生成销售线索列表。
操作步骤 :
- 输入数据需求。
- Suna 配置 API,显示结果。
- 可导出为 Excel。
应用场景
- 市场研究
Suna 可抓取行业数据,生成报告。例如,分析英国医疗市场,Suna 从 Google 和 Crunchbase 提取数据,整理主要玩家和市场规模。 - 招聘支持
Suna 可从 LinkedIn 搜索候选人。例如,查找慕尼黑的初级软件工程师,筛选学历和经验,输出候选人列表。 - 内容生成
Suna 可生成报告或行程。例如,规划巴黎到加州的 7 天公司旅行,搜索航班和活动,输出详细计划。 - B2B 销售
Suna 可抓取潜在客户数据。例如,查找巴塞罗那 10-50 人公司,生成联系方式和个性化邮件模板。 - SEO 优化
Suna 可分析网站 SEO,查找关键词排名和遗漏主题。例如,分析 suna.so,生成优化建议报告。
QA
- Suna 是否适合非技术用户?
非技术用户可通过 suna.so 使用云服务,无需配置。自托管需要技术背景。 - Suna 是否完全免费?
Suna 开源免费,但云部署或 API 调用(如 Tavily、RapidAPI)可能产生费用。 - Suna 支持哪些模型?
Suna 通过 LiteLLM 支持 OpenAI、Anthropic 等模型,推荐使用 Claude 或 GPT-4o。 - 如何确保 Suna 安全?
Suna 使用 Daytona 沙盒隔离操作,保护系统安全。用户需妥善管理 API 密钥。