用 Sim Studio 十分钟搭一条 AI Agent 生产线:零代码、可自托管、还能跑本地大模型

核心问题:有没有一条“十分钟就能跑起来”的 AI Agent 流水线,既能拖拖拽拽画流程,又能把 PDF 直接变成知识库,还能在本地 GPU 上跑完全离线?
答案是:Sim Studio 把这三件事做成了同一套代码仓库,随你云托管或自托管,甚至 npm 一句就启动。


一张图看懂 Sim Studio 能做什么

Workflow Builder Demo

上图不是 PPT 概念,而是仓库里自带的 GIF:把“读取用户输入→LLM 生成→写回数据库”三个节点拖上线,点 Run,即刻执行。
反思:我原以为“画流程图就能跑”只是低代码噱头,直到看见它把 ReactFlow 节点直接序列化成 Trigger.dev 后台任务——图即代码,代码即图,才算服了。


核心问题速答

疑问 一句话结论
必须联网吗? 不。支持 Ollama/vLLM,完全离线。
要装数据库吗? 要。PostgreSQL + pgvector 做嵌入。
不会 Docker 能玩吗? 能。npx simstudio 自动给你拉容器。
和 LangChain 区别? LangChain 是 SDK,Sim Studio 是“带 UI 的 LangChain + 任务队列 + 知识库 + 多人协作”。

目录

  1. 云托管:点点鼠标就能跑
  2. 自托管四条路线:npm / Docker / Dev Container / 纯手动
  3. 把 PDF 拖进知识库:向量检索实战
  4. 跑本地大模型:Ollama 与 vLLM 对决
  5. 踩坑与排查:端口、OLLAMA_URL、数据库迁移
  6. 作者手记:我为什么最后把开发环境迁回 Dev Container
  7. 一页速览 & 实操清单
  8. FAQ:八问八答

1. 云托管:点点鼠标就能跑

核心问题:最快多久能把第一条 Agent 流程跑通?
答案:3 分钟,只要你能打开浏览器。

  1. 打开 https://sim.ai → Sign in with GitHub。
  2. 首页点“New Workflow”→ 选模板“Q&A Bot with Knowledge”。
  3. 上传一份 PDF(官方示例用 2025 年某产品白皮书)。
  4. 右上角“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:团队不再说“我这边明明可以”

  1. VS Code 装 Remote-Containers 插件。
  2. 打开仓库根目录 → 右下角弹出“Reopen in Container”→ 选“Sim Studio (full)”。
  3. 容器里跑 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 操作步骤(基于云托管界面,自托管同理)

  1. 左侧栏点“Knowledge”→“New Collection”→ 起名“内部规章”。
  2. 上传 公司规章.pdf(测试文件 82 页)。
  3. 回到 Workflow,拖“Knowledge Retrieval”节点,选集合“内部规章”,top-k 填 4。
  4. 拖“LLM”节点,提示词里写:

    上下文:
    {{knowledge}}
    问题:{{userQuestion}}
    请用中文回答,并给出页码。
    
  5. 连线:HTTP Input → Knowledge Retrieval → LLM → HTTP Output。
  6. 点 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)

  1. 最快体验:npx simstudio → localhost:3000
  2. 生产部署:docker compose -f docker-compose.prod.yml up -d
  3. 知识库三步:上传 → 选集合 → 拖 Knowledge Retrieval 节点
  4. 本地模型:Ollama 轻量、vLLM 高并发,只改环境变量
  5. 必开端口:3000(Web)、3002(Socket)、5432(PG)
  6. 必设变量:DATABASE_URLBETTER_AUTH_SECRETBETTER_AUTH_URLENCRYPTION_KEY
  7. 排查口诀:模型空白先看 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 已列“实时协同”,预计下季度发布。