用 Sim Studio 十分钟搭一条 AI Agent 生产线:零代码、可自托管、还能跑本地大模型
核心问题:有没有一条“十分钟就能跑起来”的 AI Agent 流水线,既能拖拖拽拽画流程,又能把 PDF 直接变成知识库,还能在本地 GPU 上跑完全离线?
答案是:Sim Studio 把这三件事做成了同一套代码仓库,随你云托管或自托管,甚至 npm 一句就启动。
一张图看懂 Sim Studio 能做什么
上图不是 PPT 概念,而是仓库里自带的 GIF:把“读取用户输入→LLM 生成→写回数据库”三个节点拖上线,点 Run,即刻执行。
反思:我原以为“画流程图就能跑”只是低代码噱头,直到看见它把 ReactFlow 节点直接序列化成 Trigger.dev 后台任务——图即代码,代码即图,才算服了。
核心问题速答
| 疑问 | 一句话结论 |
|---|---|
| 必须联网吗? | 不。支持 Ollama/vLLM,完全离线。 |
| 要装数据库吗? | 要。PostgreSQL + pgvector 做嵌入。 |
| 不会 Docker 能玩吗? | 能。npx simstudio 自动给你拉容器。 |
| 和 LangChain 区别? | LangChain 是 SDK,Sim Studio 是“带 UI 的 LangChain + 任务队列 + 知识库 + 多人协作”。 |
目录
-
云托管:点点鼠标就能跑 -
自托管四条路线:npm / Docker / Dev Container / 纯手动 -
把 PDF 拖进知识库:向量检索实战 -
跑本地大模型:Ollama 与 vLLM 对决 -
踩坑与排查:端口、OLLAMA_URL、数据库迁移 -
作者手记:我为什么最后把开发环境迁回 Dev Container -
一页速览 & 实操清单 -
FAQ:八问八答
1. 云托管:点点鼠标就能跑
核心问题:最快多久能把第一条 Agent 流程跑通?
答案:3 分钟,只要你能打开浏览器。
-
打开 https://sim.ai → Sign in with GitHub。 -
首页点“New Workflow”→ 选模板“Q&A Bot with Knowledge”。 -
上传一份 PDF(官方示例用 2025 年某产品白皮书)。 -
右上角“Run”→ 弹出 Chat UI→ 问“白皮书里定价多少?”→ 秒回引用页码。
小结:云托管已经把数据库、向量扩展、文件存储、队列全备好。你唯一要做的是“上传 + 拖拽 + 点 Run”。
2. 自托管四条路线
核心问题:我想把数据留在本地,有哪几种姿势?
答案:四条官方路线,按“动手指数”从低到高排。
| 路线 | 动手指数 | 适用场景 |
|---|---|---|
| npx 一键 | ⭐ | 笔记本快速体验 |
| Docker Compose | ⭐⭐ | 生产服务器 |
| Dev Container | ⭐⭐⭐ | 团队开发统一环境 |
| 纯手动 | ⭐⭐⭐⭐⭐ | 想抠每一行配置 |
下文逐条给出“能复制就复制”的指令,并配一段场景故事,让你知道“什么时候选哪条”。
2.1 npx 一键:咖啡还没冲好就跑起来
# 前提:已装 Docker Desktop
npx simstudio
# 终端出现
# 🚀 Sim Studio ready → http://localhost:3000
场景故事:周三下午,产品经理临时说“给客户 demo 一个 AI 工单总结”。你电脑没 node 环境?没关系,npx 会自动拉镜像,端口 3000 打开就是画布,拖一个“HTTP 输入”节点、一个“LLM”节点、一个“Slack 输出”节点,十分钟 demo 完成。
反思:npx 方案把“latest 镜像”默认拉到本地,版本不可锁定。如果下周要上生产,还是走 Docker Compose 文件锁版本更安心。
2.2 Docker Compose:生产环境最稳
git clone https://github.com/simstudioai/sim.git
cd sim
docker compose -f docker-compose.prod.yml up -d
默认端口 3000、数据库 5432。第一次会拉 postgres:17-pgvector 镜像,慢点正常。
场景故事:公司安全组要求“容器镜像必须走内网 Harbor”。你把 compose 文件里 image: simstudio/sim:latest 改成 harbor.local/sim:v1.2.3,CI 自动跑 docker compose --profile ci up --build,一条命令完成灰度。
2.3 Dev Container:团队不再说“我这边明明可以”
-
VS Code 装 Remote-Containers 插件。 -
打开仓库根目录 → 右下角弹出“Reopen in Container”→ 选“Sim Studio (full)”。 -
容器里跑 bun run dev:full,宿主机零依赖。
场景故事:新人入职第一天,只装 VS Code,其余全在容器。下班前他 push 了第一个“爬官网 FAQ → 向量化 → 问答”工作流,你 review 时本地无需再配,因为大家跑的是同一容器镜像。
2.4 纯手动:把黑盒拆成白盒
依赖列表
-
Bun ≥ 1.1 -
Node.js ≥ 20(沙箱执行 JS 代码用) -
PostgreSQL ≥ 12 + pgvector 扩展
步骤速览
a) 建库
docker run --name simstudio-db \
-e POSTGRES_PASSWORD=your_password \
-e POSTGRES_DB=simstudio \
-p 5432:5432 -d \
pgvector/pgvector:pg17
b) 装依赖
git clone https://github.com/simstudioai/sim.git
cd sim
bun install
c) 写环境
cd apps/sim
cp .env.example .env
# 必填四项
DATABASE_URL="postgresql://postgres:your_password@localhost:5432/simstudio"
BETTER_AUTH_SECRET=$(openssl rand -hex 32)
BETTER_AUTH_URL="http://localhost:3000"
NEXT_PUBLIC_APP_URL="http://localhost:3000"
d) 迁移
bunx drizzle-kit migrate --config=./drizzle.config.ts
e) 起服务
# 终端 1
bun run dev
# 终端 2
cd apps/sim && bun run dev:sockets
场景故事:你想把“沙箱执行用户代码”那一步换成自建 Firecracker 微虚拟机。读源码后发现 packages/sandbox/src/driver.ts 默认调 E2B,于是 fork 后改 driver 接口,纯手动环境让你每一行都能单步。
3. 把 PDF 拖进知识库:向量检索实战
核心问题:如何让 Agent 回答“只基于我上传的文档”?
答案:Knowledge 节点自动分块 → pgvector 存嵌入 → 检索 top-k → 把引用页码塞进提示词。
3.1 操作步骤(基于云托管界面,自托管同理)
-
左侧栏点“Knowledge”→“New Collection”→ 起名“内部规章”。 -
上传 公司规章.pdf(测试文件 82 页)。 -
回到 Workflow,拖“Knowledge Retrieval”节点,选集合“内部规章”,top-k 填 4。 -
拖“LLM”节点,提示词里写: 上下文: {{knowledge}} 问题:{{userQuestion}} 请用中文回答,并给出页码。 -
连线:HTTP Input → Knowledge Retrieval → LLM → HTTP Output。 -
点 Run,右侧 Chat 问“报销限额多少?”→ 返回“市内交通每日 80 元(见第 17 页)”。
3.2 背后发生了什么
-
上传时,后端用 pdf-parse抽文本 →tiktoken算分块 →text-embedding-ada-002生成 1536 维向量。 -
检索时,Cosine similarity 取 top 4,再把原始文本按 pageNumber字段塞回。 -
最终提示词 token 数 < 模型上限,所以 8k 上下文模型也能跑。
反思:我一开始把 top-k 设 10,结果提示词过长,LLM 反而“走神”。后来改 4,答案更准,速度也快 30%。
4. 跑本地大模型:Ollama 与 vLLM 对决
核心问题:没买 OpenAI 额度,能否完全离线?
答案:可以,两条官方路线:Ollama(轻量)与 vLLM(高并发)。
4.1 Ollama:笔记本 GPU 也能玩
# 一行把 Sim + Ollama 一起拉起来
docker compose -f docker-compose.ollama.yml --profile setup up -d
默认会帮你拉 gemma3:4b,大约 3 GB。打开 http://localhost:3000 → 新建 LLM 节点 → 模型下拉框出现 gemma3:4b → 选它 → Run。
场景故事:给客户做私有化 POC,现场不能出公网。你把笔记本带去,插上 RTX 4060,Ollama 自动走 GPU,问答延迟 600 ms,客户 IT 部当场点头。
4.2 vLLM:生产级吞吐
如果你已有 vLLM 集群,只需在 .env 加两行:
VLLM_BASE_URL=http://vllm-lb:8000
VLLM_API_KEY=optional
Sim 会把 /v1/chat/completions 当 OpenAI 兼容端点用,零改代码。
场景故事:双十一高峰,客服机器人 QPS 从 200 飙到 2000。你把 backend 从 Ollama 切到 4×A100 vLLM 集群,单卡吞吐 1200 req/s,Sim 端只改环境变量,一分钟搞定扩容。
5. 踩坑与排查
| 症状 | 根因 | 一行修复 |
|---|---|---|
| 模型下拉框空白 | Docker 内 localhost 指自身 | OLLAMA_URL=http://host.docker.internal:11434 |
| 端口 3000 被占 | 冲突 | npx simstudio -p 3100 |
| 迁移失败 | 没等 DB healthy | docker compose up -d 后睡 10 秒再 migrate |
| Chat 没反应 | Socket 没连上 | 检查 3002 端口是否放行 |
反思:我最惨一次是 Linux 宿主机忘了开 extra_hosts,Sim 容器死活连不上宿机 Ollama。翻文档才想起 Docker Desktop 自动配 host.docker.internal,裸 Linux 得自己加,这坑踩了俩小时。
6. 作者手记:为什么又把开发环境迁回 Dev Container
npx 很快,但上周遇到“本地依赖版本漂移”:
-
我机子 Bun 1.1.12,同事 1.1.10,Drizzle 生成 SQL 字段顺序不同,CI 校验失败。 -
解决:全团队切 Dev Container,镜像锁死 Bun 1.1.13,问题消失。
结论:
-
一人尝鲜 → npx -
多人协作 → Dev Container -
上线生产 → Docker Compose + 私有镜像仓库
7. 一页速览(One-page Summary)
-
最快体验: npx simstudio→ localhost:3000 -
生产部署: docker compose -f docker-compose.prod.yml up -d -
知识库三步:上传 → 选集合 → 拖 Knowledge Retrieval 节点 -
本地模型:Ollama 轻量、vLLM 高并发,只改环境变量 -
必开端口:3000(Web)、3002(Socket)、5432(PG) -
必设变量: DATABASE_URL、BETTER_AUTH_SECRET、BETTER_AUTH_URL、ENCRYPTION_KEY -
排查口诀:模型空白先看 OLLAMA_URL,Chat 不动看 3002,迁移失败等 DB
8. FAQ:八问八答
Q1:Sim Studio 与 LangChain 有什么区别?
A:LangChain 是 Python/JS SDK,Sim Studio 是“UI + 运行时 + 任务队列 + 知识库”全家桶,不用写代码也能拼工作流。
Q2:可以商用吗?
A:Apache 2.0 协议,可商用,但 Copilot 服务要走 sim.ai 官方 API,需自行申请 key。
Q3:支持哪些模型?
A:云托管默认 OpenAI;自托管支持任何 OpenAI-compatible 端点,包括 Ollama、vLLM、Groq 等。
Q4:数据库必须用 PostgreSQL 吗?
A:是,因为向量检索依赖 pgvector 扩展,MySQL、SQLite 暂不支持。
Q5:上传文件大小上限?
A:云托管单文件 50 MB;自托管可在环境变量调 MAX_FILE_SIZE。
Q6:流程可以导出吗?
A:可以,JSON 格式,包含节点坐标与配置,方便 Git 版本管理。
Q7:是否支持定时任务?
A:内置 Trigger.dev,可设 Cron 节点,例如“每天 9 点拉取日报并生成摘要”。
Q8:多人协作会冲突吗?
A:画布目前乐观锁,最后保存覆盖前者;官方 Roadmap 已列“实时协同”,预计下季度发布。
