实战 📋 7 个步骤 第 208 / 446 篇

自己托管 Suna:开源通用 AI 智能体(浏览器/文件/数据/部署一条龙)实操

Suna 是 Kortix AI 开源的通用 AI 智能体(Apache 2.0),被称为「开源版 Manus」:能用自然语言帮你刷网页、抓数据、管文件、跑命令行、生成图表,甚至把静态站部署到 Cloudflare Pages。本教程手把手教你用 Docker 自托管 Suna,并跑通第一个真实任务。

2026.07.31· 20 分钟阅读· 约 1483 字· 🦞 Suna / 🔓 开源通用Agent

想要一个真正能替你「动手」的通用 AI 助手——不是只会聊天,而是能开浏览器、抓数据、改文件、跑命令、出图表,甚至把网站部署上线?商业产品 Manus 很惊艳但闭源、按次收费。好消息是,Kortix AI 开源了 Suna(Apache 2.0,被誉为「开源版 Manus」),可以完全自托管,数据留自家服务器。本教程带你用 Docker 把它跑起来,并派第一个活。

🦞 本教程适合:想要一个本地/私有通用 Agent、又不想被闭源产品绑定的开发者。你需要基本的命令行和 Docker 经验,以及 Supabase、Daytona 账号(都有免费层)。

先搞懂:Suna 是什么架构

用一句话理解:Suna 是一个「会调用一堆工具的数字员工」,背后是一套模块化系统。它的几个核心组件:

组件作用
Next.js/React 前端聊天界面 + 任务监控仪表板
Python/FastAPI 后端Agent 编排、任务分解(todo.md)
Supabase认证、对话历史、文件存储、实时订阅
Daytona 沙盒隔离执行环境(浏览器/命令行/文件系统)
LLM + 搜索OpenAI/Anthropic 大脑 + Tavily/Firecrawl 搜索

硬件门槛适中:官方推荐 NVIDIA RTX 3060 或 16GB 内存。模型推理走云 API,所以本地不吃显卡,主要是跑前后端和沙盒。

Step 1:准备前置依赖

1 装好四样东西

自托管最关键的三个外部服务:Supabase(数据库)、Daytona(执行沙盒)、Redis(缓存/队列),再加上运行环境。

# 本地运行环境
· Python 3.11+       # 后端
· Node.js 20.x       # 前端
· Git                # 拉代码
· Docker Desktop     # 可选,但推荐用它起 Redis

# 三个外部账号(都有免费层)
· Supabase:建项目,拿 Project URL / anon key / service_role key
· Daytona:注册拿 API Key,添加镜像 adamcohenhillel/kortix-suna:0.0.20
· LLM:OpenAI 或 Anthropic 的 API Key(二选一)
· 可选:Tavily / RapidAPI Key 增强搜索
💡 Redis 不想本地装?用 Upstash 免费云 Redis 最省事,给个 URL 就行,不用管进程。

Step 2:克隆仓库并配置后端

2 填好 .env 再启动

先克隆,再复制环境变量模板,把上一步拿到的密钥填进去。

git clone https://github.com/kortix-ai/suna.git
cd suna/backend
cp .env.example .env
# 编辑 .env,至少填:
#  SUPABASE_URL / SUPABASE_ANON_KEY / SUPABASE_SERVICE_ROLE_KEY
#  REDIS_HOST / REDIS_PORT / REDIS_PASSWORD
#  DAYTONA_API_KEY / DAYTONA_TARGET
#  OPENAI_API_KEY 或 ANTHROPIC_API_KEY(只开一个)
#  TAVILY_API_KEY(可选)

# 把数据库表结构推到 Supabase
supabase login
supabase link --project-ref YOUR_PROJECT_REF
supabase db push   # 确认 basejump schema 已暴露

只开一个 LLM 提供商:.env 里 OpenAI 和 Anthropic 二选一,别两个都留空或都开着,否则后端会不知道用哪个模型而报错。

Step 3:配置前端并安装依赖

3 前后端各装一遍
# 前端
cd ../frontend
cp .env.example .env.local
# 填 NEXT_PUBLIC_SUPABASE_URL / ANON_KEY
# 以及 NEXT_PUBLIC_BACKEND_URL=http://localhost:8000/api

# 装依赖(前端 Node)
npm install

# 后端依赖(Python 3.11,建议虚拟环境)
cd ../backend
pip install -r requirements.txt
🚀 嫌一步步装麻烦?仓库根目录有 `docker-compose.yml`,一条 `docker compose up` 就能把后端+前端+Redis 一起起。本地开发更推荐分别跑,方便看日志。

Step 4:启动并访问

4 两个终端,前后端一起跑
# 终端 A:后端
cd backend && python api.py

# 终端 B:前端
cd frontend && npm run dev

# 浏览器打开
http://localhost:3000
# 用 Supabase 账号注册登录,即可开始派活
💡 看到「Suna is now running! Access at http://localhost:3000」就成功了。第一次启动会自动建好基础数据。

Step 5:派活实战——让 Suna 干一件真事

5 自然语言下达任务

Suna 的强项是「多步骤真实任务」。在对话框里直接说目标,它会用 todo.md 拆任务、调工具执行。

示例指令:
「分析麦当劳在旧金山的 Google Reviews,
 抓取最近 50 条,按好评/差评分类,
 生成一份带情绪分布图的中文报告,
 存成 report.html。」

Suna 会自主:
1. 用 Tavily/Firecrawl 搜并抓评论
2. 在 Daytona 沙盒里跑 Python 清洗、出图
3. 生成 HTML 报告并保存到你的文件区

任务越具体越好:给「输出格式 + 数据范围 + 语言」比只说「帮我分析一下」成功率高得多。复杂任务建议拆成几个小目标分批派。

Step 6:探索更多能力边界

6 浏览器 / 文件 / 部署都能干

Suna 内置工具覆盖面很广,试试这些场景:

· 浏览器自动化:填表单、监控价格、抓竞品
· 文件管理:CSV↔JSON 批量转换、批量重命名
· 数据分析:上传 Excel,让它出图表和洞察
· 网站部署:把生成的静态站直接发到 Cloudflare Pages
· API 集成:连 LinkedIn / Zillow 抓专业数据
🔑 沙盒隔离是 Suna 的安全核心:每个任务在独立容器里跑浏览器和命令,你的本机不会被它乱改。这是比「让 Agent 直接碰你电脑」更稳的做法。

Step 7:成本与安全收尾

7 别让账单和权限失控
1. 成本:模型按 token 计费,复杂任务很能吃额度
   → 在 .env 里选便宜模型(如 gpt-4o-mini)跑草稿
2. 安全:Daytona 沙盒默认隔离,但别把云账号密钥硬编码进任务
3. 数据:Supabase 是你的数据库,定期备份
4. 停止服务:docker compose down / 关掉两个终端
🎉 恭喜!你已经拥有了一个自托管的开源通用 Agent。它不绑架你的数据、不按次收费,还能随你改源码扩展工具——这正是闭源产品给不了的自由。

常见问题速查

现象大概率原因 & 解决
后端起不来报缺依赖node/npm/docker 没装或版本不符,按 Step 1 补齐
登录后空白Supabase schema 没 push,或 frontend 的 BACKEND_URL 配错
Agent 不执行浏览器任务Daytona API Key 错,或镜像名/entrypoint 没按文档填
任务跑一半失败多是 LLM 额度耗尽或搜索 Key 缺失,查后端日志
← 返回教程中心