
使用Scala Play框架构建REST API
维度 | 传统单一 Agent | LangGraph 多 Agent |
---|---|---|
控制流 | 线性、易失控 | 图结构、循环/分支原生支持 |
状态管理 | 会话级记忆 | 持久化快照、可回溯 |
人审干预 | 事后补救 | 任意节点可插人审 |
调试体验 | 黑盒日志 | 节点级可视化、时间旅行 |
LangGraph 是 LangChain 团队 2024 年开源的图式 Agent 编排框架,2025 Q2 发布 Cloud-Native GA,支持 Serverless 自动扩缩 与 零停机热更新。一句话:如果你想让多个大模型像一支足球队一样配合,LangGraph 就是教练。
平台 | 一键注册 | 免费额度 |
---|---|---|
LangSmith(调试) | https://smith.langchain.com | 5K runs/月 |
LangGraph Cloud(部署) | https://cloud.langgraph.com | 50 GPU-min/日 |
New Project
→ 选择模板 Multi-Agent Travel Planner Visual Editor
📌 画布说明(表格速查)
节点 | 角色 | 使用模型 | 输出 |
---|---|---|---|
📅 行程规划器 Planner | 中央路由 | gpt-4o-mini | 任务拆分 JSON |
✈️ FlightAgent | 机票比价 | gpt-4-turbo | 航班列表 |
🏨 HotelAgent | 酒店搜索 | claude-3.5-sonnet | 酒店列表 |
🧳 LocalGuide | 地接推荐 | gemini-1.5-pro | 景点+餐厅 |
点击 Deploy
→ 获得 HTTPS Endpoint:
https://api.langgraph.app/run/travel-planner-{your-id}
用 curl 测试:
curl -X POST https://api.langgraph.app/run/travel-planner-{your-id} \
-H "Content-Type: application/json" \
-d '{"query":"带爸妈去东京5天,预算2万,行程不要太累"}'
返回结果(截断):
{
"status": "success",
"plan": {
"flights": {...},
"hotels": {...},
"itinerary": {...}
},
"total_cost": "¥19,800"
}
pip install "langgraph[cli]" # 官方 CLI
langgraph new multi-agent-tutorial
cd multi-agent-tutorial && langgraph up
# 浏览器自动打开 http://localhost:8000/ui
需求:在旅行规划结束后,每 12 小时监控机票价格变化,降价即推送。
步骤 1:编写节点函数
from langgraph.graph import StateGraph
from typing import TypedDict
class TravelState(TypedDict):
plan: dict
alerts: list
def price_monitor(state: TravelState):
# 调用 Skyscanner API 获取最新价格
new_price = skyscanner.fetch(state["plan"]["flights"]["id"])
if new_price < state["plan"]["flights"]["price"]:
state["alerts"].append({"type": "price_drop", "new_price": new_price})
return state
步骤 2:插入循环边
builder = StateGraph(TravelState)
builder.add_node("planner", planner)
builder.add_node("monitor", price_monitor)
# 先规划,再进入监控循环
builder.add_edge("planner", "monitor")
builder.add_edge("monitor", "monitor") # 自循环
步骤 3:在 UI 中可视化调试
本地 UI 支持拖拽添加节点,右键节点 → Edit Node
可直接修改 Python 代码并热重载。
角色 | 描述 | 工具 |
---|---|---|
🕵️ 采访 Agent | 爬取 30+ 源 | Jina Reader |
✍️ 撰稿 Agent | 生成 600 字快讯 | gpt-4o |
✅ 事实核查 Agent | 交叉验证 3 源 | Google Fact Check Tools |
👩💻 编辑 Agent | 润色 + 起标题 | claude-3.5 |
代码片段(精简):
from langgraph.prebuilt import create_react_agent
interviewer = create_react_agent(
llm=ChatOpenAI(model="gpt-4o"),
tools=[JinaReader(), GoogleFactCheck()]
)
节点 | 功能 | 模型 | 输出 |
---|---|---|---|
🔍 数据收集 Agent | 抓取财报 + 新闻 | 自研 FinBERT | JSON |
🧮 估值 Agent | DCF + 相对估值 | gpt-4-turbo | FairPrice |
⚠️ 风险 Agent | 舆情情感 + 异常检测 | claude-3.5 | RiskScore |
📈 组合优化 Agent | 马克维茨再平衡 | 自建 OR-Tools | 调仓指令 |
全部节点通过 共享内存 传递 RiskState
,延迟 2 秒。
指标 | 目标 | 手段 |
---|---|---|
冷启动 | 3 s | 预置 GPU 池 |
节点延迟 | P95 800 ms | 流式输出 + 并行 |
吞吐 | 100 req/s | 水平分片 |
使用 LangSmith Cost Dashboard
工具 | 用途 | 地址 |
---|---|---|
🐞 LangSmith Trace | 节点级链路追踪 | https://smith.langchain.com |
📓 Weave 日志 | 自定义指标 | https://wandb.ai/site/weave |
📊 Prometheus | 系统级监控 | https://prometheus.io |
🚨 PagerDuty | SLA 告警 | https://pagerduty.com |
如果你在 2025 年想让 AI 真正“协作”而非“单打独斗”,LangGraph 是目前最成熟的选择。