欢迎来到我的博客!这里是我记录编程世界旅程的开始 🎉
本博客的目的
在这个博客中,我将记录我的课程学习记录,展示我的项目,并分享我在编程过程中个人的反思。我的目标是创造一个供学习和分享知识的空间,与同样热爱编程的朋友们交流。
期待的内容
- 学习记录 🗒️: 来自我课程的笔记和见解。
- 项目展示 💻: 对我个人项目及其开发过程的详细介绍。
- 个人反思 📓: 在我编程旅程中所学到的思想和经验。

分享关于技术、生活与创意的见解
欢迎来到我的博客!这里是我记录编程世界旅程的开始 🎉
在这个博客中,我将记录我的课程学习记录,展示我的项目,并分享我在编程过程中个人的反思。我的目标是创造一个供学习和分享知识的空间,与同样热爱编程的朋友们交流。

信息技术硕士,计算方向
墨尔本大学
2024年2月 - 2025年12月
相关课程: 编程与软件开发,计算机网络,数据结构与算法,数据库系统,分布式系统,集群与云计算,声明式编程,机器学习,软件过程与管理,信息可视化
一句话总结: ChatGPT是自回归文本生成器(System2,负责写句子、长推理);Jev是单步概率决策器(System1,只做选择/打分,不生成任何文本)
{"result":"A"},它也要逐个生成JSON里每一个字符,输出越长,步数越多、越慢全称:Society for Worldwide Interbank Financial Telecommunication,中文叫环球银行金融电信协会,大家习惯直接称SWIFT系统。
✅ 关键点:它不是资金清算系统,只是金融报文(指令)传输网络,不实际转账、不保管资金
架构分支起源:2017 年谷歌发布 Transformer,用自注意力机制解决传统 RNN 训练循环依赖、效率低下的问题,后续衍生出 Encoder-Only 的 BERT、Encoder-Decoder 的 T5、Decoder-Only 的 GPT 三大技术分支。
各分支核心贡献:BERT 验证预训练加微调范式的可行性,大幅降低下游任务训练成本;T5 统一所有 NLP 任务的文本输入输出格式,公开大规模语料库 C4,为后续提示词工程打下基础。
GPT 路线探索:OpenAI 先后推出 GPT1 到 GPT3 系列,提出缩放定律、上下文学习等核心结论,证明无需微调仅靠提示词即可完成不同任务,大幅降低任务切换成本。
胜出核心逻辑:Decoder-Only 架构训练样本构造简单,训练与推理目标完全一致,结构精简便于参数堆叠和工程落地,规模扩大后效果随算力投入稳定提升,最终成为通用大模型的主流选择。
LangGraph 运行时底层基于自研的 Pregel 运行时,其核心思想借鉴了 Google Pregel 计算模型,用于组织和执行复杂的图计算流程。
LangGraph和LangChain的版本迭代及定位LangChain 1.x 的定位发生了明显变化:旧式 Chain、Retriever、Memory 等组件被迁移至 langchain-classic;LCEL 保留为 langchain-core 的底层组合机制,但不再是主要开发入口。
add_edge 用于在两个节点之间添加一条有向边。边是图结构中最基本的元素之一,节点之间的执行顺序、分支跳转以及循环控制,最终都依赖节点和边共同表达。
因此,在 LangGraph 中,基础的控制流结构都可以通过 add_edge 进行构建。
示例如下:
from langgraph.graph import StateGraph, START, END
from typing import TypedDict
class OverAllState(TypedDict):
username: str
greeting: str
output: str
def node_a(state: OverAllState) -> OverAllState:
return {
"greeting": "Dear " + state["username"]
}
def node_b(state: OverAllState) -> OverAllState:
return {
"output": state["greeting"] + ",你好!"
}
builder = StateGraph(state_schema=OverAllState)
builder.add_node("node_a", node_a)
builder.add_node("node_b", node_b)
builder.add_edge(START, "node_a")
builder.add_edge("node_a", "node_b")
builder.add_edge("node_b", END)
graph = builder.compile()
res = graph.invoke({"username": "小黄"})
print(res)
from IPython.display import display
display(graph)
在工作流、Agent、任务编排系统里,可恢复执行 Durable Execution 指的是:
把一次任务执行过程中的关键进度、状态、结果保存到可靠存储中,使任务可以在中断、失败、等待外部输入后继续执行。
它解决的是“执行过程能否恢复”的问题。
例如:
普通执行:
开始 -> A -> B -> C
如果执行到 B 后程序挂了,重启后可能只能从 A 重新开始。
可恢复执行:
开始 -> A 保存检查点
-> B 保存检查点
-> C
如果执行到 B 后挂了,恢复时可以从已保存的位置继续。
LangGraph 提供了两种中断机制:
动态中断:在图的任意节点中调用 interrupt() 函数实现
它可以放在代码的任意位置,并且可以根据应用逻辑设置条件触发,所以是动态的。
动态中断提供了人机交互接口,使得调用者可以人为干预计算图的运行,是业务逻辑的一部分。
静态中断:在编译或调用状态图时通过 interrupt_before 和 interrupt_after 参数设置断点
它是在运行前确定的,不能根据业务逻辑条件触发,所以是静态的。
静态中断主要用于调试,不是业务逻辑的一部分。
流式执行(Streaming Execution),是指程序在任务尚未全部完成时,就将执行过程中已经产生的中间结果、状态变化或事件持续输出给调用方,而不是等待整个任务结束后一次性返回最终结果。
简而言之:流式执行就是
边执行、边产生事件、边向调用方返回结果。
LangGraph的流式执行