#8950·langgraph

add_node: 结点协议使 `state` 参数名在类型检查器中起到重要作用

作者: AndreaBozzo创建于 2026年9月17日更新于 2026年9月17日
标签external

libs/LangGraph/LangGraph/graph/_node.py:

python
class _Node(Protocol[NodeInputT_contra]):
    def __call__(self, state: NodeInputT_contra) -> Any: ...

state 不是只能通过位置传递,因此:

  1. 节点的第一个参数必须命名为 state,尽管 _internal/_runnable.py 会通过位置传递(args = (input,),然后 self.func(*args, **kwargs));
  2. Callable[[State], Awaitable[...]] 永远无法满足协议,因为 Callable 参数是只能通过位置传递的 - 因此使用具有 Callable 别名的节点工厂总是会失败,无论函数的名称如何。

内容来源: langchain-ai/langgraph