Langgraph示例

第四章:第一个完整示例(逐行讲解)

我们来写一个最简单的"问答 Agent":接收问题 → 处理 → 返回答案。

4.1 完整代码

新建文件 first_agent.py:

python

python 复制代码
from typing import TypedDict
from langgraph.graph import StateGraph, START, END

# ---------- 1. 定义状态(公共黑板) ----------
class State(TypedDict):
    question: str
    answer: str

# ---------- 2. 定义节点(工人) ----------
def process_question(state: State):
    question = state["question"]
    answer = f"收到你的问题:{question}。这是来自节点的回答。"
    return {"answer": answer}

# ---------- 3. 创建图 ----------
builder = StateGraph(State)

# ---------- 4. 添加节点 ----------
builder.add_node("processor", process_question)

# ---------- 5. 连边 ----------
builder.add_edge(START, "processor")
builder.add_edge("processor", END)

# ---------- 6. 编译 ----------
graph = builder.compile()

# ---------- 7. 运行 ----------
result = graph.invoke({"question": "LangGraph 是什么?"})
print(result)

4.2 逐行解释

第 1-2 行:导入需要的工具。TypedDict 定义状态类型,StateGraph、START、END 是 LangGraph 的核心组件。

第 5-7 行:定义 State。这里规定黑板上有两个字段:question 和 answer,都是字符串。

第 10-13 行:定义节点函数 process_question。它接收 state,从里面取出 question,生成一个 answer,然后返回 {"answer": answer}。这个返回值会自动合并到 State 中。

第 16 行:创建图构建器,指定用 State 作为状态类型。

第 19 行:把 process_question 函数作为一个节点加入图,名字叫 "processor"。

第 22-23 行:连边。START → processor 表示从起点进入这个节点;processor → END 表示节点执行完就结束。

第 26 行:compile() 把图编译成可执行对象。必须编译才能运行。

第 29 行:invoke() 传入初始状态运行图,返回值就是最终状态。

4.3 运行结果

python 复制代码
bash

python first_agent.py
输出:

python

{'question': 'LangGraph 是什么?', 'answer': '收到你的问题:LangGraph 是什么?。这是来自节点的回答。'}
相关推荐
进击的雷神8 小时前
不预测数字,而是重演未来:多智能体仿真引擎 MiroFish 上手体验
ai·开源·mirofish
dozenyaoyida8 小时前
AI与大模型新闻日报 | 2026-11-08
人工智能·搜索引擎·ai·大模型·新闻
IT规划师10 小时前
热点速递 | Chrome、Edge、Firefox、MDN 把 Web 最佳实践做成 Skill
ai编程
Solange__11 小时前
Blender 3D模型优化:普通复制、共享网格、实例、合并怎么选?
人工智能·3d·ai·自然语言处理·编辑器·blender·材质
菩提小狗15 小时前
每日极客日报 · 2026年11月13日
ai·开源·极客日报·it热点·技术资讯
效率工作实验室16 小时前
企业级AI Agent平台前十名解析:按部署需求挑对更省心
ai·企业级ai·agent平台·agent平台怎么选·agent私有化部署
效率工作实验室18 小时前
2026主流AI Agent平台推荐榜单:多维度对比与选型指南
ai·企业级ai·agent平台·agent平台对比·agent平台推荐
ZzT18 小时前
Claude Code 连续压缩 3 次,丢掉 33% 到 57% 的用户指令;/compact 后加一段提示词降到 0
ai编程·claude
码云社区18 小时前
能碳管理系统开发要关注什么?能源数据、统计口径与AI分析的衔接
java·人工智能·ai·能源·能源管理系统·能碳管理系统·能碳管理系统源码
ZhengEnCi19 小时前
小白用 AI 做官网完全指南:不用框架的六格清单,双击就能打开
前端·html·ai编程