Skip to content

[长期共建] 为各章节整理可运行 Notebook(承接 Discussion #38) #105

Description

@webup

背景

Discussion #38 提议把各章代码整理成独立可运行的脚本。讨论中进一步建议优先采用 Notebook:读者可以按步骤执行、查看中间状态,也可以保留经过清理的运行结果。

此前 Issue #23 已整理过第 3 章的八个示例方向。该 issue 关闭时约定,后续不再按单章零散推进,而是建立覆盖全课程的统一共建任务。本 issue 用来承接这项工作,并长期记录认领与完成情况。

这不是要求一个贡献者一次整理全部章节。可以只认领一章中的一个 Notebook。

期望的目录结构

首个 PR 可以在仓库中建立下面的基础结构,后续贡献沿用同一约定:

notebooks/
├── README.md                 # Notebook 索引、运行说明和完成状态
├── ch02/
│   └── 01-quickstart.ipynb
├── ch03/
│   ├── 01-state-backend.ipynb
│   └── 02-filesystem-backend.ipynb
└── ...

文件名使用两位序号和简短英文名称。一个 Notebook 只讲一个可以独立验证的主题;内容较多的章节可以拆成多个文件。

每个 Notebook 至少包含

  • 学习目标,以及它对应的课程章节或小节;
  • 操作系统、Python 版本和依赖版本;
  • 所需环境变量与外部服务说明,不写入真实密钥;
  • 完整的 import、模型初始化、工具或后端定义;
  • 可以从头到尾顺序执行的 Agent 调用与验证步骤;
  • 需要观察的中间状态和预期现象;
  • 常见报错、成本或网络要求,以及必要的资源清理步骤。

模型名建议通过 MODEL_NAME 等环境变量配置。密钥从环境变量或本地 .env 读取,禁止写进 Notebook。保留输出时,请删除密钥、Token、个人路径和其他敏感信息,并截断过长的模型响应或日志。

如何认领

请先在本 issue 下留言。可以直接复制下面的格式:

准备认领:chXX / Notebook 主题
对应课程小节:
计划覆盖的运行路径:
验证环境:操作系统、Python 版本、deepagents/langchain/langgraph 版本
是否依赖付费 API 或外部服务:

维护者确认没有重复后即可开始。建议一个 PR 只包含一章,或者一组关系紧密的小实验。

提交前如何验证

Notebook 需要在干净环境中从第一格运行到最后一格,不能依赖上一次运行遗留的变量、文件或内核状态。可以使用 Jupyter、VS Code,也可以用下面的方式执行:

jupyter nbconvert \
  --to notebook \
  --execute notebooks/chXX/<文件名>.ipynb \
  --output-dir /tmp \
  --ExecutePreprocessor.timeout=600

请在 PR 描述中记录:

  • 实际执行命令;
  • 操作系统和 Python 版本;
  • deepagentslangchainlanggraph 等主要依赖版本;
  • 是否使用模型 API、数据库、沙箱或其他外部服务;
  • 从头执行是否成功,以及清理敏感信息后保留的关键结果。

如果某个示例受模型输出随机性影响,请验证工具调用、状态变化、文件产物等可检查的行为,不要把某一句固定回答当作唯一通过条件。

完成标准

每个 PR 需要满足以下条件:

  • Notebook 与课程正文使用的概念和 API 一致;
  • 在说明的依赖版本下可以从头到尾顺序执行;
  • 除环境变量外,不要求读者手工修改隐藏状态或本机绝对路径;
  • 不包含密钥、个人数据、大段无关输出或未清理的调试日志;
  • 更新 notebooks/README.md 中的章节索引、依赖说明和完成状态;
  • 如果正文需要增加 Notebook 入口,随 PR 更新对应章节链接;
  • PR 关联本 issue,并说明自己完成了哪一项。

初始认领清单

  • 第 1 章:Agent Harness 与最小运行结构
  • 第 2 章:快速上手与自定义工具
  • 第 3 章:虚拟文件系统与各类存储后端
  • 第 4 章:任务规划与 TodoListMiddleware
  • 第 5 章:子 Agent 与上下文隔离
  • 第 6 章:异步子 Agent
  • 第 7 章:Skills
  • 第 8 章:长期记忆与 CompositeBackend
  • 第 9 章:Human-in-the-Loop
  • 第 10 章:沙箱执行
  • 第 11 章:文件系统权限
  • 第 12 章:MCP
  • 第 13 章:Grading Rubrics
  • 第 14 章:Event Streaming v3

第 3 章可以直接参考 Issue #23 中已有的 StateBackend、FilesystemBackend、LocalShellBackend、StoreBackend、CompositeBackend、FilesystemPermission、GuardedBackend 和 PolicyWrapper 示例清单,不需要重新整理需求。

PR 合并后,维护者会更新上面的清单。后续新增章节也会继续加入这里,因此本 issue 会保持打开状态。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or requesthelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions