MUNDERDIFFLIN / LEARN
CHAPTER 02
第 02 课 · 建立地图12 分钟阅读入门

先别钻进代码:用四层模型看懂整个系统

把复杂桌面 Agent 系统拆成体验层、控制层、执行层与事实层。后续每一段源码都能被放回明确位置。

本课核心问题面对两万多行主进程代码,怎样不迷路?
学完你能
  • 建立四层职责地图。
  • 学会用所有权、跨界与事实三个问题阅读源码。
建议先学

无需前置课程

01
第一张地图

四层不是四个目录,而是四种责任

Experience 负责把事实变成可操作界面;Control 负责权限与编排;Execution 是外部 CLI 与 PTY;Facts 则是 config、SQLite、Hive 文件和运行时事件。

  • 01体验层:React、Zustand、Pixi、xterm;可以展示和发出意图。
  • 02控制层:Electron Main managers;可以碰进程、文件、Git、数据库与网络。
  • 03执行层:node-pty 与 provider CLI;真正运行 agent loop。
  • 04事实层:有多个存储,但每类事实必须只有明确权威。

把它想成机场:大屏是体验层,塔台是控制层,飞机是执行层,航班计划与雷达记录是事实层。

02
阅读算法

每看到一个函数,只问三个问题

谁拥有这个动作?它跨过了哪条边界?它读写的事实由谁说了算?这三个问题比记住目录结构更可靠。

  • 01所有权:谁可以失败、重试、撤销或清理这个动作?
  • 02跨界:Renderer→Preload、Preload→Main、Main→PTY、进程→文件分别改变什么信任?
  • 03事实:这是即时事件、缓存、持久记录还是协议状态?

不要先问‘这个文件做什么’,先问‘这个副作用最终由谁负责’。

03
证据等级

从产品现象到源码结论,要经过四级证据

本课程把设计意图、静态实现、运行时行为和架构判断分开,避免把‘看起来如此’写成‘一定如此’。

  • 01L1 产品现象:能看到什么、点到什么。
  • 02L2 静态实现:函数、分支、类型、存储 schema。
  • 03L3 运行时证据:日志、进程、文件变化与网络行为。
  • 04L4 架构判断:基于场景解释收益、风险与替代方案。
ARCHITECTURE NOTE

课程中的源码卡片固定到 commit 956bfb4c;它们证明该版本的静态实现,不自动证明所有平台上的运行结果。

LESSON CHECKPOINT

能用自己的话回答核心问题了吗?

先定位责任层,再追调用链,最后验证状态权威。