图解 Agent 系统
从运行机制到开源实现,沿问题读懂 Agent 怎样决策、调用工具、管理上下文与记忆,并在权限和失败边界下完成任务。
在线预览稿。 本站已收录书稿清单中的 51 篇正文和部分阅读索引与来源说明,方便公开阅读;内容仍在校稿。书稿 GitHub 仓库目前保持私有,PDF、可编辑图源和脚本未在本站发布。所有系统剖面都以篇内固定源码版本为准,不代表运行评测。
从阅读指南开始 · 按学习路径进入 · 先看 Agent loop
导读
第一部分 · 基本机制
- 换模型、Harness、CLI、Skill、MCP:究竟换了哪一层?
- Agent、工作流与多 Agent:谁决定下一步?
- Agent loop:一次行动怎样闭环
- 上下文、会话、摘要与记忆不是一回事
- 会话变长以后:压缩、记忆和检查点各保留什么
- 审批、沙箱、工作目录:三个不同的边界
- Tool、Skill、Extension、Package、MCP:到底扩展了什么?
- 从知识库查询到仓库修改:Skill、MCP 与工具权限如何接力
- Jev:把一个判断交给模型,动作仍由代码决定
- 委派与交接:多执行者怎样对一项任务负责?
- 中断、重试与恢复:先确认哪一步已经生效
- 观察、测试与评测:一次通过能说明什么
第二部分 · 行动、工具与执行
- Pi:小核心与可扩展外壳
- 跟着 Pi 代码走一轮
- Pi 的 Extension、Skill 与 Package
- Codex:一条命令为何会执行、询问或停下?
- 跟着 Codex 代码走一次
exec_command - OpenCode:工具调用为何有自己的状态?
- 跟着 OpenCode 代码看一次 ToolPart 状态变化
- mini-swe-agent:最小循环的停止契约
- 读
DefaultAgent的 100 行控制流 - OpenHands:为什么先记录动作,再执行工具?
- 跟着 OpenHands SDK 走一条事件路径
- browser-use:一轮 step 怎样把网页变成行动与历史?
- 跟着 browser-use 的
Agent.step()走一轮 - Qwen Code:延迟工具为何要分“发现”和“执行”?
- 跟着 Qwen Code 的延迟工具桥走两次调用
- Kimi Code:进行中的回合怎样接住新指令?
- 代码导读:
steer何时成为模型上下文 - MiMo Code:把长会话切成可恢复的窗口
- 沿一次 checkpoint 与 rebuild 读代码
第三部分 · 状态、记忆与任务上下文
- Letta Code:长期记忆为什么不等于当前上下文
- 跟着 Letta Code 看 local MemFS v1 的记忆可见性
- Mem0:记忆怎样写入,又怎样被找回
- 跟着 Mem0 代码走一次写入和检索
- LangGraph:thread 不是一条只能覆盖的状态线
- 代码走读:checkpoint 如何变成一条新分支
- OpenClaw:Gateway 怎样把一次
agent请求交给正确会话? - 跟着 OpenClaw Gateway 读显式
sessionKey路由 - GPT Researcher:多来源怎样变成报告上下文
第四部分 · 横向对照
附录 · 术语与核验方法
阅读索引与来源说明
原创文字与图:chicogong 与贡献者,按 CC BY 4.0 提供;引用的上游项目、商标和外部材料归各自权利人。当前站点是阅读入口,不表示私有源仓已公开。