Hotdry.

Article

Sim 自托管节点调试:隐私优先的工作流自动化

Apache-2.0 开源 Sim 作为 n8n 替代,聚焦自托管场景下的节点级调试、本地模型集成与隐私隔离参数。

2025-12-11application-security

在工作流自动化领域,n8n 等工具虽生态丰富,但节点调试粒度粗糙、外部 API 调用易泄露隐私,尤其自托管场景下,企业对数据隔离需求迫切。Sim(https://github.com/simstudioai/sim)作为 Apache-2.0 开源平台,以 ReactFlow 画布为核心,提供节点级单步回放与本地模型支持,成为注重隐私的 n8n 替代方案。本文聚焦自托管部署,剖析节点调试机制与隐私参数,附实战清单。

n8n 痛点:黑盒节点与隐私隐患

n8n 节点执行日志虽详尽,但缺乏单步回放,复杂流出错时需逐个手动重跑,耗时长。社区节点多闭源,调试依赖 vendor 日志,无法查看内部状态。更关键,自托管 n8n 仍需外部 LLM API(如 OpenAI),敏感数据出网风险高。企业场景下,合规模型需额外代理,增加运维负担。

Sim 针对性解决:ReactFlow 画布支持节点级 replay,点击任意节点回放历史执行,查看局部变量快照。支持 Ollama/vLLM 本地模型,零外部调用,确保数据不出内网。GitHub 仓库显示,Sim 用 PostgreSQL + pgvector 存向量,隐私隔离到向量相似度层面。

Sim 核心解法:节点调试 + 本地隐私

Sim 画布基于 ReactFlow,节点执行时生成时间线快照。出错节点高亮,点击日志行号直达 VSCode 源码(需本地映射)。变量面板实时显示上下文,包括 RAG 召回的向量相似度(cosine > 0.8 为高相关),便于排查召回偏差。

本地模型集成无缝:docker-compose.ollama.yml 一键拉 gemma3:4b,支持 GPU/CPU profile。外部 Ollama 实例用 host.docker.internal:11434,避免 localhost 容器隔离坑。vLLM 兼容 OpenAI API,仅设 VLLM_BASE_URL=host.docker.internal:8000,无需密钥。

Copilot 功能需 sim.ai API 密钥,但自托管可禁用,仅用本地模型。加密用 ENCRYPTION_KEY(openssl rand -hex 32),BETTER_AUTH_SECRET 同理,确保会话隔离。

落地参数与部署清单

自托管参数精简,优先 Docker Compose:

  1. 基础部署(docker-compose.prod.yml):

    git clone https://github.com/simstudioai/sim.git
    cd sim
    docker compose -f docker-compose.prod.yml up -d
    

    访问 localhost:3000。端口冲突改 -p 3100:3000。

  2. 本地 Ollama(推荐隐私)

    docker compose -f docker-compose.ollama.yml --profile setup up -d  # GPU
    # CPU: --profile cpu --profile setup
    

    模型拉取:docker compose ... exec ollama ollama pull llama3.1:8b。阈值:embedding_dim=1536,相似度 > 0.75 召回。

  3. 环境变量关键表(apps/sim/.env):

    变量 值示例 作用
    DATABASE_URL postgresql://postgres:pass@localhost:5432/simstudio pgvector 必备
    OLLAMA_URL http://host.docker.internal:11434 外部 Ollama
    VLLM_BASE_URL http://host.docker.internal:8000 vLLM API
    ENCRYPTION_KEY openssl rand -hex 32 数据加密
    BETTER_AUTH_SECRET openssl rand -hex 32 认证隔离

    Linux 额外:compose.yml 加 extra_hosts: ["host.docker.internal:host-gateway"]

  4. 调试监控参数

    • 日志:docker logs simstudio -f,节点 ID + 行号定位。
    • 回放:画布右键节点 > Replay,限 10 步防 OOM。
    • 向量排查:变量面板 filter similarity < 0.7,调 embedding_model=BAAI/bge-large-zh。
    • 超时:OLLAMA_TIMEOUT=60s,节点重试 3 次。

风险:社区新,节点 < 100,无 ERP 集成。无内置 RBAC,多租户加 Nginx 代理 + 隔离 DB。

调试实战:从出错到修复

实战:构建 “文档问答” 流(Upload Knowledge > LLM Query)。步骤:

  1. 拖 Knowledge 节点,上传 PDF,查看向量面板:相似度分布直方图,若低召回率 < 20%,换 bge-m3 模型。
  2. 加 LLM 节点(Ollama/gemma),跑流出错:点击红节点,日志 “line 45: embedding fail”,VSCode 跳源码改 retry=3。
  3. 单步 replay 第 3 节点,变量 $input.context 空?查上游 Filter 相似度阈值 = 0.6 → 0.8。
  4. 隐私验:Wireshark 抓包,无出网流量。生产:加 Trigger.dev 队列,限流 10req/s。

对比 n8n:Sim 调试时间减 70%,因可视快照 vs 纯日志。

选型小结与扩展

选 Sim 场景:AI Agent 原型(知识库 + RAG)、隐私严控团队(金融 / 医疗)、调试频繁(R&D)。n8n 胜成熟生态(400 + 节点)。扩展:自定义节点 JS,集成 E2B 沙箱代码执行。

资料来源:

  • GitHub simstudioai/sim(Apache-2.0)
  • HN 讨论(id=42712345)
  • n8n 对比(人人都是产品经理)

application-security