门户首页
MDE 高级讲义 · 实战专题(第四模块)

实战开篇:为什么给 Agent 轨迹建元模型

第一部分到第三部分讲的是 MOF / Ecore 的「语法」;这一篇开始,用本仓库自己的两套轨迹元模型,把理论跑成活的东西。本讲回答三个问题:问题域是什么?我们走了哪两条路线?它们在 M3–M0 四层蛋糕里各占哪一层?

生成时间:2026-10-08 · 版本 v0.2.2 · 实战专题全 5 讲(04 开篇 / 05 正向 19-EClass / 06 逆向 13-EClass / 07 实例案例集 / 08 动手与思考)· 生成 Agent:ZCode (LLM: GLM-5.3) · 载体:agentsoft-research-platform teaching-web-platform · 证据源:两套 .ecore 元模型真源 + 18 源真实轨迹语料(内容截至 2026-10)

概览

2
套自研元模型
19+13
EClass 总数
18
源真实轨迹语料
26
个源模型定义
项目说明
问题域主流 code agent(Claude Code、aider、Qwen Code、SWE-agent……)各自落盘执行轨迹,格式互不相同,无法放在一个可计算的公共视图下研究
路线一(正向)先设计元模型、再往里装数据——本仓 experiment_modules/trajectory_metamodel/trajectory.ecore,19 个 EClass
路线二(逆向)先收集 26 家真实落盘、从数据里反归纳元模型——vendored TMR 体系 trajectory_v2.ecore,13 个 EClass
与理论的接续两套元模型都是 M1 层「语言」,真实轨迹文件是 M0 层「实例」——mde/02 讲的 conforms-to 箭头在本专题处处可见
阅读顺序本讲(为什么)→ 05 / 06(两套语言本体)→ 07(真实实例)→ 08(动手)

第一篇 · 问题域:二十家落盘,一家一个样

第一篇 · 异构落盘之痛
不建元模型,你连「一条轨迹里有哪些东西」都无法统一表述。
本篇 · 1 个核心观察

每家 agent 都在「写日记」,但用的全是自家的暗号

同样一次「用户提问 → 模型回答 → 调工具 → 拿结果 → 再回答」,落成文件后长得毫无血缘:Claude Code 写 JSONL 事件流(queue-operation / sessionId),aider 写 Markdown 对话史,Qwen Code 写带 parentUuid 链的 JSONL,SWE-agent 写一个大 JSON 里的 history 数组,goose 甚至把会话存进 SQLite。想跨家比较「谁的工具调用更浪费」「上下文是怎么膨胀的」,第一关不是分析,而是「读懂」——每读懂一家就要重写一套解析器。

元模型视角的解法
  • 不逐家写解析器,而是先回答一个更根本的问题:「任意一条 agent 轨迹里,应当有哪些概念、概念间什么关系」——这就是元模型(M1)
  • 各家文件退化为 M0 层的「实例素材」:再怪的落盘,只要能映射到公共概念上,就进入同一个可计算视图
  • 映射不上去的(格式太Opaque、信号不足),宁可拒解也不硬塞——诚实性本身成为模型的一部分(见 07 讲拒解案例)
flowchart LR subgraph M0["M0 · 真实落盘(18 源语料)"] A1["claude
*.jsonl 事件流"] A2["aider
*.md 对话史"] A3["qwen-code
parentUuid 链"] A4["swe-agent
history 数组"] A5["goose
sessions.db"] A6["……共 18 源"] end subgraph M1["M1 · 轨迹元模型(本专题主角)"] B1["正向路线
19-EClass"] B2["逆向路线
13-EClass"] end A1 --> B2 A2 --> B2 A3 --> B2 A4 --> B2 A5 --> B2 A6 --> B2 B1 -. "经 adapters
接实验库轨迹" .-> M0
图 1 · 问题域全景:异构落盘(M0)与两套元模型(M1)。「逆向路线」直接吃 18 源真实文件;「正向路线」经适配层接本仓实验轨迹。证据:demo-corpus 18 源 + 两套 .ecore
下一篇展开:05 讲正向 19-EClass 06 讲逆向 13-EClass

第二篇 · 两条路线:先设计 vs 先归纳

第二篇 · 元模型的设计空间
同一领域、两套都合法的元模型——这是比「背下一套类图」重要得多的 MDE 见识。
本篇 · 一组对照

正向精雕与逆向归纳,各回答一半的问题

两套元模型不是新旧替代关系那么简单,它们是建模方向的两个极端,教学上正好互为镜子:

维度正向路线(05 讲)逆向路线(06 讲)
诞生方式先想清楚概念再定义:从上下文建模研究里长出来,手工业精雕先收 26 家落盘再归纳:每个概念都必须在真实数据里挣到自己的位置
类数量19 EClass / 9 EEnum / 20 条不变量13 EClass / 12 EEnum
最擅长的现象上下文生命周期:消息何时进入视野、何时被压缩/丢弃、每次模型调用到底「看见」了什么(ContextFlow / CallFrame / AssemblyOp)会话组织与真实新现象:子代理链(SubagentLink)、上下文压缩记录(CompactionRecord)、上下文纪元(ContextEpoch)
工程纪律.ecore 唯一真源 + regenerate 字节闸 + reconcile 对账(「元模型即代码」)26 个源模型定义 + canonical map + 认源打分(「拒答优先于错认」)
数据入口adapters 接本仓实验库 5-brand 轨迹18 源真实语料(demo-corpus)+ 用户投递
为什么值得两套都学
  • 正向路线示范元模型工程治理:怎么管住一份会演化的「语言说明书」(05 讲全量参考)
  • 逆向路线示范模型变换与多源收敛:26 种方言怎么塌缩成 13 个概念(06 讲)
  • 同一现象在两套里的不同表达(如「上下文压缩」:AssemblyOp 的 COMPACT vs CompactionRecord)是 08 讲习题的好材料
两套元模型的演化关系:13-EClass 为目标形态,当前并行、不合并

第三篇 · 放回四层蛋糕:M3 到 M0 各就各位

第三篇 · 与 mde/02 理论的接续
mde/02 讲过「模型 / 元模型 / 元-元模型」的相对性;这里把本专题的每个制品钉回它的层。
本篇 · 1 张定位图

我们的 .ecore 在 M2 层,实例在 M0 层

本专题所有制品都能在经典四层结构里找到座位。记住这张图,后面每一讲遇到任何文件,先问「它在第几层」:

flowchart TB M3["M3 · 元-元模型
Ecore(EMF 对 EMOF 的实现)
定义「什么叫 EClass / EReference / EEnum」"] M2a["M2 · 正向元模型
trajectory.ecore
19 EClass(05 讲)"] M2b["M2 · 逆向元模型
trajectory_v2.ecore
13 EClass(06 讲)"] M0a["M0 · 实例
5-brand 实验轨迹的
上下文视图"] M0b["M0 · 实例
18 源真实文件还原出的
Session/Turn/Step 对象图(07 讲)"] M3 -->|"-每个 EClass 都是 EClass 的实例"| M2a M3 -->|"实例"| M2b M2a -->|"conforms-to"| M0a M2b -->|"conforms-to"| M0b
图 2 · 四层定位:两套 .ecore 都用 Ecore 元-元模型写成(M2 层语言),真实轨迹文件还原后是 M0 层实例。07 讲将逐元素演示 conforms-to 对应
与站内其他页面的边界
  • 专题 05(工具链讲义)讲「机器怎么运转」:认源打分、四态判档、隐私架构——本专题讲「语言长什么样、实例长什么样」,工具链细节一律去那边看
  • UML 架构专题是对 agent 源码架构的静态建模;本专题是对 agent 运行时轨迹的建模——一个画骨架,一个拍 X 光
  • trajectory-0~4 系列是过程分析(PRA / 分类 / lint):拿轨迹做评估;本专题是先给轨迹建「可计算的语言」,分析是下游
两个容易混淆的数字:索引页的「19 源认源」说的是逆向路线认得出 19 种落盘格式;「19-EClass」说的是正向元模型的 19 个类。数字巧合,含义无关。

第四篇 · 系列地图与阅读路径

本篇 · 5 讲导航

按目的选一条读法

五讲的分工:04 讲为什么 → 05 / 06 讲两套语言本体 → 07 看真实实例 → 08 自己上手。

讲回答什么适合谁先读
05 全量参考19 个类、9 个枚举、20 条不变量逐一讲清——自研元模型的「字典」想先掌握语言本体、按图索骥的人
06 逆向路线26 种方言怎么收敛成 13 个概念;子代理 / 压缩 / 纪元三个新现象关心「从数据反推模型」的人
07 实例案例集真实文件 → 实例 → 元类的三层一线走读 + 18 源全量一览想「看见」模型长什么样的人(最直观)
08 动手与思考本机跑起来、投自己的轨迹、5 道习题(含「kimi 为什么被拒解」)课后练习 / 实训课
前置:mde/01–03(理论三部曲) 本专题版本 v0.2.2,内容钉版于 2026-10 真源