# langchain-langgraph-langsmith-tutorial **Repository Path**: xiaohqh/langchain-langgraph-langsmith-tutorial ## Basic Information - **Project Name**: langchain-langgraph-langsmith-tutorial - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-13 - **Last Updated**: 2026-07-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README --- 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.

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("用一句话介绍你自己")

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

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

LangChain 核心

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

5 lessons · foundations
Week 02

Tool 与工程化

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

3 lessons · reliability
Week 03

LangGraph

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

4 lessons · orchestration
Week 04

LangSmith + Capstone

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

4 lessons · evaluation
04 / Evidence

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

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

Verification passport不同证据,不混写成一次“全部通过”。
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 的情况下运行: ```bash 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](SETUP.md) 配置本地 `.env`。历史结果见 [docs/test-runs.md](docs/test-runs.md)。 ## 贡献 - 教程卡点:提交 Issue,说明在哪一步、预期什么、实际发生什么。 - 新的兼容性错误:补充 [debug recipes](docs/debug-recipes.md) 与复现条件。 - 真正有效的学习 prompt:补充 [prompt cheatsheet](docs/prompts-cheatsheet.md)。 - 完成 4 周后:从 [7 个开放挑战](docs/challenges.md) 里选一个继续构建。 本项目使用 [MIT License](https://github.com/estelledc/langchain-langgraph-langsmith-tutorial/blob/master/LICENSE)。