源码实践导航
本部分把前面的知识转换成可观察、可验证的任务。每项实践都包含目标、需要阅读的代码、预期观察、完成条件、验证方法和复盘问题。
前置知识
- 至少完成“一次 Turn”主线;
- 已按 DeepSeek 第一次请求 建立隔离配置;
- 知道如何在 IDE 中给 Python 函数打断点;
- 所有实验都使用独立 workspace 和测试 Session,不使用重要聊天历史。
实践分级
| 难度 | 实践 | 是否修改 nanobot 源码 |
|---|---|---|
| 1 | 跟踪一个无工具 Turn | 否 |
| 1 | 跟踪 Tool Call 与 Session | 否 |
| 2 | 复现流式、取消与重试 | 否 |
| 2 | 编写一个 Workspace Skill | 不改源码;写实验 workspace |
| 3 | 实现一个只读 Tool 插件 | 不改 core;安装隔离 plugin |
| 4 | 综合扩展设计评审 | 先设计;实现可选 |
学习循环
flowchart TD A["先写下预测"] --> B["运行或调试"] B --> C["记录实际对象与状态"] C --> D["回到源码解释差异"] D --> E["用测试复现"] E --> F["写一段复盘"] F --> A
关键是先预测。若直接单步穿过几千行代码,很容易只记住“我看过”,却无法形成模型。
统一实验记录模板
每个实践建议新建一段笔记:
## 我的预测
## 实际调用链
## 关键对象快照
## 与预测不一致之处
## 源码证据
## 测试证据
## 仍不确定“仍不确定”不是失败。它能区分代码已证明的事实和下一步需要验证的问题。
安全规则
- 不在调试器变量窗口截图或复制 API key;
- 不用真实重要 workspace 做写入/取消实验;
- 不用支付、发信、删除、发布等外部副作用测试 Tool;
- 修改练习使用独立 plugin 目录或分支;
- 每次只改变一个变量;
- 真实模型 smoke test 不能替代确定性测试。
下一篇:跟踪一个无工具 Turn