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"])