项目快照:langflow-ai/langflow,约 153,301 个 Star,9,865 个 Fork;最新推送时间 2026-08-16T06:13:02Z。本文基于仓库公开资料撰写。

项目地址:https://github.com/langflow-ai/langflow · http://www.langflow.org

langflow 从代码、运行环境到实践流程的项目封面
langflow 的项目能力与实践流程示意。

项目速览(TL;DR)

langflow 是一个以 Python 为主要语言、采用 MIT 许可证的 AI 代理与工作流构建平台。项目同时提供可视化编排界面、Python 组件源码访问能力、交互式调试 Playground、API 服务和 MCP(Model Context Protocol)服务器能力。

根据所提供的 GitHub 元信息,仓库默认分支为 main,Star 数为 153301,Fork 数为 9865。资料中的 Python 包版本为 1.12.0,支持 Python >=3.10,<3.15;README 给出的本地服务地址为 http://127.0.0.1:7860,Docker 示例使用宿主机端口 7860

项目属性 资料内容
项目名称 langflow
仓库 langflow-ai/langflow
主要语言 Python
版本 1.12.0
许可证 MIT
默认分支 main
仓库热度数据 153301 Stars,9865 Forks

定位与目标用户

本项目面向需要设计、试验和部署 AI 代理或工作流的开发者与团队。它把流程编排、组件定制、交互式验证以及对外服务接口放在同一个平台中,减少在原型工具、业务代码和部署入口之间来回切换的需要。

README 将 Langflow 描述为用于构建和部署 AI-powered agents and workflows 的平台。这里的“平台”并不只指一个流程编辑器:工作流可以通过 API 集成到其他应用,也可以作为 MCP 服务器暴露给 MCP 客户端;具体部署拓扑、认证方案和生产容量仍需依据官方文档及实际环境验证。

使用边界

Langflow 的价值集中在 AI 流程的可视化组合、局部 Python 定制和服务化交付。资料没有提供完整的组件目录、数据库迁移说明、接口签名、性能基准或并发上限,因此这些内容不能从仓库摘要中推导出确定结论。

如果项目需要接入外部大语言模型(Large Language Model,LLM)、向量数据库或第三方工具,应把凭据管理、数据流向、网络访问权限和运行隔离纳入设计,而不能仅依据可视化界面是否能够连接来判断其适用性。

核心功能

核心能力可以归纳为“编排—调试—定制—发布”四个连续环节。每项能力都对应不同的输入、处理方式和输出形态,适合在开发阶段逐步验证,而不是直接把未审计的流程投入生产。

可视化构建器

可视化构建界面(Visual Builder Interface)用于快速创建和迭代流程。用户通过界面组织模型、检索、对话管理或工具等流程节点,形成可执行的工作流;资料没有给出节点连接协议、序列化字段或完整 UI 操作手册,因此具体操作应以官方文档为准。

该能力的输入是组件及其参数配置,处理结果是一个可在 Playground 中运行、可导出为 JSON 或通过服务入口调用的流程定义。组件能否使用取决于对应依赖包、外部服务凭据以及运行环境配置。

Python 组件定制

README 明确提供源码访问能力,允许开发者使用 Python 定制组件。其工作方式是以现有组件或组件机制为基础,通过 Python 代码改变处理逻辑、输入输出或与外部系统的连接方式;资料未提供自定义组件的完整基类、方法签名和生命周期文档。

因此,开发者应先在本地环境中验证组件输入、输出、异常处理和依赖声明,再将流程发布给其他调用方。自定义代码还会扩大执行权限边界,生产环境应限制文件系统、网络和凭据访问范围。

交互式 Playground

交互式 Playground 用于立即测试和细化流程,并支持逐步控制。它的输入是当前流程以及测试数据,输出是每个步骤的运行结果和最终响应;README 没有说明其是否保存完整输入、输出、日志或凭据,因此不能假设测试数据会被自动脱敏。

这一机制适合把模型调用、检索结果、工具返回值和多代理协作拆开观察。测试时应使用本地测试数据或已获授权的数据,避免将生产密钥、个人信息和未公开业务材料直接粘贴到调试环境。

多代理编排与检索

项目提供多代理编排、会话管理和检索能力。多代理流程通常需要在不同代理之间传递消息、状态或工具结果;在本项目资料范围内,能够确认的是 README 对这些能力的功能性描述,不能确认具体状态存储模型、检索协议或代理调度策略。

在实施时,应把会话状态、检索数据和工具调用分别定义为可审计对象,并为每个外部服务配置独立凭据。若流程依赖向量数据库或模型服务,需确认相应组件及 lfx-* 扩展包已安装且版本约束可以解析。

API 与 MCP 服务化

项目可以将工作流部署为 API,也可以导出 JSON 供 Python 应用使用;README 还说明每个工作流可以作为 MCP 服务器中的工具,供 MCP 客户端集成。API 形态适合由普通应用通过网络调用,MCP 形态则适合遵循 MCP 客户端—工具交互方式的应用。

资料没有提供具体 URL、HTTP 方法、请求体、响应体或 MCP 工具描述格式,所以本文不虚构接口示例。上线前必须从官方文档确认认证方式、错误响应、超时、限流、日志和敏感字段处理规则。

系统架构与关键模块

从仓库资料可以确认,Langflow 由 Python 包、Web 应用、文档站点、可选扩展依赖和部署容器共同组成。资料没有给出完整源码目录树,因此以下采用“已确认能力边界”的方式描述架构,不把未提供的模块名当作事实。

运行时层

pyproject.toml 将项目名称定义为 langflow,描述为“A Python package with a built-in web application”。这表明 Python 包与内置 Web 应用属于同一交付单元,启动命令由 langflow CLI 提供。

README 给出的默认启动结果是本机 127.0.0.1:7860。服务器主机、端口、工作进程、日志级别和前端文件路径都可以通过环境变量表达,但环境变量为空时的全部默认行为并未在资料中完整列出。

组件与扩展层

项目依赖 langflow-base~=1.12.0,同时声明了多个 lfx-* 扩展包的有界版本范围,例如 lfx-openailfx-anthropiclfx-ollamalfx-googlelfx-vllm。这些依赖用于连接不同模型、云服务或工具能力,但资料没有给出每个扩展包的组件清单。

依赖声明采用范围约束,而不是在项目依赖段中为每个扩展写精确版本。pyproject.toml 还说明,可复现安装所需的精确版本位于 uv.lock 和发布构建清单中;这一区分意味着开发环境解析依赖时应同时关注声明范围和锁定文件。

前端与文档层

docs/README.md 说明文档网站使用 Docusaurus 3 构建,支持本地开发、静态构建和版本化文档。文档站点可以从仓库导入源代码片段,用于展示与实际代码同步的示例。

文档网站的安装命令是 npm install,开发命令是 npm run start,构建命令是 npm run build。这些命令针对文档站点,不等同于 Langflow Python 应用的安装和启动命令。

依赖与运行环境

运行环境的硬约束来自 pyproject.toml:Python 版本必须满足 >=3.10,<3.15。README 推荐使用 uv(Python package manager),本地安装命令也以 uv 为前提;此外,项目提供 Docker 运行方式,适合不希望手工管理 Python 环境的部署场景。

  • 运行语言:Python。
  • 支持版本:Python >=3.10,<3.15
  • 推荐包管理器:uv。
  • 项目包版本:1.12.0
  • 核心依赖:langflow-base~=1.12.0
  • 扩展依赖:多个有界版本的 lfx-* 包。
  • 文档构建:Docusaurus 3,使用 Node.js 相关工具链;package.json 仅明确列出开发依赖 @types/node

资料没有提供操作系统最低版本、CPU 或内存要求、数据库服务器版本、浏览器兼容矩阵和生产部署资源建议。部署前应按照目标平台的官方部署指南补齐这些条件,并锁定实际使用的 Python、依赖包和容器镜像版本。

快速开始(含最小可运行示例)

README 推荐从一个新目录开始安装 Python 包,然后启动 Langflow。下面的命令仅使用资料中明确出现的本地安装与运行方式,不包含外部 API 调用,也不会提交任何密钥。

安装

Bash
mkdir langflow-local
cd langflow-local
uv pip install langflow -U

上述命令会安装最新的 Langflow Python 包。若需要复现仓库源码或参与贡献,应改用仓库源码运行方式;README 对源码贡献场景给出的命令是 make run_cli,本文不额外推断其内部构建步骤。

运行

Bash
uv run langflow run

命令启动后,README 指定的本地访问地址为 http://127.0.0.1:7860。这是本地测试环境示例,不能据此推断服务已经具备生产环境认证、反向代理、持久化和高可用配置。

验证

安装与启动完成后,在浏览器访问 http://127.0.0.1:7860,确认 Langflow Web 界面能够打开,即完成最小闭环验证。若页面无法访问,应先检查命令是否保持运行、端口是否被其他程序占用,以及主机和端口配置是否被环境变量覆盖。

Docker 方式

Bash
docker run -p 7860:7860 langflowai/langflow:latest

README 指定容器启动后通过 http://localhost:7860/ 访问。该示例使用 latest 标签,若需要更严格的发布控制,资料没有提供具体镜像摘要或固定标签,建议以官方部署文档和实际发布信息为准。

配置说明

仓库提供的 .env.example 展示了配置目录、数据库、缓存、服务器、日志和认证相关环境变量。复制该文件时应保留变量名,敏感值只写入本地 .env 或受控的部署系统,不应提交到 Git 仓库。

字段名 类型 默认值 作用
LANGFLOW_CONFIG_DIR 路径字符串 未提供 指定文件、日志和数据库的配置目录。
LANGFLOW_SAVE_DB_IN_CONFIG_DIR 布尔值 未提供 控制数据库是否保存到配置目录;可选值为 truefalse
LANGFLOW_DATABASE_URL URL 字符串 sqlite:///./langflow.db 指定数据库连接地址;示例还给出了 PostgreSQL 连接格式。
LANGFLOW_ALEMBIC_LOG_TO_STDOUT 布尔值 False 控制 Alembic 日志是否输出到标准输出。
LANGFLOW_DATABASE_CONNECTION_RETRY 布尔值 false 控制数据库连接失败时是否重试。
LANGFLOW_LANGCHAIN_CACHE 字符串 SQLiteCache 指定 LangChain 缓存类型。
LANGFLOW_HOST 主机名或地址 未提供 配置服务器监听主机。
LANGFLOW_WORKERS 整数 未提供 配置 Worker 进程数量。
LANGFLOW_PORT 整数 未提供 配置服务器端口;README 启动示例使用 7860。
LANGFLOW_LOG_LEVEL 字符串 未提供 配置日志级别。
LANGFLOW_CACHE_TYPE 枚举字符串 未提供 选择 asyncmemoryredis 缓存。
LANGFLOW_AUTO_LOGIN 布尔值 未提供 控制是否自动登录;关闭时必须设置 LANGFLOW_SUPERUSER_PASSWORD
LANGFLOW_API_KEY_SOURCE 枚举字符串 db 控制 x-api-key 请求头的 API Key 校验来源,可选 dbenv

配置表中的“未提供”表示资料没有给出默认值,不代表运行时不存在默认行为。Redis 缓存还需要设置 LANGFLOW_REDIS_HOSTLANGFLOW_REDIS_PORTLANGFLOW_REDIS_DBLANGFLOW_REDIS_CACHE_EXPIRE;这些变量在示例中列出,但各变量的默认值在当前资料中未完整定义。

数据库与持久化注意事项

LANGFLOW_DATABASE_URL 的示例值为 sqlite:///./langflow.db,资料同时给出 PostgreSQL URL 示例。LANGFLOW_SAVE_DB_IN_CONFIG_DIR 会影响数据库是否随配置目录保存;示例注释特别说明,关闭时数据库可能位于 Langflow 根目录,并可能在卸载时被删除。

生产环境是否应使用 PostgreSQL、如何备份、如何执行迁移以及不同 Worker 配置下的数据库要求,官方仓库资料未提供完整结论。建议以部署文档和数据库运维规范为准。

进阶用法

进阶使用的重点不是增加节点数量,而是把流程转化为可维护、可发布和可审计的服务单元。README 明确提供 API、JSON 导出和 MCP 三条集成方向,可根据调用方技术栈选择交付形态。

从流程到 Python 应用

当调用方已经是 Python 应用时,可以使用 JSON 导出结果作为流程交换格式。JSON 的具体结构、加载方式和版本兼容规则未在资料中给出,因此不能直接假设任意版本都能无修改导入。

实际使用时应把流程定义纳入版本控制,并在测试环境验证模型、检索库、工具和环境变量的完整组合。流程中的密钥不应以明文写入导出的项目文件;仓库配置中提供了 LANGFLOW_REMOVE_API_KEYS,可用于控制是否移除保存在数据库项目中的 API Key,但其具体执行时机仍应查阅官方文档。

通过 API 集成

API 部署适合由其他应用把 Langflow 工作流当作服务调用。调用链通常包含请求认证、输入校验、流程执行和结果返回四个边界;当前资料只确认“可部署为 API”,没有提供端点和请求示例。

在场景 A 中,调用方已有标准 HTTP 服务体系并需要将工作流作为内部能力复用时,可优先评估 API 方式;在场景 B 中,调用方遵循 MCP 客户端协议并希望把工作流暴露为工具时,应评估 MCP 方式。该建议基于 README 对两类交付方式的明确描述,不代表两者在所有环境下具有相同的认证和运维特性。

通过 MCP 暴露工具

MCP(Model Context Protocol)服务器能力可以把工作流转换为 MCP 客户端可使用的工具。工作流本身是工具的执行内容,客户端负责按照 MCP 交互方式发现或调用工具;资料没有给出工具名称生成规则、参数模式和传输层配置。

启用该方式前,应明确哪些流程允许被外部客户端调用,并为每个工具设置最小权限。涉及文件、网络、数据库或第三方模型的流程,必须在授权环境中验证输入边界、资源消耗和错误传播。

可观测性与运维

README 将可观测性(Observability)列为功能,并列出 LangSmith、LangFuse 等集成。仓库还提供日志级别、日志文件、日志轮转和 Alembic 标准输出等配置入口,能够为本地和部署环境提供基础运维控制。

  • LANGFLOW_LOG_LEVEL:控制日志级别。
  • LANGFLOW_LOG_FILE:指定日志文件路径。
  • LANGFLOW_LOG_ROTATION:配置日志轮转的时间或大小表达式,示例为 10 MB1 day
  • LANGFLOW_ALEMBIC_LOG_TO_STDOUT:控制数据库迁移相关日志是否输出到标准输出。
  • LANGFLOW_WORKERS:指定 Worker 进程数量,但资料没有提供推荐值。

可观测性集成的具体安装步骤、事件字段、采样策略、数据保留期限和费用边界没有出现在所提供资料中。根据本文作者的经验判断,接入外部追踪服务前应先确认提示词、用户输入、检索内容和工具结果是否会被记录,以及这些数据是否满足组织的隐私和数据驻留要求。

部署与变更管理

README 说明项目可以部署到主要云平台,并提供部署指南入口。本文不列出未在资料中出现的云平台名称、镜像版本、反向代理配置或自动扩缩容参数。

建议将 Python 包版本、扩展包解析结果、环境变量和流程定义作为一个发布单元进行审查。对于文档站点,docs/README.md 明确给出了 Docusaurus 版本化流程,可通过版本快照维护不同文档版本,但这只适用于文档内容,不等同于应用运行时版本管理。

安全与合规边界

Langflow 可以连接模型、向量数据库、外部工具和 MCP 客户端,因此安全边界同时覆盖凭据、业务数据、工具权限和网络访问。README 提供 Security Policy 入口,但当前资料没有列出漏洞编号、修复承诺、默认安全基线或 SLA(Service Level Agreement,服务级别协议)。

授权环境使用

本文只讨论在自有、测试或已获明确授权的环境中部署和调试 Langflow。不得使用流程、工具或模型连接去访问未授权系统,不得将 MCP 工具当作绕过目标系统认证或检测机制的手段。

  • API Key、超级用户密码和数据库连接字符串应通过受控配置注入,不应提交到源码仓库。
  • 关闭自动登录时,必须按示例配置 LANGFLOW_SUPERUSER_PASSWORD;密码强度、轮换周期和存储策略需由部署方定义。
  • 使用 LANGFLOW_API_KEY_SOURCE=env 时,应设置对应的 LANGFLOW_API_KEY;其值仅可使用测试或受控环境中的占位凭据。
  • 流程若处理个人信息、内部文档或机密提示词,应先确认模型供应商、可观测性服务和向量存储的处理条款。
  • 自定义 Python 组件应限制文件系统、子进程、网络和凭据访问,不能仅因组件运行在可视化流程中就视为安全。

仓库资料未提供完整的隐私政策、数据保留规则、合规认证和企业安全配置清单。对于金融、医疗、政务或其他受监管场景,应在上线前完成组织内部安全评审,并以仓库 Security Policy 和目标服务条款为准。

许可证与商用条款

项目使用 MIT License。根据仓库中的 LICENSE,许可授予获得软件和相关文档的人员使用、复制、修改、合并、发布、分发、再许可和销售软件副本的权利,但必须满足许可证列出的条件。

  • 可以将软件用于商业用途,MIT 文本没有禁止商用。
  • 分发软件或其重要部分时,必须保留版权声明和许可声明。
  • 软件按“AS IS”提供,许可证明确排除适销性、特定用途适用性和不侵权等保证。
  • 许可证同时限制作者对使用软件产生的索赔、损害或其他责任承担范围,具体以仓库 LICENSE 原文为准。

商用时还要单独审查依赖包、模型服务、向量数据库、可观测性服务和用户数据处理条款。MIT 许可证只说明 Langflow 仓库本身的许可条件,不能自动覆盖其依赖项或外部服务的许可证与合同要求。

局限性与已知限制

当前资料足以确认项目定位、安装入口和主要能力,但不足以支撑生产容量或接口兼容性承诺。下面列出的是资料中明确缺失的决策信息,而不是未经验证的故障清单。

  • 官方仓库未提供完整的性能基准、吞吐量、并发上限和延迟数据。
  • 官方仓库未提供生产环境所需的 CPU、内存、磁盘和网络规格。
  • 官方仓库未提供 API 的完整端点、请求响应模式和错误码列表。
  • 官方仓库未提供 MCP 工具发现、认证和传输配置的完整接口说明。
  • 官方仓库未提供所有模型、向量数据库和 AI 工具扩展的兼容矩阵。
  • 资料没有给出数据库备份恢复、迁移回滚和高可用方案。
  • 资料没有给出安全漏洞清单、修复时限、SLA 或商业支持承诺。
  • Docker 示例使用 latest,资料未给出固定镜像摘要或对应源码提交。

这些缺口不表示功能不可用,而是表示不能仅依据当前摘要作出容量、稳定性或合规结论。正式选型时,应对目标流程进行端到端测试,并核对最新 README、部署指南、Security Policy 和许可证文件。

适合谁

以下判断以仓库公开能力和运行方式为依据,适合通过可视化流程快速验证 AI 应用,并且愿意保留 Python 定制和服务化集成能力的团队。

  • 需要通过图形界面编排模型、检索、对话管理和工具调用,并希望在调试阶段逐步观察流程结果的团队。
  • 已经使用 Python,希望在可视化流程基础上修改或编写自定义组件的开发者。
  • 需要把同一工作流导出为 JSON、通过 API 集成,或暴露为 MCP 工具的应用团队。
  • 希望在本地使用 uv 安装,或使用官方 Docker 示例快速建立隔离测试环境的个人开发者和小型研发团队。
  • 需要接入多个模型、向量数据库或 AI 工具,并愿意单独核验对应 lfx-* 扩展依赖的项目。

不适合谁

以下信号说明项目需要额外评估,或者应优先寻找组织内部已经验证过的替代部署方案。这里的“不适合”指当前资料无法证明满足要求,而不是断言项目一定无法满足。

  • 要求明确的并发上限、延迟指标、SLA 或云平台资源规格,但在评估前无法自行完成压测和容量验证的团队。
  • 需要完整、稳定且已公开记录的 API 与 MCP 接口契约,而当前版本资料没有提供相应签名和兼容矩阵的项目。
  • 处理严格受监管数据,且组织无法审查模型供应商、可观测性服务、向量数据库和外部工具的数据流向。
  • 不允许运行 Python 自定义代码,或无法为流程组件提供文件系统、网络和凭据隔离的生产环境。
  • 只需要一个固定的静态问答接口,不需要可视化编排、多代理、检索、API 导出或 MCP 集成的项目。

在场景 A 中,团队能够自行承担组件审计、部署加固和接口验证时,Langflow 的开放源码与 Python 定制能力具有评估价值;在场景 B 中,如果组织要求供应商直接提供明确的商业支持、SLA 和合规证明,则应将具备这些书面承诺的替代方案纳入比较。

常见问题与排查(FAQ / Troubleshooting)

排查应从安装约束、启动命令、地址端口和配置覆盖关系开始。资料没有提供完整错误码,因此以下只覆盖能够由 README 和 .env.example 直接支持的检查项。

Q1:安装命令执行失败怎么办

先确认 Python 版本满足 >=3.10,<3.15,并确认已安装 uv。若使用了仓库源码而不是 Python 包,应在仓库根目录执行 README 指定的 make run_cli,不要把源码运行方式和包安装方式混用。

Q2:启动后无法访问 7860 端口怎么办

确认 uv run langflow run 进程仍在运行,并访问 README 指定的 http://127.0.0.1:7860。Docker 方式则检查是否使用了 -p 7860:7860,同时确认宿主机端口没有被占用;主机和端口也可能受到 LANGFLOW_HOSTLANGFLOW_PORT 配置影响。

Q3:如何关闭自动登录

LANGFLOW_AUTO_LOGIN 设置为 false,并设置 LANGFLOW_SUPERUSER_PASSWORDLANGFLOW_SUPERUSER 在示例中标记为可选;具体登录流程和超级用户创建行为应以当前版本文档为准。

Q4:如何选择 API Key 校验来源

LANGFLOW_API_KEY_SOURCE 可使用 dbenv。示例注释说明,db 用于校验数据库中的 API Key,env 用于校验 LANGFLOW_API_KEY 环境变量;敏感值应使用部署系统注入,本文不提供真实密钥。

Q5:Redis 缓存配置需要哪些变量

LANGFLOW_CACHE_TYPE 设置为 redis 时,示例要求设置 LANGFLOW_REDIS_HOSTLANGFLOW_REDIS_PORTLANGFLOW_REDIS_DBLANGFLOW_REDIS_CACHE_EXPIRE。这些变量的完整默认值在当前资料中未提供,不能据此填写固定值。

Q6:如何运行文档站点

文档站点和 Langflow 应用是两个不同的运行目标。根据 docs/README.md,文档站点使用 npm install 安装依赖,使用 npm run start 本地开发,使用 npm run build 生成静态内容。

项目地址与资源

以下链接均来自仓库元信息、README 或仓库文档资料。外部模型、数据库和观测服务的具体使用条件,应在相应官方页面中单独核验。