Skip to content

estelledc/langchain-langgraph-langsmith-tutorial

Repository files navigation

layout default
title LangChain Tutorial Zero
description 一套面向初学者的中文 AI 辅助编程教程:用任务卡、苏格拉底式 prompt、可执行参考与卡点日志学习 LangChain、LangGraph 和 LangSmith。
image /assets/og-tutorial-zero.png
last_modified_at 2026-07-11
持续维护 Chinese · learning by building · LangChain 1.3.2

把 AI 从“答案机”,变成你的编程学习搭档。

LangChain Tutorial Zero 面向刚接触 AI 应用开发的中文学习者。你不会从复制完整答案开始,而会沿着 16 篇任务卡,在自己的 _scratch/ 里动手、对照、解释,再把卡点留下来。

English summary. A Chinese, beginner-oriented learning system for LangChain, LangGraph, and LangSmith. Sixteen guided lessons pair Socratic AI prompts with hands-on tasks, executable references, self-checks, and a learning journal.

learning-session.md
$ goal
理解 StateGraph,不复制完整答案

$ ask-ai 先用“地铁线路图”类比,只问我一个问题

✓ build _scratch/my_graph.py ✓ compare final/02_langgraph/01_simple_graph.py ✓ explain 为什么条件边决定下一站

→ journal: 写下卡点与“原来如此”时刻

16篇学习剧本
14个直接验证入口
18个类比式概念
7个开放挑战
Try one task · no timer

先完成一个微任务,再决定要不要学四周。

这不是装饰性的 demo。它复刻第一课的最小节奏:用类比定位角色、补一处代码、自检,再写下一句能复用的理解。

  1. 01类比先建立角色直觉
  2. 02补代码只填关键一格
  3. 03自检解释为什么
  4. 04日志留下迁移线索

地铁类比 Prompt 是目的地说明,模型客户端是把这张说明送进模型、再把回复带回来的列车。

哪一个名字应该填进模型客户端的位置?
llm = _____(
    model="qwen-plus"
)
reply = llm.invoke("用一句话介绍你自己")
PromptTemplate ChatOpenAI LangSmith
检查我的选择

先选择一个答案;这里只检查角色判断,不会调用外部模型。

Journal prompt

补完这句话:“模型客户端像列车,但这个类比不适用于 ______,因为 ______。”

带着这句话进入第一课 →

正确答案是 ChatOpenAI。启用 JavaScript 后可以体验选择、自检与日志解锁。

01 / Problem

初学者缺的通常不是代码,而是一条不会被 AI 代做的学习路径。

官方文档擅长告诉你 API 是什么,却默认你已经理解 Agent、State、Trace 等上下文;聊天机器人又很容易直接交付一段完整代码,让“能运行”掩盖“没理解”。

Context gap

术语先于直觉出现

第一次看到 LCEL、ReAct 或 Checkpointer 时,定义本身并不能告诉你它为什么存在。

Copy trap

AI 太快给出完整答案

复制代码能让终端变绿,却没有暴露自己的心智模型,也没有留下可迁移的判断。

Version drift

框架更新让示例失效

LangChain 1.x 的拆包和 API 变化会让旧教程报错,必须把依赖版本、修复和运行记录放在一起。

02 / Learning system

每一课都走同一条闭环:先建立直觉,再亲手证明。

教程把 AI 放在“陪练”位置。它可以换类比、拆小问题、提供候选根因,但关键代码、差异判断和学习日志由学习者完成。

01 · Frame 类比与大纲

先说清概念在解决什么问题,再把实现拆成 3–5 个可回答的小步骤。

02 · Build 在 scratch 动手

自己的代码只写进 _scratch/;任务卡提供约束,不直接交付完整答案。

03 · Compare 区分真错与风格

对照 final/ 时先判断差异是否影响结果,再由学习者自己修正。

04 · Reuse 记录卡点

把“原来如此”、有效 prompt 和未解决问题写入 journal,变成下一次可复用的经验。

03 / Curriculum

4 周、16 篇,从第一次调用走到可评估的 Agent。

“周”是内容分组,不是完成承诺。每篇的分钟数是仓库中的学习节奏估算,真实耗时取决于 Python 基础、网络和 API 权限。

Week 01

LLM 调用、Prompt、LCEL、Memory 与基础 RAG。

5 lessons · foundations Week 02

工具调用、结构化输出、流式响应、重试与 fallback。

3 lessons · reliability Week 03

StateGraph、条件边、Human-in-the-loop 与多 Agent。

4 lessons · orchestration Week 04

Tracing、Evaluation、Dataset 与四文件研究助手。

4 lessons · evaluation
04 / Evidence

把“教程能不能运行”拆成可追溯的证据,而不是一句保证。

公开证据区分当前静态检查与 2026-05-29 的历史 API 实测;需要外部凭证的行为不会被本站构建冒充为已重新验证。

Verification passport不同证据,不混写成一次“全部通过”。
2026-07-11
  • Build
    当前静态契约 · Verified课程数量、页面结构、链接、Python 语法与发布门禁在本轮重新检查。
  • History
    外部 API 跑批 · Observed 2026-05-2914 个入口的历史结果为 12 PASS / 1 PARTIAL / 1 SKIP,保留环境与凭证限制。
  • External
    当前模型服务状态 · Unknown未在 Pages 构建中重新调用收费 API,因此不声称今天仍全部可运行。
Historical run · 2026-05-29

14 个入口:12 PASS / 1 PARTIAL / 1 SKIP

历史记录逐项列出耗时、输出与限制。PARTIAL 来自本机 SSL 环境,SKIP 来自 embedding 权限;本次前端重构没有把它们重新宣称为通过。

查看真实运行记录 Compatibility

依赖被固定,6 处破坏性变更有记录

requirements.txt 固定 LangChain 1.3.2、LangGraph 1.2.2 与 LangSmith 0.8.7;迁移原因保留在测试档案。

查看依赖口径 Executable contract

展示、链接与 Python 语法进入发布门禁

Pages 发布前会核对课程数量、元数据、唯一 H1、内部链接,并对全部参考 Python 文件执行语法编译检查。

CI · source + rendered output
Inside one lesson

教程页不是 API 清单,而是一组能亲手完成的任务卡。

  1. 先跑参考,描述自己观察到的输入与输出。
  2. 挖空关键步骤,在 _scratch/ 写自己的版本。
  3. 故意制造一个错误,再解释它暴露的机制。
  4. 对照 final,自检并写下卡点日志。

打开第一篇任务卡

Hello LLM 教程页中的准备清单和任务卡示例
05 / Role & AI boundary

以学习者身份构建教程,也对验证边界负责。

我是 Jason Xun。这个项目的角色不是“权威讲师”,而是学生作者、教学系统设计者和维护者:把自己遇到的版本坑、失败路径与有效提问整理成下一位初学者可以复用的脚手架。

Human owns

课程顺序、学习约束、运行验证、失败分类、内容取舍与最终发布。

AI assists

类比生成、问题拆解、代码陪练、候选根因与文档初稿;不代替学习者完成判断。

第一次打开,从这三步开始。

01 · Learn the method

先读 HOW_TO_LEARN_WITH_AI.md,理解为什么不直接向 AI 要完整代码。

02 · Prepare locally

SETUP.md 建立虚拟环境与本地 .env;真实 API Key 不进入仓库。

03 · Build lesson one

01_hello_llm.md 开始,把自己的实现写进 _scratch/

局限与适用边界

Prerequisite

面向框架初学者,不代替 Python 基础;至少应能阅读函数、列表、字典与异常信息。

Version

示例固定在仓库声明的 1.x 版本,不承诺跟随 LangChain 最新 API;升级需要重新跑批。

External systems

完整运行依赖 DashScope、LangSmith、网络与模型权限;API 费用、延迟和可用性不由本仓库控制。

本地验证

站点展示契约、内部链接和 Python 语法检查均可在不提供 API Key 的情况下运行:

bundle install
JEKYLL_ENV=production bundle exec jekyll build
ruby scripts/check-showcase.rb --built _site
bundle exec htmlproofer _site --disable-external --no-enforce-https \
  --swap-urls '^/langchain-langgraph-langsmith-tutorial:'
python3 -m compileall -q final
bash -n scripts/smoke-test.sh

需要模型与 LangSmith 凭证的 14 个入口由 bash scripts/smoke-test.sh 执行。它会调用外部服务、产生时延或费用,因此不属于 Pages 构建;运行前请先按 SETUP.md 配置本地 .env。历史结果见 docs/test-runs.md

贡献

  • 教程卡点:提交 Issue,说明在哪一步、预期什么、实际发生什么。
  • 新的兼容性错误:补充 debug recipes 与复现条件。
  • 真正有效的学习 prompt:补充 prompt cheatsheet
  • 完成 4 周后:从 7 个开放挑战 里选一个继续构建。

本项目使用 MIT License

About

LangChain + LangGraph + LangSmith 入门教程实践

Topics

Resources

License

Contributing

Stars

17 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors