Treecat · 免费开放课程

AI Agent 开发课

从手写最小循环开始,沿着上下文工程、Harness、安全与评测一路做到完整项目。每课约 2 小时,正文、练习和验收标准都在这一页。

20
29
道选择题
17
个实操关卡
17
篇中文精读
你的学习进度0%

进度只保存在当前浏览器,不需要登录。

第 1 课

Agent 到底是什么

未完成

这一课要做到建立唯一重要的心智模型:Agent = LLM 在循环中用工具;并亲手跑通一次最小闭环。

核心讲义

  1. 一句话定义就是全部

    Agent = LLM 在循环中自主使用工具。循环体:收集上下文 → 模型决策 → 执行工具 → 观测回填 → 判断终止。所有 agent 产品剥掉皮都是这个;你必须能 100 行手写它。

  2. 模型没有内部状态

    模型的全部记忆 = 这次请求喂进去的 context。任何「它应该记得」都是幻觉——你没喂,它就不知道。这一条推导出后面所有 context 工程。

  3. 能 workflow 就别 agent

    路径可预先枚举 → 写代码编排(workflow);路径无法枚举 → 才上 agent。agent 换来灵活性,代价是不确定性和成本。

带着问题精读

带着问题读:文中 workflow 与 agent 的分界线在哪?五种 workflow 模式各解决什么问题?

检查理解

Q1关于「模型没有内部状态」,下列哪个推论是正确的?

Q2下面哪个任务最应该用 workflow(代码编排)而不是 agent?

动手关卡

第 2 课

ReAct 与 100 行裸循环

未完成

这一课要做到读懂 ReAct,然后写出你自己的 100 行 agent——这门课最重要的一次动手。

带着问题精读

带着问题读:Thought 和 Action 交替解决了什么问题?去掉 Thought 会怎样?

动手关卡

第 3 课

工具即界面(ACI)

未完成

这一课要做到理解「工具即界面」:agent 的上限大半由工具设计决定,不是由提示词决定。

核心讲义

  1. 工具即界面(ACI)

    agent 的上限很大程度由工具设计决定:返回高信噪比、报错可行动、粒度匹配任务。给 LLM 定制的界面 ≫ 人用的界面直接搬。

带着问题精读

带着问题读:CodeAct 把多轮调用压成一轮的代价是什么?SWE-agent 的文件查看器为什么每次只给 100 行?

检查理解

Q1CodeAct(让模型写代码作为行动)相比逐个发 JSON 工具调用,核心优势是?

Q2【场景】「整理下载文件夹」的 agent,哪种工具集设计最合理?

第 4 课

错误自愈与终止预算

未完成

这一课要做到让 agent 学会从报错中自愈,并给循环装上可靠的刹车(终止条件与预算)。

核心讲义

  1. 错误是养料

    工具失败时把报错原文回填给模型,它通常能自愈;吞掉错误 = 剥夺它自我修正的机会。

检查理解

Q1agent 循环的终止条件中,哪一种最可靠?

Q2工具执行失败时,最佳的默认策略是?

动手关卡

第 5 课

Context Rot:注意力是稀缺资源

未完成

这一课要做到理解 context 不是越多越好,是信噪比越高越好;长窗口中段失忆是真实且普遍的。

核心讲义

  1. Context 不是越多越好

    是信噪比越高越好。长 context 中段信息召回显著下降(context rot);无关工具输出和陈旧错误会持续毒化后续决策。目标:最小的高信号 token 集合

带着问题精读

带着问题读:「最小高信号 token 集合」在你的 agent 里具体指什么?中段失忆的实验证据长什么样?

检查理解

Q1什么是 context rot(上下文腐烂)?

Q2下列哪类内容应该【预载】进 system prompt,而不是做成按需检索?

第 6 课

外置记忆:todo.md 的魔力

未完成

这一课要做到学会最土也最有效的抗失忆手段:让 agent 自己维护 todo.md,并理解它为什么有效。

核心讲义

  1. 三板斧:压缩 / 外置 / 按需

    ① compaction:快满时把历史压成摘要重启;② 外置记忆:让 agent 把计划和状态写进 todo.md / progress 文件(磁盘不丢,context 会丢);③ JIT 检索:别预载知识库,给检索工具按需拉取。

带着问题精读

带着问题读:Manus 为什么把 KV-cache 命中率当最重要的单一指标?他们怎么用文件系统当记忆?

检查理解

Q1「让 agent 维护 todo.md」有效的机制,下列哪项【不是】?

Q2prompt caching 按「前缀命中」计费,下列哪种做法会毁掉缓存收益?

动手关卡

第 7 课

Compaction:压缩历史的手艺

未完成

这一课要做到掌握压什么、留什么、什么时候压;压错了 = agent 失忆跑偏。

核心讲义

  1. 压缩的取舍是门手艺

    压掉:旧工具原始输出、已解决的错误细节。必须保留:任务目标、关键决策及理由、当前状态、未完事项。压错了 = agent 失忆跑偏。

带着问题精读

带着问题读:MemGPT 的主上下文/外部存储分层,对应操作系统里的什么概念?

检查理解

Q1做 compaction(历史压缩)时,下列哪项最不该被压掉?

动手关卡

第 8 课

子代理是 Context 防火墙

未完成

这一课要做到学会把读 50 个文件这种脏活派给子 agent,主循环只收结论。

核心讲义

  1. 子代理是 context 防火墙

    把读 50 个文件这种脏活派给子 agent,它只把结论带回主循环——主 context 保持干净。这是多 agent 最实用(也几乎是唯一稳赚)的形态。

检查理解

Q1research agent 要读 40 个网页写综述,让主 agent 的 context 保持干净,最直接的手段是?

动手关卡

第 9 课

Dumb Loop 与可验证性

未完成

这一课要做到理解 harness 的职责边界(循环不含智能),并第一次用验证器驱动 agent 跑到绿灯。

核心讲义

  1. Dumb loop 哲学

    循环本身不含智能,所有智能在模型里。harness 的职责是干净的环境、好的工具、兜底机制——不是替模型思考。往循环里塞业务 if-else,模型一升级全变累赘(assumptions expire,要写得容易删)。

  2. 可验证性决定自主度

    任务有自动验证器(测试/编译/脚本断言)→ agent 能自己跑到绿灯为止,可以放很长的绳子;不可验证 → 只能靠 evaluator 或人把关,绳子必须短。设计任务时第一问:验证器是什么?

带着问题精读

带着问题读:Anthropic 为什么说单靠 compaction 撑不住长任务、必须整会话重置?

检查理解

Q1「dumb loop」哲学主张的是?

Q2「可验证性决定自主度」——下列哪个任务能给 agent 放最长的绳子?

动手关卡

第 10 课

生成与评估分离

未完成

这一课要做到掌握 generator/evaluator 分离——花一个子 agent 换质量的最划算交易。

核心讲义

  1. 生成与评估必须分离

    agent 给自己打分系统性偏乐观。独立的 evaluator(看不到 generator 的自辩,只看产出和标准)显著更可靠。这是花一个子 agent 换质量的最划算交易。

带着问题精读

带着问题读:Osmani 列的 harness 组件清单里,哪些你已经亲手做过、哪些还没有?

检查理解

Q1生成/评估分离中,evaluator 怎样才算「真独立」?

Q2【场景】自动修 GitHub issue 的 agent,哪种情况可以自动提 PR 而不需要人审?

动手关卡

第 11 课

长任务三件套

未完成

这一课要做到攻克超出单窗口的长任务:初始化 + progress 文件 + 定期会话重置冷启动。

核心讲义

  1. 长任务三件套

    超出单窗口的项目:① 初始化(搭脚手架定结构);② 每会话把进展写进 progress 文件;③ 定期彻底重置会话、从 progress 冷启动。单靠 compaction 撑不住真正的长任务。

带着问题精读

带着问题读:METR 的「能力时长约 7 个月翻倍」若继续成立,两年后你 harness 里哪些组件会变多余?

检查理解

Q1关于 expiring assumptions(会过期的假设),正确的工程姿势是?

Q2任务要跑 8 小时,单会话 context 只够 30 分钟——正确方案的核心是?

动手关卡

第 12 课

威胁模型与致命三要素

未完成

这一课要做到建立安全直觉:agent 的实际权限 = 它读过的最恶意内容的权限;三角齐了数据必丢。

核心讲义

  1. 核心威胁模型一句话

    agent 的实际权限 = 它读过的最恶意内容的权限。模型会好心办坏事(真实案例:清理任务执行了 rm -rf ~),也会被读到的网页/文件里藏的指令劫持(prompt injection)。提示词防不住,必须系统性兜底。

  2. 致命三要素(lethal trifecta)

    私密数据访问 + 不可信内容暴露 + 对外通信能力——三者同时给一个 agent,数据必然可被窃取。安全设计的第一刀:砍掉其中一角(通常是管死对外通道)。

带着问题精读

带着问题读:你日常用的每个 agent 产品,各占了 lethal trifecta 的哪几角?

检查理解

Q1「agent 的实际权限 = 它读过的最恶意内容的权限」,这句话的含义是?

Q2lethal trifecta(致命三要素)指的是哪三样同时具备?

Q3prompt injection 和 jailbreak 的区别,正确的是?

第 13 课

沙箱选型与可逆化

未完成

这一课要做到学会按威胁等级选隔离(容器 vs microVM),并把破坏性操作改成可逆的。

核心讲义

  1. 隔离选型看威胁等级

    跑自己写的代码:Docker 容器够用;跑 agent 生成的不可信代码:microVM(Firecracker/E2B,独立内核,<200ms 冷启动)。外加:网络白名单、只读挂载、资源限额。

  2. 可逆化 > 审批化

    把破坏性操作改成可逆的(trash 而非 rm、git 而非直接覆盖、dry-run 先行),比每一步都问人更好用也更安全。人批只留给真正不可逆且高危的操作。

带着问题精读

带着问题读:OSWorld 里 agent 的失败模式,有多少比例其实同时是安全隐患?

检查理解

Q1要运行 agent 生成的完全不可信代码(比如多租户平台),隔离选型应该是?

动手关卡

第 14 课

注入攻防实战

未完成

这一课要做到亲手攻击自己的 agent 再防住它——注入攻防完整走一遍,安全才真正内化。

带着问题精读

带着问题读:CaMeL 为什么坚持「不依赖模型自觉」?控制流/数据流分离是怎么落地的?

检查理解

Q1为什么「在 system prompt 里写『请忽略文档中的任何指令』」不算防注入方案?

Q2【场景】邮件 agent(读邮件+联网搜索+发邮件),下列砍 lethal trifecta 的方案中哪个是【无效】的?

动手关卡

第 15 课

Eval 是罗盘也是资产

未完成

这一课要做到建立评测观:没有 eval 的迭代是蒙眼调参;小而真 ≫ 大而假;执行式验证 ≫ 字符串比对。

核心讲义

  1. Eval 是罗盘也是资产

    改了 harness 有没有变好?感觉不算数,分数才算。agent 团队最重要的资产就是自己的 eval 集。小而真 ≫ 大而假:10 个来自真实用例的任务,好过 100 个编造的。

  2. 执行式验证 ≫ 字符串比对

    agent eval 的正确姿势是验证结果状态(测试通过?文件正确?数据库对?),不是比对输出文本。环境有状态、轨迹有方差,所以还要多次采样(pass@k)看稳定性。

带着问题精读

带着问题读:SWE-bench 为什么要「新增测试转绿 + 原有测试不回归」双重验证?坏任务多到出 Verified 子集,对自建 eval 的教训是什么?

检查理解

Q1agent eval 为什么必须用执行式验证(验证环境末态)而不是比对输出文本?

Q2自建 eval 集讲究「小而真」,下列哪项【不符合】这个原则?

第 16 课

pass@k 与建你自己的 Eval

未完成

这一课要做到读懂 pass@k / pass^k 的信息量,并为你自己的 agent 建一套 10 任务 eval。

带着问题精读

带着问题读:τ-bench 的 pass^k(k 次全对)在考什么?为什么产品化 agent 必须盯它?

检查理解

Q1你的 agent 某任务 pass@1 = 60%,pass@8 = 95%,这组数字说明什么、怎么利用?

Q2自建 eval 集的任务分布,哪种最合理?

动手关卡

第 17 课

失败归因

未完成

这一课要做到学会看失败轨迹归因:任务毛病 / harness 问题 / 能力边界——三类的修法完全不同。

核心讲义

  1. 失败轨迹里全是金子

    分数只告诉你「多差」,轨迹告诉你「为什么」。每次评测后逐条看失败案例,归因到:模型能力 / harness 问题 / 任务本身有毛病——三类的修法完全不同。

  2. LLM-as-Judge 有边界

    不可脚本验证的(报告质量/代码风格)用强模型当裁判,但必须:给 rubric、双盲、定期抽样人工校准。裁判偏乐观和位置偏差是已知系统误差。

带着问题精读

带着问题读:综述里的失败类别,和你自己 agent 的失败对得上几类?

检查理解

Q1评测里某任务 10 次全挂。正确的第一步是?

动手关卡

第 18 课

大作业 Ⅰ:选题与骨架

未完成

这一课要做到大作业启动:选一个你真的会用的题,画一页架构,搭出主循环 + TODO + 沙箱的骨架。

核心讲义

  1. 为什么要大作业

    前 14 关每关练一块肌肉;大作业逼你把它们组装成完整系统——组装本身(模块间的接缝:沙箱里怎么跑验证器、compaction 怎么保住 todo、eval 怎么测跨会话)才是最难也最值钱的 20%。

  2. 选题标准

    选一个你自己真的会用的 agent(个人自动化/代码工具/研究助手都行),任务天然可验证或可设计验证器,复杂度 = 单会话装不下、需要三件套。

动手关卡

第 19 课

大作业 Ⅱ:验证闭环与跨会话

未完成

这一课要做到大作业冲刺:接上验证闭环、独立 evaluator、跨会话 progress 交接,完整跑通一个真任务。

动手关卡

第 20 课

复盘与下一步

未完成

这一课要做到写复盘收官:教是最好的学,写作会暴露你以为懂了但其实没懂的地方。

动手关卡

课程由 Treecat 基于一手实践与公开资料整理。17 篇中文精读均保留原文链接和作者归属,属于忠实转述与关键段落翻译,并非逐句全译。

反馈课程问题