Part 3 · 进阶实战
09 Functional API:少写图的另一种写法
09.1 图不是唯一写法
2026 年我最大的惊喜,是 Functional API。
它让你用普通 Python 写流程,照样拿到持久化、记忆、人机协同。
不用声明节点和边。if、for 直接用。
09.2 最小例子
from langgraph.func import entrypoint, task
from langgraph.checkpoint.memory import InMemorySaver
from langgraph.types import interrupt
@task
def write(text: str) -> str:
return f"文章:{text}"
@entrypoint(checkpointer=InMemorySaver())
def flow(topic: str):
essay = write(topic).result() # 调 task,等结果
ok = interrupt({"essay": essay}) # 照样能暂停等人
return {"essay": essay, "ok": ok}
flow.invoke("LangGraph 是什么", {"configurable": {"thread_id": "t1"}})
09.3 两种 API 怎么选
| 维度 | Graph API | Functional API |
|---|---|---|
| 控制流 | 声明式图 | 原生 Python |
| 可视化 | 强(Studio) | 无 |
| 改动成本 | 要重构 | 加俩装饰器 |
| 标叔的结论 | 复杂状态用 | 老代码加能力用 |
核心建议:两个都能混用 底层是同一个运行时。复杂模块用图,轻量逻辑用函数,放一起跑没毛病。
▸ 向前桥接 本地能跑不算完。下一章讲怎么上线。