用 Flowise 本地部署一个可视化 AI Agent 工作流平台
面向想把 AI Agent 工作流跑起来的产品、运营和项目负责人,使用 Flowise 的 npm 或 Docker 路径完成本地部署、环境配置、启动验证和安全边界检查,并给出可复制给 AI Agent 的部署任务书。
Flowise 是一个面向 AI Agent 和 LLM 应用的可视化工作流项目。对产品经理、运营、项目负责人和初级开发者来说,它的价值不是让你立刻写复杂代码,而是先在本机或内网把“浏览器页面、Flowise 服务、LLM API、工具或向量能力”这条链路跑起来。
本文只写本地和内网演示路径,不建议直接把 Flowise 裸露到公网。你可以把这篇教程的正文复制给自己的 AI Agent,让它按步骤在你的电脑上检查环境、安装、启动、验证,并输出风险清单。
你会做成什么
你会得到一个本地可访问的 Flowise 实例:
- 主路径:使用 npm 快速启动 Flowise。
- 补充路径:使用 Docker Compose 作为团队或服务器上的更稳定路径。
- 默认访问地址:
http://localhost:3000。 - 默认数据库说明:官方环境变量文档显示
DATABASE_TYPE默认是sqlite,DATABASE_PATH默认是your-home-dir/.flowise。 - 安全边界:只做本机或内网演示,不公网裸奔;上线另做认证、密钥、反向代理、HTTPS、备份和限流。

上图是本文自制流程示意图,不是 Flowise 官方界面截图,也不是伪造的软件截图。它只表达本地部署时几个关键对象的关系:
Local Browser:你在浏览器里打开http://localhost:3000。Flowise Server:本机或内网服务器上运行的 Flowise 服务。LLM API:后续工作流需要调用的模型服务接口,API Key 要单独保护。Vector / Tools:后续可接入的向量库、检索、工具节点或自动化能力。
适合谁
这篇教程适合:
- 想先看见一个可视化 AI Agent 工作流平台跑起来的产品经理。
- 想给运营流程、内容流程或内部工具做 AI 自动化验证的运营人员。
- 想给团队搭一个本地或内网演示环境的项目负责人。
- 会看命令行但不想直接进入源码开发的初级开发者。
- 想把部署任务交给自己的 AI Agent,但需要清楚安全边界的人。
这篇教程不适合直接当成公网生产部署手册。生产部署需要另做 Nginx、HTTPS、备份、日志、限流、访问控制、升级回滚和密钥治理。
开始前准备
本文以 Windows PowerShell 为主。macOS 或 Linux 用户可以把路径换成用户主目录下的同名目录。
官方来源包括:
本文制作时的页面快照显示 Flowise GitHub 为 54.3k stars,Latest release 为 [email protected],日期是 2026-06-25。
准备项:
- NodeJS:官方 Get Started 页面说明支持 Node
v18.15.0或v20及以上版本。 - npm:用于主路径快速安装。
- 浏览器:用于打开
http://localhost:3000。 - Docker Desktop、Git 和 Docker Compose:只在你选择 Docker Compose 补充路径时需要。
本文作者没有在当前草稿制作任务中运行 Flowise、安装第三方依赖、clone Flowise 仓库或运行第三方项目代码。下面的命令是给读者在自己机器上执行的复现路径。
第一步:认识这个开源项目
Flowise 的 GitHub README 和官方 Get Started 文档都把它定位为可视化构建 AI Agent 的项目。Quick Start 给出的 npm 路径很短:
npm install -g flowise
npx flowise start
打开地址是:
http://localhost:3000
Docker Compose 路径则是:
clone Flowise -> 进入 docker folder -> 复制 .env.example 为 .env -> docker compose up -d -> 打开 http://localhost:3000
先理解这两条路径的区别:
| 路径 | 适合场景 | 注意点 |
|---|---|---|
| npm 快速启动 | 个人本机试用、快速演示 | npm install -g flowise 会修改全局 npm 环境 |
| Docker Compose | 团队内网、服务器演示、配置可沉淀 | 需要 Git、Docker Desktop 和 Docker Compose 可用 |
第一版建议先走 npm,确认你理解 Flowise 的启动和访问方式后,再考虑 Docker Compose。
第二步:准备本地或服务器环境
先创建一个用户目录下的演示目录。不要把演示项目直接放在盘符根目录、工作区总根或真实生产项目目录里。
执行位置:Windows PowerShell。
$FlowiseLab = Join-Path $env:USERPROFILE "ai-lab\flowise-local"
New-Item -ItemType Directory -Path $FlowiseLab -Force
Set-Location $FlowiseLab
Get-Location
预期结果:
- 终端当前目录显示为类似
$env:USERPROFILE\ai-lab\flowise-local的用户目录路径。 - 这个目录只用于本地演示,不要放生产密钥、客户资料或真实业务数据。
验证方法:
Test-Path $FlowiseLab
如果返回 True,说明演示目录已经存在。
检查 Node 和 npm:
node -v
npm -v
预期结果:
node -v返回v18.15.0或v20.x、v21.x、v22.x等更高版本。npm -v返回一个 npm 版本号。
验证 Node 版本:
node -e "const v=process.versions.node; console.log(v)"
如果 Node 版本不满足要求,先安装或切换 Node 版本,再继续。公司电脑、受管电脑或权限不确定的环境,切换 Node 版本前要先确认 IT 或团队规则。
如果你准备使用 Docker Compose 路径,还要先做这些检查:
git --version
docker --version
docker compose version
docker info | Select-String "Server Version"
预期结果:
git --version返回 Git 版本。docker --version返回 Docker 客户端版本。docker compose version返回 Docker Compose 版本。docker info能读取到 Docker Server 信息,说明 Docker Desktop 已启动。
如果 docker info 提示无法连接 Docker daemon,先启动 Docker Desktop,等它进入 Running 状态后再继续。
第三步:安装项目
主路径使用 npm 快速安装。注意:npm install -g flowise 会修改全局 npm 环境。公司电脑、权限不确定、已经有严格 Node 版本管理或不想影响全局环境时,先暂停并确认,不要让 AI Agent 直接执行。
执行位置:$env:USERPROFILE\ai-lab\flowise-local。
Set-Location $FlowiseLab
npm install -g flowise
预期结果:
- npm 安装过程正常结束,没有
ERR!级别错误。 - 本机全局 npm 环境中出现
flowise包。
验证方法:
npm list -g flowise --depth=0
如果能看到 flowise 条目,说明全局安装已经完成。这里不需要 clone Flowise 仓库,也不需要运行 Flowise 源码。
Docker Compose 补充路径需要 clone 官方仓库。执行 clone 前先确认你确实要走 Docker 路径,并确认 Git、Docker Desktop 和 Docker Compose 前置检查已经通过。
执行位置:用户目录下的 ai-lab。
$AiLab = Join-Path $env:USERPROFILE "ai-lab"
$RepoRoot = Join-Path $AiLab "Flowise"
New-Item -ItemType Directory -Path $AiLab -Force
Set-Location $AiLab
git clone https://github.com/FlowiseAI/Flowise.git
Set-Location (Join-Path $RepoRoot "docker")
Copy-Item ".env.example" ".env"
预期结果:
- 本机出现
$env:USERPROFILE\ai-lab\Flowise。 - 当前目录是
$env:USERPROFILE\ai-lab\Flowise\docker。 docker目录里有一份.env。
验证方法:
Get-Location
Test-Path ".env"
第四步:配置必要参数
官方环境变量文档列出这些和本地部署直接相关的变量:
| 变量 | 默认值或用途 | 本教程建议 |
|---|---|---|
PORT | 默认 3000 | 本机演示先用默认值,端口冲突时再改 |
DATABASE_TYPE | 默认 sqlite | 本地演示使用默认 sqlite 更简单 |
DATABASE_PATH | 默认 your-home-dir/.flowise | 知道数据会落在用户主目录下,后续备份要关注它 |
CORS_ORIGINS | 限制跨域 HTTP 调用来源 | 内网或生产部署时收紧来源 |
IFRAME_ORIGINS | 限制 iframe 嵌入来源 | 不需要嵌入时保持严格 |
Flowise 的 App-level Auth 文档列出 APP_URL、JWT_AUTH_TOKEN_SECRET、JWT_REFRESH_TOKEN_SECRET、EXPRESS_SESSION_SECRET 等配置项,并说明 EXPRESS_SESSION_SECRET 默认值不适合生产。
secret 不要让 AI Agent 生成后直接发到聊天记录里。更稳妥的做法是由你本人在本机终端执行下面命令,把值写入本地受控 .env.flowise.local 文件;如果让 Agent 代执行,它只能报告文件路径,不能回显具体值。
执行位置:$env:USERPROFILE\ai-lab\flowise-local。
$FlowiseLab = Join-Path $env:USERPROFILE "ai-lab\flowise-local"
New-Item -ItemType Directory -Path $FlowiseLab -Force | Out-Null
$LocalEnv = Join-Path $FlowiseLab ".env.flowise.local"
$secret1 = node -e "process.stdout.write(require('crypto').randomBytes(32).toString('hex'))"
$secret2 = node -e "process.stdout.write(require('crypto').randomBytes(32).toString('hex'))"
$secret3 = node -e "process.stdout.write(require('crypto').randomBytes(32).toString('hex'))"
$lines = @(
"APP_URL=http://localhost:3000",
"JWT_AUTH_TOKEN_SECRET=$secret1",
"JWT_REFRESH_TOKEN_SECRET=$secret2",
"EXPRESS_SESSION_SECRET=$secret3"
)
$utf8NoBom = New-Object System.Text.UTF8Encoding($false)
[System.IO.File]::WriteAllLines($LocalEnv, $lines, $utf8NoBom)
Remove-Variable secret1, secret2, secret3, lines
Write-Output "Flowise local env saved to: $LocalEnv"
预期结果:
- 终端只输出
.env.flowise.local文件路径。 - 不把真实 secret 打印到聊天记录、截图或公开文档里。
- 本地目录中生成
.env.flowise.local。
验证方法:
Test-Path $LocalEnv
如果你选择 Docker Compose 路径,可以把同类变量写入 Flowise 仓库 docker\.env。不要把 .env 提交到公开仓库,也不要把真实值复制给 AI Agent 作为聊天内容。
如果端口 3000 被占用,可以临时改端口:
$env:PORT = "3001"
预期结果:
- Flowise 改用
3001端口。 - 浏览器访问地址变为
http://localhost:3001。
注意:这个 $env:PORT 只对当前 PowerShell 进程和它启动的子进程生效。团队部署或服务器部署应该把环境变量写进受控的启动配置或 Docker .env,不要只靠手工终端窗口。
第五步:启动服务
npm 路径启动前,可以把 .env.flowise.local 读入当前 PowerShell 进程:
$FlowiseLab = Join-Path $env:USERPROFILE "ai-lab\flowise-local"
$LocalEnv = Join-Path $FlowiseLab ".env.flowise.local"
Set-Location $FlowiseLab
Get-Content -LiteralPath $LocalEnv | ForEach-Object {
if ($_ -match "^\s*([^#][^=]+)=(.*)$") {
[Environment]::SetEnvironmentVariable($matches[1], $matches[2], "Process")
}
}
npx flowise start
预期结果:
- 终端进入持续运行状态,不会立刻退出。
- Flowise 使用默认端口
3000,除非你设置了其他PORT。 - 浏览器可以打开
http://localhost:3000。
停止方法:
在运行 Flowise 的终端按 Ctrl + C
Docker Compose 路径启动:
$RepoRoot = Join-Path $env:USERPROFILE "ai-lab\Flowise"
Set-Location (Join-Path $RepoRoot "docker")
docker compose up -d
预期结果:
- Docker Compose 后台启动 Flowise 相关容器。
- 浏览器可以打开
http://localhost:3000。
Docker Compose 停止:
docker compose stop
不要随手使用 docker compose down -v,除非你明确知道自己要删除数据卷。
第六步:验证是否成功
浏览器验证:
http://localhost:3000
PowerShell 请求验证。保持 Flowise 启动终端不要关闭,另开一个 PowerShell:
Invoke-WebRequest -Uri "http://localhost:3000" -UseBasicParsing -TimeoutSec 10 | Select-Object StatusCode
预期结果:
- 能拿到 HTTP 状态码。
- 不是连接被拒绝。
- 不是请求超时。
不同版本的页面响应细节可能变化,本教程不把具体 HTML 文案当作固定验收标准。
如果你设置了 PORT=3001,验证地址改为:
Invoke-WebRequest -Uri "http://localhost:3001" -UseBasicParsing -TimeoutSec 10 | Select-Object StatusCode
Docker Compose 路径还可以检查:
docker compose ps
停止后可以再验证一次:
try {
Invoke-WebRequest -Uri "http://localhost:3000" -UseBasicParsing -TimeoutSec 3
} catch {
"Flowise 已停止或当前端口不可访问"
}
常见问题与排查
Node 版本不符合要求
现象:安装或启动时出现 Node 版本相关错误。
检查命令:
node -v
处理方式:
- 切换到 Node
v18.15.0或v20+。 - 切换 Node 版本属于系统环境变更,让 AI Agent 操作前先给你确认。
npm 全局安装权限不足
现象:npm install -g flowise 报权限错误或公司电脑不允许全局安装。
处理方式:
- 先确认是否允许修改全局 npm 环境。
- 不确定时不要强行提权安装。
- 可改走 Docker Compose 路径,但 clone 官方仓库和启动容器前也要先确认。
端口 3000 被占用
检查命令:
netstat -ano | findstr ":3000"
处理方式:
- 如果你知道占用者是什么,可以先停止对应服务。
- 如果不确定,不要让 AI Agent 直接杀未知进程。
- 也可以改用
PORT=3001启动,并访问http://localhost:3001。
Docker Desktop 没有启动
检查命令:
docker info | Select-String "Server Version"
处理方式:
- 先启动 Docker Desktop。
- 等待 Docker Desktop 状态变为 Running。
- 再执行
docker compose up -d。
Docker Compose 找不到 .env
检查命令:
Get-Location
Test-Path ".env"
处理方式:
- 确认当前目录是 Flowise 仓库根目录下的
docker目录。 - 确认已经把
.env.example复制成.env。
浏览器打不开页面
检查顺序:
node -v
npm list -g flowise --depth=0
Invoke-WebRequest -Uri "http://localhost:3000" -UseBasicParsing -TimeoutSec 10 | Select-Object StatusCode
处理方式:
- 先看 Flowise 启动终端是否仍在运行。
- 再看端口是否改成了
3001或其他值。 - Docker 路径下再检查
docker compose ps。
不要照搬的部分
这些做法不要照搬:
- 不要把
http://localhost:3000改成公网 IP 后直接开放。 - 不要直接把
3000端口映射到公网。 - 不要未设置认证 secret 就拿去团队或生产环境使用。
- 不要把真实
JWT_AUTH_TOKEN_SECRET、JWT_REFRESH_TOKEN_SECRET、EXPRESS_SESSION_SECRET、LLM API Key、token 或 cookie 发给 AI Agent 聊天窗口。 - 不要把
.env、.env.flowise.local、截图或日志提交到公开仓库。 - 不要在没有确认的情况下让 AI Agent 执行全局 npm 安装、clone 大仓库、启动 Docker 容器、停止未知进程或删除数据卷。
- 不要把本文当成完整生产部署方案。生产部署需要单独设计 Nginx、HTTPS、备份、日志、限流、访问控制、升级回滚和密钥轮换。
后续你在 Flowise 里接入 LLM API 时,把 API Key 当作密码处理:
- 使用专门的演示 Key,不要使用主账号长期 Key。
- 给 Key 设置额度、项目范围或调用限制。
- 不把 Key 写进 Git、截图、Markdown、聊天记录或公开工单。
- 教别人复现时只写变量名,不写真实值。
内网或生产部署时,还要根据官方环境变量文档收紧:
CORS_ORIGINS:限制跨域 HTTP 调用来源。IFRAME_ORIGINS:限制 iframe 嵌入来源。
本机演示可以先不展开复杂配置;内网或生产部署时,应只允许你信任的域名或来源。
交给你的 AI Agent 继续执行
下面这段可以直接复制给你的本地 AI Agent。它的目标是让 Agent 在你的机器上按安全边界执行部署,而不是让它越权安装、暴露公网或改动生产环境。
你是我的本地部署执行 Agent。请帮我在本机部署 Flowise,用于本地或内网演示一个可视化 AI Agent 工作流平台。
目标:
1. 优先使用 npm 快速启动路径。
2. 默认访问 http://localhost:3000。
3. 默认演示目录使用当前用户目录下的 ai-lab/flowise-local。Windows 下使用 $env:USERPROFILE\ai-lab\flowise-local,不要使用盘符根目录。
4. 如果 npm 路径失败,再提出 Docker Compose 备选方案;执行 git clone 官方仓库、启动 Docker 容器或修改 .env 前必须先征求我确认。
5. 不要公网暴露 Flowise,不要配置公网隧道,不要 SSH,不要上传或导入任何内容到网站。
6. 不要读取、记录、截图或回显我的真实 LLM API Key、JWT/session secret、token、cookie、生产数据库或客户资料。
官方来源只使用:
- https://github.com/FlowiseAI/Flowise
- https://docs.flowiseai.com/getting-started
- https://docs.flowiseai.com/configuration/environment-variables
- https://docs.flowiseai.com/configuration/authorization/app-level
执行步骤:
1. 检查当前操作系统、PowerShell 或终端环境、node -v、npm -v。
2. 判断 Node 是否满足 Flowise 要求:v18.15.0 或 v20+。
3. 创建本地演示目录:Windows 使用 $env:USERPROFILE\ai-lab\flowise-local;非 Windows 使用用户主目录下的 ai-lab/flowise-local。
4. 在执行 npm install -g flowise 前,明确告诉我它会修改全局 npm 环境;公司电脑、权限不确定或 Node 环境受管理时,必须等待我确认。
5. secret 生成必须收紧:优先让我本人在本机终端执行生成命令并自行保存;如果我授权你代执行,只能写入本地受控 .env.flowise.local 或 Docker .env,并只报告文件路径,不能在聊天记录里回显真实值。
6. 执行 npx flowise start。
7. 另开检查命令访问 http://localhost:3000,至少验证它不是连接失败或超时。
8. 如果端口 3000 被占用,不要直接杀未知进程;先报告占用情况,建议改用 PORT=3001。
9. 如果切换到 Docker Compose 路径,先执行并报告 git --version、docker --version、docker compose version、docker info 检查结果;Docker Desktop 未启动时先停止并提示我启动。
10. Docker 路径使用当前用户目录下的 ai-lab/Flowise,不要 clone 到盘符根目录、工作区总根、真实生产项目目录或客户项目目录。
11. 输出最终报告:执行过的命令、执行位置、预期结果、实际结果、访问地址、停止方法、安全风险、下一步建议。不要输出任何真实 secret 或 API Key。
验收标准:
- 我能在浏览器打开 http://localhost:3000 或你明确告知的替代端口。
- 你没有公网暴露服务。
- 你没有泄露任何 API Key、JWT/session secret、token 或 cookie。
- 你明确说明 Flowise 是否仍在运行,以及如何停止它。
用 AI Agent 做可持续迭代的网页原型:React、SQLite 与项目规范入门
面向刚开始使用编码 Agent 的产品、设计与项目人员:从一个真实长期维护原型的经验和教训出发,用 React、Express 与 SQLite 做出可运行的需求评审台账,并用事实源文档、项目级技能和验证清单约束后续修改。
让 AI Agent 先读懂代码再动手:CodeGraph 与代码知识图谱实战
从 Token 消耗、调用链和影响范围出发,拆解 CodeGraph 的本地图谱原理,对比 Serena、Graphify 等工具,并以 Windows + Codex 为主线说明跨平台、多 Agent 的安全接入、验证、测量与风险控制流程。
用 AI Agent 从零生成网页原型:静态 HTML、Vue、React 怎么选,才能少返工、少烧 Token
先分清页面组件化与数据边界两条轴线,再比较静态 HTML、Vue、React、Mock、MSW 与 SQLite 的首次和长期 Token 成本,按原型生命周期选择更少返工的架构。