我最近一直在探索一個叫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, json=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, json=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最新技術。