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)
改动成本 要重构 加俩装饰器
标叔的结论 复杂状态用 老代码加能力用

核心建议:两个都能混用 底层是同一个运行时。复杂模块用图,轻量逻辑用函数,放一起跑没毛病。

▸ 向前桥接 本地能跑不算完。下一章讲怎么上线。