源码阅读与工程文章
把复杂系统 拆成能讲清的路径
这里记录源码阅读、架构分析和工程实践。每组文章尽量从一个核心问题出发, 先建立地图,再沿关键链路进入细节,最后回到可复述的结构。
最新系列是「模型内部」:从 activation 走到 Agent action,沿途拆解 J-space、silent reasoning、persona、steering 与 alignment auditing。
目录
文章
拆开 heartbeat、automations、background tasks 与 restart recovery,读懂持久 schedule、任务账本、幂等投递和有界重放。
OpenClaw 源码阅读 · 第七篇多 Agent 怎样委派、继承与交付分开配置级 Agent、native subagent 与 ACP harness,追踪 child identity、context、工具权限、完成回流和线程绑定。
OpenClaw 源码阅读 · 第六篇Tool Policy、Sandbox、Approval 与 Elevated 怎样组成安全边界把能力可见、执行环境、具体命令同意和 exec host escape 拆成四道门,再看 trusted sender 与 host-local policy 怎样共同收窄。
OpenClaw 源码阅读 · 第五篇工具、技能、插件与 Hook 怎样装配成能力从工具候选池、skill snapshot 与 plugin contracts 一路读到 layered policy、schema projection 和每次调用的 typed hook 检查点。
OpenClaw 源码阅读 · 第四篇上下文、记忆与压缩怎样共同工作从 workspace bootstrap、system prompt 与 ContextEngine 读到 transcript、memory、pruning 和 compaction,弄清模型本轮真正看到什么。
OpenClaw 源码阅读 · 第三篇路由、会话与队列怎样决定消息归属拆开 binding、dmScope、identityLinks、sessionKey/sessionId,以及 steer、followup、collect、interrupt 四种时间语义。
OpenClaw 源码阅读 · 第二篇Gateway 为什么是控制平面从 connect 首帧、hello-ok 与方法描述表,读到 operator/node 身份、事件广播、断档刷新和慢消费者边界。
OpenClaw 源码阅读 · 第一篇 一条消息怎样跑完整个 Agent 回合沿 ChannelPlugin、sessionKey、队列与 embedded agent 追到工具事件、生命周期终态和 ReplyPayload,先建立八篇系列的运行坐标。
模型内部 · 五篇系列 从 Activation 到 Agent 行为从 J-space 和 silent reasoning 出发,比较 CoT、NLA、SAE、persona 与 activation steering,最后回到 memory、自进化和 Agent 对齐。
Go 从请求到生产现场 · 第八篇 连接复用之后,瓶颈藏在哪里沿 Transport.getConn、persistConn、bodyEOFSignal 与 HTTP/2 stream/flow control,最后用 httptrace、metrics、pprof、trace 和 race 联合诊断。
沿编译器逃逸图、slice backing array、mallocgc、每 P 的 mcache、并发 GC、写屏障与 mark assist,拆开分配速率和 live heap。
context 取消之后,goroutine 结束了吗
沿 cancelCtx、Cause、timer、AfterFunc、WithoutCancel、request context 与 Server.Shutdown,拆开 signal、cleanup 和 join。
interface、泛型与反射的边界
沿 interface 的两个 word、getitab/itabInit、convT、gc shape 与字典、reflect.Value,拆开三种抽象各自保留的类型信息。
channel,什么时候锁
沿 hchan、chansend/chanrecv、sudog、selectgo、Mutex 与 runtime semaphore,拆开通信、背压和临界区。
goroutine 到底跑在哪里
从 go h.fetch 进入 newproc、local/global runq、findRunnable、work stealing、抢占与 runnable latency。
slice 又共享了什么
从 URL slice、result channel 与 JSON 聚合出发,沿规范与 runtime 源码拆开值复制、别名、append 扩容、interface 和 range 变量。
net/http 与 runtime
跟随一个并发抓取请求,从 Server.Serve、请求 context 与 Transport 一直读到 internal/poll、netpoll 和 runnable goroutine。
从一道可重复的任务开始,逐步建立结果、过程、安全与运行检查。
AI EngineeringAI Engineering(六):Outer Loop,让一次次运行接力完成长期工作一次运行会结束,任务怎样保存进度、恢复、验证和决定下一次。
AI EngineeringAI Engineering(五):Agent Loop,让 Agent 一步一步把任务做完跟着读取、修改、测试和再判断的多轮过程,理解一次运行怎样前进。
AI EngineeringAI Engineering(四):Harness Engineering,给 Agent 一套安全做事的环境看一句“运行测试”怎样经过工具、权限、隔离和记录,变成真实动作。
AI EngineeringAI Engineering(三):Context Engineering,把当前需要的材料准备好区分资料库、检索候选和模型此刻真正能看到的材料。
AI EngineeringAI Engineering(二):Prompt Engineering,把任务要求说清楚从一句模糊请求开始,逐步补齐目标、背景、限制、完成标准和输出。
AI Engineering AI Engineering(一):一个 Agent 任务是怎样完成的先跟完一次任务,再认识沿途出现的六类工程问题和它们的关系。
AI 视频生产系统 · 第二篇 OpenMontage:当 coding agent 成为视频工作室的控制平面沿 pipeline manifest、stage director、checkpoint、ToolRegistry、render lock 与 final review,看提示词怎样变成可恢复、可验收的生产路线。
AI 视频生产系统 · 第一篇 Temporal:当一次 AI 视频生成不能随着进程消失跟随一支 AI MV 走过 Workflow、Activity、Event History、replay、heartbeat 与外部幂等边界,看长任务怎样活过 worker。
Agent Memory Agent Memory 系列:长期记忆不只是向量检索先把 Mem0、Letta、Graphiti、LangMem、TencentDB、OpenViking、Cognee、Supermemory 放到同一张地图里,看清谁拥有历史和上下文。
Agent Framework Agent 框架源码阅读系列:先选 runtime owner,再选框架名从 Claude Code 和 Codex 的运行主线出发,先用 Pi 与 AgentScope 建立 runtime 基线,分清 Agent 的本地与云端工作现场,再读 MCP、A2A、AG-UI 和 ACP,继续比较 ADK、Agno、AutoGen、CrewAI、Eino 与 tRPC-Agent-Go。
长期记忆 Mem0 记忆算法怎么演进:从可更新记忆、图关系,到 ADD-only 写入与多信号检索从 paper mem0、mem0g 到 2026 年 4 月的 v3,读 Mem0 为什么走向只追加写入、实体索引和多信号检索。
Agent Memory Letta / Letta Code:当记忆成为 agent state从 memory_blocks、AgentState、Memory.compile 和 MemFS,读 Letta 为什么把长期记忆放进 agent 自己的状态边界。
Agent Memory Graphiti / Zep:把记忆放进 temporal context graph从 episodes、EntityEdge、valid_at / invalid_at 和 hybrid retrieval,读 Graphiti 怎样让事实失效但保留历史。
Agent Memory LangMem / LangGraph:记忆应该在 hot path,还是交给后台 manager从 manage_memory、BaseStore、checkpointer 和 background manager,读记忆到底由哪条执行路径改写。
Agent Memory TencentDB Agent Memory:把上下文卸载成符号,把长期记忆做成层级从 Context Offload、refs/jsonl/MMD 任务画布,到 L0-L3 长期记忆,读工具日志怎样变成可恢复结构。
Agent Memory OpenViking:当 Memory、Resource 与 Skill 进入同一棵上下文树沿一个 coding-agent 任务,读懂 viking://、L0/L1/L2、find/search、两阶段 session commit 与模型视野边界。
Agent Memory Cognee / Supermemory:记忆开始变成平台边界从 Cognee 的 add / cognify / recall 管线,到 Supermemory 的 add / profile / search / connectors 合约,读记忆怎样平台化。
源码阅读 Claude Code 源码阅读(一):先跟一次任务走完整条运行主线先沿公开镜像源码把 CLI、REPL、队列、query loop、模型流、工具关口、 transcript 和 resume 串成一条可继续深入的阅读路线。
源码阅读 Claude Code 源码阅读(二):Memory 不是聊天记录,而是长期指令层
从 CLAUDE.md、auto memory、session memory 到 prependUserContext(),
看长期规则怎样投影进下一轮请求,以及它为什么会影响 prompt cache 前缀。
拆开 stable、context、volatile 与 turn-only,再把事实、证据、流程和临时状态放回各自的 owner。
Hermes Agent · 3 / 7 Hermes Agent:交付以后怎样提炼经验沿 finalizer、后台 review、nudge 与两阶段 Curator,走完经验怎样进入未来回合的运行时学习链。
Hermes Agent · 4 / 7 Hermes Agent:一条 /learn 请求怎样变成 Skill跟着指定资料的读取、归一化、写入、关系更新和后续加载,理解主动学习真正改变了哪份长期状态。
Hermes Agent · 5 / 7 Hermes Agent:训练、验证与留出怎样分工从任务记录、rubric 和数据来源开始,先建立公平比较的尺子,再启动任何 Skill 优化。
Hermes Agent · 6 / 7 Hermes Agent:DSPy 与 GEPA 怎样改写 Skill把 Skill 接成可优化 instruction,跟完执行、反馈、反思与复测,再审计 Self-Evolution 原型的真实边界。
Hermes Agent · 7 / 7 Hermes Agent:代码改完之后,什么才算真的交付沿项目事实、证据账本、hermes verify 与结束前守门,把最终声明放在最新通过证据之后。
源码阅读 Claude Code 源码阅读(三):上下文快爆了,Claude Code 不是直接总结沿公开镜像源码拆解基础上下文、model-visible view、microcompact、auto compact 和 compact 后恢复,说明上下文为什么不是一段普通聊天记录。
源码阅读 Claude Code 源码阅读(四):工具调用不是执行命令,而是运行时合约
从 query()、runTools() 和 runToolUse()
看模型提出 tool_use 后,runtime 怎样校验、调度、过权限闸并回填结果。
沿权限上下文、allow/deny/ask 规则、PreToolUse、PermissionRequest 和拒绝回填, 看本地副作用怎样被客户端运行时约束。
源码阅读 Claude Code 源码阅读(六):命令、Skills 与 MCP,能力是怎样进上下文的
从 getCommands()、slash command、SkillTool 和 MCP 连接出发,
看扩展能力怎样进入本轮命令表与工具池。
从 AgentTool、runAgent() 和 createSubagentContext()
看普通子代理与 fork path 怎样重建一份可控上下文。
从 HOOK_EVENTS、hook matcher、工具权限交互、UserPromptSubmit、
SessionStart、Stop 和 compact hooks 出发,看 hooks 怎样接入运行时边界。
从 transcript 写入、反序列化、SessionStart(resume)、session restore、 worktree、agent 和 content replacement 出发,看旧会话怎样恢复成可继续执行的 runtime。
源码阅读 Claude Code 源码阅读(十):Prompt cache 不是开关,速度来自请求形状
从 cache_control、稳定前缀、动态工具避让、fork cache-safe params、
cached microcompact 和 cache break detection 出发,看速度为什么来自请求形状。
先固定一个普通修 bug 请求,再沿入口、protocol、session、turn、上下文、 工具权限、事件和持久记录建立源码阅读路线。
源码阅读 Codex 源码阅读(二):上下文不是聊天记录,而是运行时账本沿 openai/codex 源码拆解 ContextManager、TurnContext、for_prompt、 reference_context_item、auto compaction 和 rollout 恢复。
源码阅读 Codex 源码阅读(三):protocol 与事件流,客户端怎样共享同一套事实沿 TurnStartParams、Submission、Op、EventMsg、app-server v2 投影和 rollout 恢复,拆解客户端如何观察同一套运行时事实。
源码阅读 Codex 源码阅读(四):工具调用背后的运行时合约从 ToolSpec、ToolRouter、ToolRegistry、ToolInvocation 到 hooks、 approval、sandbox、events 和工具输出归档。
源码阅读 Codex 源码阅读(五):权限与 sandbox,副作用怎样被运行时约束从 turn policy、permission hooks、ToolOrchestrator、SandboxAttempt 和 sandbox denied retry 读懂副作用工具的运行时边界。
源码阅读 Codex 源码阅读(六):客户端投影,同一套事实怎样变成可见状态沿 EventMsg、TurnItem、ThreadItem、ServerNotification、TUI history cell 和 rollout 恢复,拆解客户端看到的状态从哪里来。
源码阅读 Codex 源码阅读(七):扩展与多 agent,额外能力怎样进入一次 turn沿 skills、plugins、MCP tool exposure、tool_search、dynamic tools 和 AgentControl,拆解额外能力怎样加入同一轮运行主线。
源码阅读 Codex 源码阅读(八):Hooks 与生命周期,边界处还能改变什么沿 HookEventName、hook discovery、prompt gate、tool gates、compact 和 Stop,拆解 hooks 怎样作为生命周期插槽接回 turn 主线。
源码阅读 Codex 源码阅读(九):性能与 prompt cache,速度来自请求形状沿 OpenAI prompt caching 契约和 openai/codex 源码,拆解稳定前缀、 动态尾部、prompt_cache_key、compaction 和 token usage 怎样共同影响体感速度。
源码阅读 Codex 源码阅读(十):rollout 与恢复,能继续的前提是能重放沿 RolloutItem、JSONL writer、InitialHistory、reverse scan、 replay suffix、rollback marker 和 fork snapshot,拆解 Codex 如何恢复一次 thread。
源码阅读 Codex 源码阅读(十一):SDK 与 app-server,外部调用怎样进入同一套 runtime沿 app-server 的 initialize gate、typed ClientRequest、thread/start、 turn/start、listener 和 Python / TypeScript SDK,拆解外部应用如何接入 Codex。
源码阅读 Codex 源码阅读(十二):Memory 记忆层,旧线程怎样变成可用经验沿 Feature::MemoryTool、memory_mode、Phase 1 / Phase 2、 memories workspace、read path、citation 和 polluted thread,拆解 Codex 的本地召回层。
源码阅读 Codex 源码阅读(十三):Windows 沙箱,权限边界怎样落到操作系统沿官方 Windows sandbox 工程文章和 openai/codex 源码,拆解 sandbox users、 ACL、防火墙、command runner 和 restricted token 怎样把 runtime 权限落到本机边界。
Hermes Agent · 1 / 7 Hermes Agent:一轮任务如何活下来,并把经验留给以后从用户消息到 finalizer,先走完可恢复交付,再建立 Memory、SessionDB、Skills、后台 review 与多入口的系统地图。





















