引言
"Make AI building accessible to everyone."
这是"一天一个开源项目"系列的第 215 篇文章。今天带你了解的项目是 Langflow。
如果你曾经看着 LangChain 的文档感到头皮发麻------各种 Chain、Memory、Retriever 类互相嵌套,代码跑起来不知道数据在哪个环节出了问题------Langflow 就是为了解决这个问题而生的。
它把 LLM 应用开发中的每一个组件(模型、向量库、Prompt 模板、工具、Agent)都变成一个可拖拽的节点,用连线表达数据流向,最终生成一个可直接部署为 API 的 AI 应用。可视化调试、实时测试、一键导出代码,这是目前开源社区里对"让 AI 开发变简单"这件事做得最系统的项目之一。
截至 2026 年,Langflow 在 GitHub 上已积累超过 50,000 Stars,是 AI 应用构建工具里当之无愧的头部开源项目。
你将学到什么
- Langflow 的核心设计理念:用流程图替代代码描述 AI 数据流
- 如何用拖拽方式搭建一个完整的 RAG(检索增强生成)管道
- Langflow 的组件体系:LLM、向量库、Embedding、Agent、工具如何协作
- Python SDK 与 REST API 的使用方式,将 Flow 嵌入现有系统
- 与 n8n、Dify 等同类工具的对比分析
前置知识
- 了解 LLM(大语言模型)的基本工作原理
- 知道 RAG 的概念(检索增强生成)
- Python 基础环境(本地部署需要)
项目背景
项目简介
Langflow 是一个低代码的 AI 应用构建平台,核心功能是提供一个可视化的流程编辑器,让用户通过拖放组件、连接节点的方式,构建 RAG 流水线、多 Agent 系统、对话机器人、数据处理管道等各类 AI 应用。
构建完成后,Langflow 会将整个流程自动暴露为一个 REST API 端点,也可以导出为 Python 代码,直接集成到生产环境。这意味着你在界面上拖出来的流程图,不是一个演示玩具,而是可以直接部署的后端服务。
Langflow 最初基于 LangChain 构建,后来逐步发展为一个独立的生态------它支持 LangChain 组件,也支持大量原生组件,覆盖几乎所有主流 LLM 提供商和向量数据库。
作者/团队介绍
- 开发者:langflow-ai 团队
- 重要背景:2024 年 DataStax(Cassandra 数据库背后的公司)收购了 Langflow,为其提供了商业化支撑和企业级部署能力
- 定位转变:从 LangChain 的可视化 Playground 演进为独立的 AI 应用构建平台
- 项目创建时间:2023 年初
项目数据
- ⭐ GitHub Stars: 50,000+
- 🍴 Forks: 6,000+
- 📦 最新版本: 1.x(持续迭代中)
- 📄 License: MIT
- 🌐 官网: langflow.org
- 🐍 语言:Python(后端)+ TypeScript/React(前端)
主要功能
核心作用
Langflow 解决的核心问题是:AI 应用的开发和调试成本太高。
用纯代码构建一个 RAG 系统,你需要理解 LangChain 的 API 层级结构,手写 Prompt 模板,处理向量检索的参数,调试时只能靠打印语句猜测中间结果。Langflow 把这个过程可视化:
scss
用户上传文档
↓ [文件解析器]
分块文本 (Chunk)
↓ [Embedding 模型]
向量表示
↓ [向量数据库存储]
↑
用户输入问题 → [Retriever] → 相关文本块
↓
[Prompt 模板] + [LLM]
↓
最终回答
每一个方块都是一个可以独立配置和测试的节点,每条连线都代表一份数据流。中间出了问题,点一下节点就能看到它的输入和输出。
使用场景
-
RAG 问答系统
- 上传 PDF、网页、Notion 文档,构建基于私有知识库的问答机器人,接入企业内部知识管理。
-
多 Agent 协作系统
- 将多个 Agent(搜索 Agent、代码 Agent、总结 Agent)用流程图串联,实现分工协作的复杂推理任务。
-
LLM 应用原型快速验证
- 在 Langflow 里拖几分钟先跑通逻辑,验证可行性后再落地为代码,节省早期探索成本。
-
API 服务快速上线
- 构建好 Flow 后,Langflow 自动生成带鉴权的 REST API,不需要自己写 FastAPI 服务。
-
AI 流水线可视化调试
- 在生产问题排查时,用可视化界面复现问题,逐节点追踪数据,比 debug 代码直观得多。
快速开始
方法 1:pip 安装(推荐本地体验)
bash
# 安装
pip install langflow
# 启动(默认 http://localhost:7860)
langflow run
浏览器打开后,从左侧组件库拖出你需要的模块,连线,点右上角 Playground 按钮,直接测试对话。
方法 2:Docker 部署
bash
docker run -p 7860:7860 langflowai/langflow:latest
方法 3:uv(推荐生产部署)
bash
uv pip install langflow
uv run langflow run
用 Python SDK 调用已构建的 Flow
python
from langflow.load import run_flow_from_json
# 导出的 Flow JSON 文件
result = run_flow_from_json(
flow="my_rag_flow.json",
input_value="公司的退款政策是什么?",
tweaks={
"OpenAI-xxxx": {"model_name": "gpt-4o"},
"ChromaDB-yyyy": {"collection_name": "company_docs"}
}
)
print(result)
用 REST API 调用
bash
curl -X POST \
"http://localhost:7860/api/v1/run/{flow_id}" \
-H "Content-Type: application/json" \
-H "x-api-key: your-api-key" \
-d '{"input_value": "公司的退款政策是什么?", "stream": false}'
核心特性
-
拖拽式流程编辑器
- 所见即所得的节点画布,组件之间的数据流向通过连线表达,支持撤销/重做和流程版本管理。
-
覆盖主流提供商的组件库
- LLM:OpenAI、Anthropic、Google Gemini、Groq、Ollama、Mistral、Cohere 等
- 向量库:Chroma、Pinecone、Weaviate、Qdrant、PGVector、Milvus 等
- Embedding:OpenAI、Hugging Face、Cohere、Ollama 等
- 工具:Google Search、DuckDuckGo、Wikipedia、计算器、自定义 Python 函数等
-
内置 Playground 测试
- 流程构建完成后,直接在界面内进行多轮对话测试,无需切换到其他工具。
-
一键暴露 REST API
- 每个 Flow 自动获得一个带版本管理的 API 端点,支持流式输出(SSE),可直接对接前端或其他服务。
-
自定义 Python 组件
- 当内置组件不满足需求时,可以在界面内直接写 Python 代码,封装为自定义节点,和其他组件无缝协作。
-
多 Agent 与 Agent 工具链
- 支持 ReAct、Plan-and-Execute 等 Agent 模式,Agent 节点可以挂载工具列表,构建复杂推理链。
-
Flow 版本与团队协作
- 支持 Flow 的导入/导出(JSON 格式),可以版本化存储,在团队间共享和复用。
-
企业级部署支持
- DataStax 提供商业版(Langflow Cloud),支持 SSO、权限管理、托管部署,开源版本也支持 Docker / Kubernetes 自托管。
项目优势
| 对比项 | Langflow | Dify | n8n |
|---|---|---|---|
| 定位 | AI 应用流程构建 | AI 应用构建平台(含运营后台) | 通用自动化工作流 |
| 技术深度 | 深,覆盖 Embedding/向量检索/Agent 细节 | 中,封装程度更高,配置更少 | 浅,AI 能力是插件之一 |
| 自定义能力 | Python 代码组件,灵活度高 | 较有限 | JavaScript 代码节点 |
| LLM 支持广度 | 极广(20+ 提供商) | 广(主流均支持) | 通过 HTTP 调用,间接支持 |
| 开源协议 | MIT | MIT | Fair-code(商用受限) |
| 学习曲线 | 需要理解 LLM/RAG 概念 | 更平缓 | 较平缓 |
| Stars | 50,000+ | 60,000+ | 50,000+ |
为什么选择 Langflow?
- 需要深度控制 RAG 流水线每个环节的参数(Chunk size、Retrieval Top-K、Reranker 等)
- 团队里有 Python 工程师,需要在可视化和代码之间灵活切换
- 想把构建好的 AI 能力快速暴露为标准 API,集成到现有系统
项目详细剖析
1. 架构设计:前后端分离的流程执行引擎
Langflow 的整体架构分为三层:
css
┌─────────────────────────────────────────────┐
│ 前端:React + TypeScript │
│ 节点编辑器 / Playground / API 管理界面 │
└─────────────────────────────────────────────┘
↕ REST API / WebSocket
┌─────────────────────────────────────────────┐
│ 后端:Python FastAPI │
│ 流程解析引擎 / 组件注册表 / 执行调度器 │
│ Flow JSON → 执行图 → 逐节点运行 │
└─────────────────────────────────────────────┘
↕
┌─────────────────────────────────────────────┐
│ 组件层:LangChain + 原生组件 │
│ LLM / Embeddings / VectorStore / Tools │
│ 每个组件是一个独立的 Python 类 │
└─────────────────────────────────────────────┘
前端用 React Flow 实现节点画布,每个节点的配置通过 JSON 序列化,发送给后端执行引擎。后端解析 Flow JSON,构建有向无环图(DAG),按拓扑顺序执行每个节点,将输出传给下游节点。
2. 组件体系:一切皆 Component
Langflow 最聪明的设计是它的组件抽象层 。每一个功能单元------不管是 OpenAI 的 GPT-4o 还是你自己写的 Python 函数------都继承自同一个 Component 基类:
python
from langflow.custom import Component
from langflow.io import MessageTextInput, Output
from langflow.schema import Data
class MyCustomComponent(Component):
# 显示名称(在界面左侧组件库展示)
display_name = "我的自定义组件"
description = "一个示例自定义组件"
# 定义输入端口
inputs = [
MessageTextInput(
name="input_text",
display_name="输入文本",
info="待处理的文本内容"
),
]
# 定义输出端口
outputs = [
Output(
display_name="处理结果",
name="output",
method="process_text"
),
]
def process_text(self) -> Data:
# 组件的核心逻辑写在这里
result = self.input_text.upper() # 示例:转大写
return Data(data={"text": result})
这个设计的好处:
- 任何 Python 逻辑都能封装为组件,无需适配复杂接口
- 类型系统自动推断连线兼容性:输出类型和输入类型不匹配时,界面会给出提示
- 组件配置自动生成 UI :在类里声明
inputs,界面上的配置面板自动生成,不需要单独写前端代码
3. RAG 流水线的典型构建方式
以"基于 PDF 文档的问答系统"为例,在 Langflow 中一个完整的 RAG 流程由以下节点组成:
ini
[PDF 文件输入]
↓
[文档解析器 (PyPDF / Unstructured)]
↓
[文本分割器 (RecursiveCharacterTextSplitter)]
chunk_size=1000, overlap=200
↓
[Embedding 模型 (OpenAI text-embedding-3-small)]
↓
[向量数据库 (Chroma / Pinecone)]
↑
[用户输入 (Chat Input)] → [Retriever]
↓
[相关文档块(Top-K=4)]
↓
[Prompt 模板]
"根据以下上下文回答问题:
{context}
问题:{question}"
↓
[LLM (GPT-4o / Claude Sonnet)]
↓
[Chat Output(流式输出)]
每个节点的参数(chunk_size、Top-K、模型名称、Prompt 模板内容)都可以直接在节点的配置面板里修改,改完直接在 Playground 里重新测试,调参效率比改代码高很多。
4. Flow 的导出与代码化
Langflow 不是一个黑盒------构建好的 Flow 可以导出为两种格式:
1. JSON 格式(用于部署或版本管理)
json
{
"name": "RAG 问答系统",
"description": "基于公司文档的问答机器人",
"nodes": [
{"id": "openai-1", "type": "OpenAIModel", "data": {"model_name": "gpt-4o"}},
{"id": "chroma-1", "type": "Chroma", "data": {"collection_name": "docs"}},
...
],
"edges": [
{"source": "chroma-1", "target": "openai-1", "sourceHandle": "documents", "targetHandle": "context"}
]
}
2. Python 代码(用于完全脱离 Langflow 运行)
导出的 Python 代码直接调用 LangChain 或底层 SDK,可以在任何 Python 环境中运行,不再依赖 Langflow 服务。这意味着 Langflow 可以只作为开发和调试工具,生产环境跑的是纯粹的 Python 代码。
5. 与 MCP 的集成
Langflow 1.x 开始支持将 Flow 暴露为 MCP 工具,让 Claude Code、Cursor 等 AI 开发工具直接调用你在 Langflow 里构建的 AI 流程:
json
// Claude Code 的 MCP 配置
{
"mcpServers": {
"my-rag-flow": {
"url": "http://localhost:7860/api/v1/mcp/flows",
"apiKey": "your-langflow-api-key"
}
}
}
配置完成后,在 Claude Code 对话里就可以说:"查一下我们公司的退款政策"------Claude 会通过 MCP 调用你在 Langflow 里搭好的 RAG 系统,返回基于真实文档的答案。
项目地址与资源
官方资源
- 🌟 GitHub : github.com/langflow-ai...
- 📚 文档 : docs.langflow.org
- ☁️ 云服务 : astra.datastax.com(DataStax 提供的托管版本)
- 💬 Discord : 社区讨论频道
- 🐛 Issues : GitHub Issues
相关资源
- LangChain 官方文档(Langflow 底层依赖)
- React Flow(Langflow 前端节点画布所用库)
- FastAPI 文档(Langflow 后端框架)
总结与展望
核心要点回顾
- 可视化流程编辑器:用节点和连线描述 AI 数据流,替代嵌套的 LangChain 代码,大幅降低 RAG/Agent 应用的开发和调试成本
- 覆盖 20+ LLM 提供商:从 OpenAI、Anthropic 到 Ollama 本地模型,一个平台统一接入
- 自定义 Python 组件:内置组件不够用时,直接在界面里写 Python 扩展,灵活性不打折
- 一键 API 部署:Flow 构建完成即可得到标准 REST API,无需额外开发后端服务
- 可导出为 Python 代码:不锁定平台,随时脱离 Langflow 在纯 Python 环境运行
适用人群
- AI 应用开发者:想快速原型验证 RAG 方案,或者需要可视化调试复杂 Agent 流程
- 产品经理/数据科学家:不擅长后端开发,但需要构建基于私有文档的问答系统
- 企业技术团队:需要一个标准化的 AI 应用构建平台,让团队成员共享和复用 Flow
- AI 教育/研究:用可视化界面理解 RAG 和 Agent 的工作原理,比看代码直观得多
一句话评价
Langflow 是目前开源社区里把"AI 应用构建"这件事做得最系统的工具------它让 RAG 和 Agent 的开发门槛从"会写 LangChain 代码"降低到了"会连线",同时又没有牺牲深度控制能力。
欢迎访问 PrimeSkills ------ 一个精心策划的 AI Agent 与技能市场,所有内容均经过真实企业级工作流验证。没有噱头,只有真正有效的东西。
更多实用知识和有趣产品,欢迎访问我的个人主页