Course Positioning
一门按层次递进的 Agent 课,不是零散知识点的合集
从最简单的 Agent 循环出发,一步步加上工具、待办、子 Agent、技能、上下文压缩…… 每一章只解决一个问题,按模块递进,最终搭出完整的 Agent 系统。

Course Positioning
从最简单的 Agent 循环出发,一步步加上工具、待办、子 Agent、技能、上下文压缩…… 每一章只解决一个问题,按模块递进,最终搭出完整的 Agent 系统。
How To Read
Agent 的核心只有三件事:思考 → 行动 → 观察。下面这台"钟表"每秒都在走—— 它是贯穿整门课的主隐喻,无论后面加多少层(工具、记忆、子 Agent、技能),本质都是这个循环。
Part 1 — 核心闭环
第一部分从最基础的循环开始,每章加一层能力。学完这六章,你就有了一个能工作的 Agent 系统骨架。
Primitives · 零件
点一块看它是什么、为什么需要、以及少了它会怎样。顺序不重要——先拆开,再组合。
一个接受文字输入、产出文字输出的函数。在这本教程里,它几乎总是 Claude。你可以把它想成一个没有短期记忆、也没有手的聪明实习生——本身啥也干不了,但配上其他四块积木,它就能跑起来。
缺了它会怎样没有模型,整个 Agent 就只剩一堆工具函数,谁都不会说要调哪个。
Code Evolution · 代码进化
每一步只加一块积木。切换编号看代码怎么长出来、输出怎么变复杂。中间没有任何魔法。
code/py/01_agent_loop.py · 01 / 04# code/py/01_agent_loop.py — Agent 循环闭环@dataclassclass LoopState: messages: list turn_count: int = 1 transition_reason: str | None = None def run_turn(state: LoopState) -> bool: response = client.chat.completions.create( model=model, messages=[{"role": "system", "content": SYSTEM_PROMPT}, *state.messages], tools=TOOLS, max_completion_tokens=8000, ) choice = response.choices[0] message = choice.message state.messages.append({ "role": "assistant", "content": message.content or "", "tool_calls": serialize_tool_calls(message.tool_calls), }) if choice.finish_reason != "tool_calls": return False # ← 模型说完了,退出 state.messages.extend(execute_tool_calls(message.tool_calls)) state.turn_count += 1 return True # ← 还有工具要跑,继续 def agent_loop(state: LoopState) -> None: while run_turn(state): pass全套课程按 Part 组织,从骨架到平台一路打上去。Part 1 的六章是地基,往后每个 Part 都在它之上加一层能力。
从 while 循环、工具、待办、子 Agent、技能、到上下文压缩——搭出一个能工作的 Agent 骨架。
让 Agent 跑得稳——权限、Hook、记忆、系统提示词、错误恢复,一套生产级的护栏。
让 Agent 异步跑、定时跑、长时间跑——从一次性对话进化成持续工作的"工人"。
多个 Agent 协作、自主运行、隔离工作、接入外部能力——从单机走到平台。
Reading Modes
默认按章节顺序走,但你也可以根据自己的情况换个切入方式。
零基础首选。从 s01 开始,每章加一层,六章建立完整认知。最省脑子的读法。
有编程基础的直接点代码示例 Tab,跑通了再回头看原理。适合动手派。
赶时间的话,每章的流程图示 Tab 一张图概括核心逻辑。先有个印象再说。
What You'll Learn
Design Principles