45 min 规划 + 两天实现(四个半天)· 从读别人到建自己的
🎒 预备知识:完成上一课「L19」(零基础入口:第 0 课)
L19 的六张卡怎么变成代码?不是从卡 1 写到卡 6——按依赖图开工: loop 是一切的地基(没有它什么都跑不起来)→ 工具其次(loop 要调)→ 技能加载(loop 要按路由读)→ 提示词(首批请求就要)→ 记忆(首批请求就要)→ 闸门(真发前必须有,但可以最后接)。这个顺序保证每一步结束都有一个能跑的东西—— Day 1 上午结束你就有一个"会调工具的 loop",而不是等六天看到全貌。
| 时段 | 做什么 | 完成标志 |
|---|---|---|
| Day1 上午 | loop.py:双层循环 + 工具执行 + isError 回填(A1 的 30 行起步) | 模型能调用一个假工具并自我纠错 |
| Day1 下午 | tools.py 2-3 个真工具 + agents.md 规则文件 | 能完成一次真实任务(如"读文件并总结") |
| Day2 上午 | skills/ 路由加载 + memory.md 只追加 | 新技能不改内核即可用;跨轮记得事 |
| Day2 下午 | guard.py 闸门 + 全链自测 + rubric 自评 | 不可逆操作被拦;自评表完成 |
loop.py ~90 行 while: 调模型(OpenAI兼容) → tool_calls → 执行 → 回填
工具失败 isError 回填(不是异常!A3 铁律①)
步数上限 + 超时(铁律③)
skills/ 技能目录 frontmatter 路由 + SKILL.md 触发加载(~40 行)
agents.md 规则 ≤30 行(抄 Easel 六条的骨架,L03)
tools.py ~30 行 2-3 个真实工具(read_file / run_cmd / 你的领域工具,按 A4 设计)
guard.py ~40 行 出站扫描:命中密钥模式 → exit 7(L14 fail-closed)
memory.md 会话记忆文件,只追加(~20 行读写,A6 文件形态)
对照 C3(现 A1)那 20 行最小 agent:loop.py 是它的成年版(+上限/超时/isError), skills/ 是 A2 第三代封装的微缩,guard.py 是 A12 阶梯第 4 级的落点。 250 行 = 前置课 24 课 + 正课 20 课的物理压缩包。
① 模型不调工具?看工具 schema——description 是不是含糊(A4),参数是否 required 太多。
② 调了但参数错?校验失败有没有回填错误消息(还是直接崩了)?错误消息有没有三要素(A4)。
③ 循环不停?停止条件全吗——toolUse 之外 stop 是否正确终止、步数上限有没有生效。
④ 第二轮就失忆?历史有没有 append(assistant 消息本身也要入列,L7 坑 1)。
⑤ 回答质量差?先打印实际发出的 messages 看——十有八九是上下文组装问题(A5),不是模型笨。
① 工具失败当异常抛给用户——应该是 isError 结果回填(A3 铁律①,L17 六站)。
② 记忆写全局单文件——多会话串味,按会话/画像分域(A6 竞态推演,L05)。
③ 没有 dry-run——不可逆操作直接真发(A12 阶梯 3 级,L13 三段式)。
④ 系统提示塞满所有能力——应该 frontmatter 路由 + 按需加载(A2/L06 token 算术)。
⑤ 历史重写式截断——应该摘要追加(A3 铁律②,L18 只追加三重收益)。
| 件套 | 自评问题 | 对照的 Easel 实现 |
|---|---|---|
| loop | 停止条件齐全吗(error/abort/上限)?工具失败能自我纠错吗? | agent-loop.ts 三段式(L16) |
| 提示词 | 常驻层稳定吗(cache 命中)?人格与规则分层了吗? | 四层栈(L04) |
| 技能 | 新技能不用改内核代码就能加吗? | SKILL-SPEC 三层加载(L06) |
| 分工 | 碰环境的事在脚本/工具里,决策在模型里? | 薄壳+厚脚本(L07) |
| 记忆 | 并发会话安全吗?历史可回放吗? | 画像分域(L05)+ 只追加 |
| 边界 | 闸门 fail-closed 吗?有对账/留痕吗? | content_guard + readback(L14) |
提交两样:① 可运行代码;② 六件套自评表(每件 ≤3 句,含"简化了什么、为什么可以")。 我对照 Building Effective Agents 与 Easel 源码逐件批改。通过即记入学习档案,这门课就毕业了。
毕业后去哪:把你的 agent 用起来,遇到的每个真实问题都会对应到课程的某一课—— 那时回来重读那一课,是最高效的进阶。