Skip to content

StateGraph

TIP

StateGraph 是 LangGraph 的核心组件,所有节点共享一个 State 对象。

定义 State

python
from typing import TypedDict, Annotated
from operator import add

class AgentState(TypedDict):
    input: str
    intermediate_steps: Annotated[list, add]
    final_output: str

节点函数

python
def research_node(state: AgentState):
    query = state["input"]
    result = search(query)
    return {"intermediate_steps": [f"research: {result}"]}

def generate_node(state: AgentState):
    context = state["intermediate_steps"]
    output = generate_answer(context)
    return {"final_output": output}

构建图

python
builder = StateGraph(AgentState)
builder.add_node("research", research_node)
builder.add_node("generate", generate_node)
builder.set_entry_point("research")
builder.add_edge("research", "generate")
builder.add_edge("generate", END)

graph = builder.compile()
result = graph.invoke({
    "input": "Transformer 架构是什么?",
    "intermediate_steps": [],
    "final_output": ""
})
print(result["final_output"])