
Langflow:面向 AI Agent、API 与 LLM 的拖拽式流程构建工具
我最近一直在探索一个叫Langflow的工具。
如果你曾经试着把LLMs、APIs和各种工具连起来,你就会知道那种挫败感——太乱了。
一大堆样板代码,好多问题像“为什么这个不工作”,通常花太多时间在设置上。
Langflow试图让这一切变得更容易。
它基本上就是一个AI工作流的视觉构建器。
拖动东西,连接块,突然你就有一个agent,能执行任务比如抓取URL或解决数学问题。
当你准备好了,你可以直接把它跑成一个API。
初印象
那么你到底能得到什么?一个画布,你可以把组件拖进去:LLMs、inputs、outputs和tools。你把它们连起来。就完了。
好的部分:如果你不喜欢被限制,你可以打开Python那边自定义东西。所以它不只是拖拽——它还可hack。
它支持最受欢迎的工具,包括OpenAI、vector databases和Groq,还有其他。它内置了observability,这通常是我等到出问题才想起来要加的。
安装方法
这里是我一开始有点卡住的地方,因为有大概四种安装方式。
最简单的路径,抓Langflow Desktop。下载,点击,就好了。适用于macOS 13+和Windows。
如果你喜欢容器,就跑Docker image:
docker run -p 7860:7860 langflowai/langflow:latest
打开http://localhost:7860,你就进去了。
我的选择?Python package。更灵活。这里是我需要的最基本的东西:
uv venv myenv
source myenv/bin/activate # Mac/Linux
myenv\Scripts\activate # Windows
uv pip install langflow
uv run langflow run
然后它在http://127.0.0.1:7860 启动了。
大概花了两分钟。
探索Simple Agent的实际运行
我从“Simple Agent”模板开始。它基本上是:
Chat input → Agent → Tools (Calculator + URL fetch) → Chat output
我问它:“Add 4 and 4。”
它回复:“The answer is 8。”
然后我问当前新闻,它从URL tool拉取。没什么惊天动地的,但它展示了这些部分是怎么拼起来的。
我最喜欢什么?你可以看到agent的推理一步一步。它不觉得像个黑箱。
通过代码应用
一旦我让一个flow跑起来,我想从Python调用它。幸好Langflow让这变得容易。
import requests
url = "http://localhost:7860/api/v1/run/FLOW_ID"
payload = {
"output_type": "chat",
"input_type": "chat",
"input_value": "hello world!"
}
headers = {
"Content-Type": "application/json",
"x-api-key": "YOUR_LANGFLOW_API_KEY"
}
res = requests.post(url, jsnotallow=payload, headers=headers)
print(res.json())
就是这样。你打/run endpoint,flow就干活了。
一个聊天循环
为了好玩,我把它包成一个终端chatbot。没什么花哨的。
def ask_agent(q):
payload = {"output_type": "chat", "input_type": "chat", "input_value": q}
headers = {"Content-Type": "application/json", "x-api-key": "YOUR_KEY"}
res = requests.post(url, jsnotallow=payload, headers=headers)
data = res.json()
return data["outputs"][0]["outputs"][0]["outputs"]["message"]["message"]
prev = None
while True:
q = input("Ask something: ")
if q == "quit":
break
elif q == "compare":
print("Last answer:", prev if prev else "none")
continue
ans = ask_agent(q)
print("Agent:", ans)
prev = ans
现在我可以问它问题,然后打“compare”看它上次说什么。傻乎乎的,但挺有趣。
一个巧妙的技巧:你可以只为单次运行覆盖东西。比如,如果我通常跑OpenAI但想为一个query试Groq,我加一个“tweaks”对象到payload。
payload = {
"output_type": "chat",
"input_type": "chat",
"input_value": "hello world!",
"tweaks": {
"Agent-ZOknz": {
"agent_llm": "Groq",
"api_key": "GROQ_API_KEY",
"model_name": "llama-3.1-8b-instant"
}
}
}
它是临时的,所以我不搞乱原flow。
Langflow达到了一个不错的平衡:简单到你可以点来点去几分钟建好东西,但又灵活到能真正集成进app。
如果你是AI agents的新手,从Desktop或Docker开始。如果你更像开发者,我推荐用Python package。
虽然它不完美——偶尔需要点耐心启动东西,documentation还在赶上——但它仍是我用过的最无缝的AI工作流工具之一。
本文转载自AI大模型观察站,作者:AI研究生
