源码阅读与工程文章
把复杂系统 拆成能讲清的路径
这里记录源码阅读、架构分析和工程实践。每个系列先从一个具体任务说明问题, 再按程序实际发生的顺序,追踪消息、状态、工具调用和恢复过程。
按关键词查找文章 →
目录
文章
没有找到匹配文章,试试项目名或更短的关键词。
沿两个只读 Inspect 工具、plugin_manager 与持久 Bundle,区分 profile 保存、Host 激活和浏览器验收。
DeepSeek Harness 源码笔记 · 第六篇多 Agent 不是多条消息沿 spawn/fork、sendMessage、驻留容量、PTC workflow、Ralph 与 Team,区分消息接受、任务完成和资源清理。
DeepSeek Harness 源码笔记 · 第五篇压缩不是删历史:重写模型表面,还原请求前缀从文本裁剪、图片卸载与摘要替换,读懂 system 消息、request/header 和缓存前缀怎样共同重建请求。
DeepSeek Harness 源码笔记 · 第四篇副作用不是一次函数调用:从 flush 到可恢复执行沿 tool/call、durability checkpoint、approval、sandbox、JSONL 与 crash repair,拆开意图、授权、约束和结果未知。
DeepSeek Harness 源码笔记 · 第三篇Model-visible means logged 到底约束了什么从四类消息、实时流结算与可重放投影,区分模型 surface 和人类时间线,再验证 v3 恢复边界。
DeepSeek Harness 源码笔记 · 第二篇Everything is a Plugin 怎样落到 Cordis从 patch 合成、Context、Service、isolate、Fiber 生命周期与 HMR,读懂一棵可替换运行时怎样保持顺序和所有权。
DeepSeek Harness 源码笔记 · 第一篇 从 dsh web 到一次 turn/end把 Profile、Bundle、Cordis、ReactLoopAgent、SessionEvent 与 Web/ACP 串成一条完整主线,再进入状态投影、副作用和恢复边界。
Agent 自进化 · 第一篇 SkillOpt-Lite:当 Coding Agent 成为自己的优化器从失败轨迹和多次运行中找出共性,让 Coding Agent 修改 skill.md,再用同一套验证决定是否保留;同时检查 HarnessOpt 当前还没有接通的执行步骤。
区分 heartbeat、定时任务和后台任务,看计划怎样保存、消息怎样避免重复投递,以及进程重启后哪些工作可以继续。
OpenClaw 源码阅读 · 第七篇多 Agent 怎样委派、继承与交付区分配置级 Agent、native subagent 与 ACP harness,看子任务继承哪些上下文和工具权限、完成后怎样把结果送回父任务。
OpenClaw 源码阅读 · 第六篇Tool Policy、Sandbox、Approval 与 Elevated 怎样组成安全边界先看哪些工具会被暴露,再看命令在哪运行、哪些操作需要用户同意,以及 elevated 何时允许跳出 sandbox。
OpenClaw 源码阅读 · 第五篇工具、技能、插件与 Hook 怎样装配成能力看 OpenClaw 怎样发现工具、加载 Skills 和插件、按策略过滤可用能力、校验参数,并在调用前后执行 hooks。
OpenClaw 源码阅读 · 第四篇上下文、记忆与压缩怎样共同工作从 workspace bootstrap、system prompt 与 ContextEngine 读到 transcript、memory、pruning 和 compaction,弄清模型本轮真正看到什么。
OpenClaw 源码阅读 · 第三篇路由、会话与队列怎样决定消息归属看消息怎样匹配 Agent 和会话,再比较 steer、followup、collect 与 interrupt 如何决定新消息插队、等待或中断当前工作。
OpenClaw 源码阅读 · 第二篇Gateway 为什么是控制平面区分 operator、node 与受限 worker 入口,跟随握手、授权和事件投递,理解断档后为何要重新读取状态。
OpenClaw 源码阅读 · 第一篇 一条消息怎样跑完整个 Agent 回合跟随一条消息从 ChannelPlugin、sessionKey 和队列进入 embedded agent,再走到工具事件、完成状态与最终回复。
模型内部 · 第五篇Activation Steering、Reflection Training 与 Alignment Auditing对照 ActAdd 与 CAA 的注入位置,区分推理时干预、reflection training 与独立审计,以及各自的验证和回滚条件。
模型内部 · 第四篇Persona、自我模型与 Post-training从角色方向的提取、Assistant axis 与单侧 capping,理解 post-training 如何稳定角色,以及自我模型证据的限度。
模型内部 · 第三篇CoT Monitoring、NLA、SAE 与 Latent Reasoning比较 CoT、NLA、SAE 与 J-lens 的证据边界,并从 Coconut 源码理解连续思维。
模型内部 · 第二篇J-space 与 Silent Reasoning区分 J-lens 读取、稀疏重构与因果干预,跟随官方 jlens 实现核对拟合、读数和复现边界。
模型内部 · 第一篇 从 Activation 到 Agent 行为跟随一次文件修改,分清模型计算、工具调用提案、runtime 执行,以及 activation、KV 缓存和持久记录。
Go 从请求到生产现场 · 第九篇升级 Go,究竟改变了什么用 Go 1.22 循环变量实验分清工具链、语言版本与兼容默认,再看 timer、容器调度、GC 和版本迁移。
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 Engineering · 第六篇Outer Loop:让一次次运行接力完成长期工作一次运行会结束,任务怎样保存进度、恢复、验证和决定下一次。
AI Engineering · 第五篇Agent Loop:让 Agent 一步一步把任务做完跟着读取、修改、测试和再判断的多轮过程,理解一次运行怎样前进。
AI Engineering · 第四篇Harness Engineering:给 Agent 一套安全做事的环境看一句“运行测试”怎样经过工具、权限、隔离和记录,变成真实动作。
AI Engineering · 第三篇Context Engineering:把当前需要的材料准备好区分资料库、检索候选和模型此刻真正能看到的材料。
AI Engineering · 第二篇Prompt Engineering:把任务要求说清楚从一句模糊请求开始,逐步补齐目标、背景、限制、完成标准和输出。
AI Engineering · 第一篇 一个 Agent 任务是怎样完成的沿支付测试任务认识六类工程职责,用 Codex 源码区分受理、运行结束与验收。
AI 视频生产系统 · 第二篇 OpenMontage:当 coding agent 负责推进一支视频沿 manifest、stage director、checkpoint、render lock 与 final review,分清 Agent 操作指引、代码检查和项目文件恢复;检查点不会自动续跑执行流程。
AI 视频生产系统 · 第一篇 Temporal:当一次 AI 视频生成不能随着进程消失跟随一支 AI MV 走过 Workflow、Activity、Event History、replay、heartbeat 与外部幂等边界,看长任务怎样活过 worker。
AI 视频生产系统 · 第零篇 从任务存活到成片交付:两种“恢复”差在哪里先分开 Temporal 保存的任务身份与事件历史,以及 OpenMontage 保存的创作阶段、工件和人工批准,再进入两篇源码。
Agent Memory · 第零篇 Agent Memory 系列:长期记忆不只是向量检索先比较 Mem0、Letta、Graphiti、LangMem、TencentDB、OpenViking、Cognee 与 Supermemory 分别保存什么、何时写入、怎样召回,再进入每篇源码。
Agent 框架源码阅读 · 第十三篇 tRPC-Agent-Go Evolution 怎样学习,也怎样拒绝坏 Skill分别跟随在线复盘与 Skill 发布、独立的 GEPA 离线优化及 SkillCraft 评测,区分候选改写、验证证据和实际生效。
Agent 框架源码阅读 · 第十二篇 tRPC-Agent-Go Memory 怎样把经历变成可检索知识跟一条用户环境事实走完 delta、extract、reconcile、Fact/Episode 与混合检索,再用 LoCoMo-10 检查质量、成本和拒答退化。
Agent 框架源码阅读 · 第十一篇 tRPC-Agent-Go 怎样运行任务与整理上下文先沿 Runner、Agent、Model 和服务组件走完一次请求,再看 Summary、Context Compaction 与 Session Recall 分别何时压缩、怎样重建、从哪里找回原始事件。
Agent 框架源码阅读 · 第十篇 Eino 怎样把 Agent 应用编译成 Go 执行图从 Component、Runnable 与 compose Graph 看一张图怎样编译成可运行的 Go 代码,再追踪 checkpoint、callback、ADK Runner、ChatModelAgent 和 AgentTool。
Agent 框架源码阅读 · 第九篇 CrewAI 把 Agent 写成团队流程,而不是消息总线从 Agent、Task、Crew、Process 和 Flow 源码看 CrewAI 如何把团队自治和生产控制拆开建模。
Agent 框架源码阅读 · 第八篇 AutoGen 到 Microsoft Agent Framework:从多 Agent 对话到生产编排AutoGen 已进入 maintenance mode。本文从 Core runtime、AgentChat team 读到 MAF 的 Agent、Workflow、Orchestrations 和 Hosting。
Agent 框架源码阅读 · 第七篇 Agno 把 agent 做成平台,而不是只做成对象看 AgentOS 如何注册 Agent、Team 与 Workflow,提供运行 API 和存储,并把审批、RBAC、定时任务与外部接口接到同一套服务中。
Agent 框架源码阅读 · 第六篇 ADK Python 为什么把 Agent 和 Workflow 放在一起看 ADK 2.0 如何让同一个 Runner 执行自主 Agent 与确定性 Workflow,并把过程写成 Session Event、通过 Task API 暴露长任务。
Agent 框架源码阅读 · 第五篇 Agent 协议到底在连接谁用一个合同续约任务确认 MCP、A2A、AG-UI、Agent Client Protocol 与模型 Provider API 分别连接哪两端、传递什么,以及不能替代谁。
Agent 框架源码阅读 · 第四篇 Agent 的工作现场在哪里用同一项脚本任务拆开 Coding / General 与 Local / Cloud,再看 workspace、sandbox、session、artifact 和 memory 分别存在哪里,沙箱销毁后哪些还能留下。
Agent 框架源码阅读 · 第三篇 跟 AgentScope 的 reply_stream 走一遍在 Pi 的最小基线上,沿 AgentScope 的回复主线看事件怎样流动、状态怎样记录、工具何时获准执行,以及 Responses API 与 Chat Completions 的适配差异。
Agent 框架源码阅读 · 第二篇 Pi 为什么把 Coding Agent 做成可扩展的 Harness沿 pi-ai、agent-core 和 coding-agent 看最小实现怎样运行工具循环、保存会话树并压缩上下文,又把 plan、sub-agent、MCP 与权限策略留给扩展。
Agent 框架源码阅读 · 第一篇 Agent 框架到底在框什么从 Claude Code 和 Codex 的运行主线回看通用框架:比较模型调用、工具执行、状态保存与权限检查分别由哪些组件完成。
Agent Memory · 第一篇 Mem0 记忆算法怎么演进:从可更新记忆、图关系,到 ADD-only 写入与多信号检索从 paper mem0、mem0g 到 2026 年 4 月的 v3,读 Mem0 为什么走向只追加写入、实体索引和多信号检索。
Agent Memory · 第二篇 Letta / Letta Code:Agent 恢复运行时,哪些记忆会一起回来区分已归档 V1 的 Block 与 AgentState 恢复,以及当前 Letta Code 本地后端怎样编译 Git 已提交记忆并让后续轮次读取。
Agent Memory · 第三篇 Graphiti / Zep:事实变化后,怎样保留历史与当前状态从 episodes、EntityEdge、valid_at / invalid_at 和 hybrid retrieval,读 Graphiti 怎样让事实失效但保留历史。
Agent Memory · 第四篇 LangMem / LangGraph:记忆何时立刻写,何时后台整理从 manage_memory、BaseStore、checkpointer 和 background manager,读记忆到底由哪条执行路径改写。
Agent Memory · 第五篇 TencentDB Agent Memory:从本地记忆,到团队记忆服务器从 Context Offload 和 L0-L3,到 Gateway、Memory Hub、Memory Proxy,读团队资产怎样进入 Agent 上下文。
Agent Memory · 第六篇 OpenViking:当 Memory、Resource 与 Skill 进入同一棵上下文树沿一个 coding-agent 任务,读懂 viking://、L0/L1/L2、find/search 与两阶段 session commit,以及哪些内容最后会进入模型请求。
Agent Memory · 第七篇 Cognee / Supermemory:当多个 Agent 共用一套记忆服务比较 Cognee 的 add / cognify / recall 与 Supermemory 的 add / profile / search / connectors,看多个 Agent 怎样共用写入、检索与用户资料。
Claude Code 源码阅读 · 第一篇 先跟一次任务走完 Claude Code 的运行主线先沿公开镜像源码把 CLI、REPL、队列、query loop、模型调用、工具执行、 transcript 和 resume 串成一条可继续深入的阅读路线。
Claude Code 源码阅读 · 第二篇 Memory 不是聊天记录,而是长期指令层沿 CLAUDE.md 与各类 memory 文件,区分缓存读取、失效重载和不同请求入口;文件写入不等于下一次请求立即更新。
Hermes Agent 源码阅读 · 第二篇 Hermes Agent:一条信息究竟该放在哪区分 stable、context、volatile 与 turn-only,判断事实、证据、流程和临时状态分别应该写进哪个位置。
Hermes Agent 源码阅读 · 第三篇 Hermes Agent:任务收尾时,经验怎样进入后台复盘沿 finalizer、受限后台复盘与独立 Curator 周期,区分候选提案、已应用写入和后续可见状态。
Hermes Agent 源码阅读 · 第四篇 Hermes Agent:一条 /learn 请求怎样变成 Skill跟着指定资料的读取、归一化、写入、关系更新和后续加载,理解主动学习真正改变了哪份长期状态。
Hermes Agent 源码阅读 · 第五篇 Hermes Agent:训练、验证与留出怎样分工从任务记录、rubric 和数据来源开始,先建立公平比较的尺子,再启动任何 Skill 优化。
Hermes Agent 源码阅读 · 第六篇 Hermes Agent:DSPy 与 GEPA 怎样改写 Skill把 Skill 接成可修改的 instruction,跟完执行、反馈、改写与复测,再确认 Self-Evolution 原型实际接通了哪些步骤。
Hermes Agent 源码阅读 · 第七篇 Hermes Agent:代码改完之后,什么才算真的交付检查项目命令、hermes verify 与可选证据记录;结束前验证默认关闭,开启后也只有有界提醒,交付结论仍需核对实际结果。
Claude Code 源码阅读 · 第三篇 上下文快爆了,Claude Code 不是直接总结沿公开镜像源码拆解基础上下文、模型实际收到的内容、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 出发,看每个 hook 何时运行、能修改什么或阻止什么。
从 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 出发,看速度为什么来自请求形状。
跟随一次请求进入 session 与 turn,区分每步上下文、可选工具循环、客户端通知和用于恢复的持久记录。
Codex 源码阅读 · 第二篇 会话记录怎样变成下一次模型请求看历史记录与 StepContext 怎样分别准备,再由 for_prompt、WorldState 更新和 compaction 组成下一次模型输入。
Codex 源码阅读 · 第三篇 protocol 与事件流,客户端怎样共享同一套事实区分 turn/start 的新建与补充输入、接受回执与完成事件,以及实时通知和筛选后的持久记录。
Codex 源码阅读 · 第四篇 模型的工具请求怎样变成本地执行从工具注册表和调用路由走到 UnifiedExec,区分调用结果、仍在运行的进程和回到模型的工具输出。
Codex 源码阅读 · 第五篇 权限与 sandbox 怎样约束一次执行看审批策略、统一审查与 SandboxAttempt 怎样决定运行、拒绝或沙箱受阻后的受控重试。
Codex 源码阅读 · 第六篇 运行时事件怎样变成客户端界面沿 core、app-server 与客户端跟踪事件,区分流式显示、审批请求和从 rollout 重建的 turn/item。
Codex 源码阅读 · 第七篇 Skills、plugins、MCP 与 subagents 怎样进入一次 turn分清技能指令、插件资源、MCP 工具暴露与子任务的职责,以及它们怎样进入当前步骤。
Codex 源码阅读 · 第八篇 Hooks 在 turn 的哪些时刻运行,能改变什么按各自触发条件理解 prompt、tool、permission、compact、stop、interrupt 与 session end,判断 hook 能改变什么。
Codex 源码阅读 · 第九篇 Codex 怎样构造可复用的请求前缀区分请求前缀、缓存计量与 WebSocket 增量续传,核对不同模型的缓存契约和普通 Responses / Lite 请求形状。
Codex 源码阅读 · 第十篇 从 Rollout 记录重建会话与分叉跟随 JSONL 写入、反向扫描和尾部重放,理解会话恢复、分叉快照以及旧 rollback 记录的兼容处理。
Codex 源码阅读 · 第十一篇 SDK 与 app-server 怎样把外部调用转成 thread 和 turn看初始化、thread 与 turn 请求怎样接入 app-server,并区分事件订阅、输入接受和任务完成。
Codex 源码阅读 · 第十二篇 Codex 怎样从旧 thread 提取并复用经验看两阶段后台任务怎样提炼经验,隔离 v1/v2 记忆、处理污染来源,并在未来请求中按需复用。
Codex 源码阅读 · 第十三篇 Windows sandbox 怎样限制文件写入与网络访问看受限账户、令牌、ACL、网络规则与服务所有权检查怎样共同约束 Windows 命令执行。
Hermes Agent 源码阅读 · 第一篇 Hermes Agent:一轮任务如何运行,并把经验留给以后从用户消息走到 finalizer,看模型与工具怎样接力、记录怎样保存、任务怎样恢复,以及完成后的经验怎样留给以后。



































