自进化编码 Agent 系统

OpenEarth 技术架构 用 git 承载经验演进 · 明文优先 · 无回退门禁 · 训推一体

飞轮 fork→rollout→reflect→gate→merge 五域 git 经验库 数据血缘可视化
Part 0 · 锁定决策

七条贯穿全局的设计哲学

这些不是功能,是约束——每个技术点都是它们的推论。

明文优先·权重兜底经验先做成可读文本(Skill/Memory),RL 权重后置
optimizer ≠ target优化器与被训 agent 是两个对象,优化器不碰经验存储
无回退门禁任何演进都过 Gate,correctness 不退才准并入
offline-first无网络/无 Docker 可跑,数据集本地缓存
agent-agnosticagent 经统一 Env/Runtime 接口接入,可换
训推一体训练与推理用同一份轨迹来源
Part 1 · 全景

五大子系统 + 一条飞轮

┌─ CLI · config(4模型角色) ──────────────────────────────────┐
  ORCHESTRATOR  ——  BranchEvolutionLoop(一次 run,多轮 rN)
    fork ─▶ rollout ─▶ reflect ─▶ merge ─▶ curate ─▶ gate
    main     跑agent解题    蒸技能    去重     改写      无回退
      └─新分支 train/<run_id>/rN          accept→merge回main
└──┬──────────┬───────────┬───────────┬──────────────────────┘
   AGENT      ENV         TRAINER      EXPERIENCE(五域 git 库)
   runtime    环境接入     优化器        Skills·Trajectory
   opencode✅  spreadsheet✅ analyst      Benchmark·Memory
   react       swebench✅   Gate(纯逻辑)  Knowledge + lineage
   6种         5个域        reflect       单 git 仓库
Part 2 · 存储层

git 作为经验数据库

不自建 DB——用版本控制系统承载"经验演进"。分支=实验,commit=快照,tag=阶段边界。

1分支即实验

train/<run_id>/rN 建模训练实验。merge 用真 git merge --no-ff——技能/轨迹/ledger 文件在分支上,merge 天然带过去。

2跟随分支的存储归属

轨迹与 ledger 跟随产生它的分支:train rollout 落 train,gate accept 随 merge 进 main,reject 留分支(负样本)。坑:写入时 checkout 已漂移 → 显式传 branch。

3ledger 的 union merge

ledger 单文件 append + 原地回填 gate。resume 复用分支时 merge 冲突 → .gitattributes 配 merge=union(行级并集去重)+ gate 回填在 merge 之前。

4零 checkout 血缘读取

git log/ls-tree/show 直读 git 对象,不动工作树(不干扰训练)。实测 13k commit / 48MB,骨架 ~15ms。

Part 3 · 飞轮

trajectory → skill 的闭环

5optimizer ≠ target 隔离

被训 agent 与优化器是两个对象。Analyst 纯函数式不碰 store——只 return,由 loop 落盘。4 个独立模型角色。

6无回退门禁 Gate

纯数值逻辑,零 LLM。correctness-first,效率 tiebreak。守卫:branch_score>0——失败得更快不是收益。抽成独立引擎,三种演进对象共享。

7reflect 双源蒸馏 + 去重

失败→教训、成功→配方;多 analyst ensemble;embedding 语义去重 + support 累加;curate sibling-awareness 防近义堆积。

8训推一体

训练与推理用同一轨迹源——opencode 原生 SQLite store。不从 stdout 抓(会截断),保证训推数据一致。

Part 4 · 接入层

agent-agnostic + 图文知识

9run-id 命名空间

train/<run_id>/rN。解决重跑撞名 + 多次训练血缘共存。

10统一 Runtime + Env

换 agent = 加 runtime;换任务域 = 加 env(observe/score)。

11judge 分域

oracle(spreadsheet 逐格对比) vs LLM-judge(knowledge)。

12hermetic rollout

OPENCODE_PURE + 隔离 config/data dir,避 db-lock、防全局 AGENTS.md 泄漏;per-rollout 流式日志。

13两阶段图文解析

PyMuPDF + PPT 整页渲染救回元素画的架构图 → VLM 图转文(kimi 真读像素,GLM 幻觉)。

14Knowledge push-primary

raw→compile→wiki(互链),关键词/索引检索,无 embedding(锁定)。

Part 5 · 重点

数据血缘血缘不是额外记录出来的,是从 git 结构里读出来的

把飞轮全过程 —— 数据集 → rollout → judge → reflect → gate → merge —— 做成可下钻追溯的血缘图。核心命题:用 git 本身承载血缘,不自建血缘数据库。

数据血缘 · 双维度

git 与 ledger 互补,不重复

血缘有两个正交维度:状态由 git 承载,因果由 ledger 承载。

gitledger
本质内容的版本(状态快照)因果的边(关系)
记什么每个 commit 的五域文件全貌{skill, source_trajs, op, gate, round, reasoning}
能回答这一步五域长什么样、diff 是什么这个技能为什么存在、来自哪些轨迹、门禁判了啥
不能回答不知道文件从哪几条轨迹反思来不存历史全文,不能 diff

git 是"发生了什么"的快照带,ledger 是"为什么发生"的因果图。

数据血缘 · 三栏 UI

三层血缘,鼠标可穿透

① 分支图(git tag 阶段节点) ─▶ ② 五域文件树(某commit快照) ─▶ ③ 文件内容
   ledger 提供因果边            git ls-tree 读树           git show 读全文

纵向血缘  分支图编码飞轮因果  fork→rollout→reflect→gate→merge,两 lane
横向血缘  相邻 commit 快照对比  rollout后Trajectory域满、reflect后Skills出候选
穿透血缘  文件里 source_trajs 引用可点击 — 技能↔轨迹↔门禁因果链追溯
读 git 对象不 checkout,与训练互不干扰 ~15ms / 13k commit
数据血缘 · 关键设计

血缘的四个非平凡决策

20tag 标阶段,不猜 message

阶段结构不在 commit message(那是每条轨迹的自动提交),在 git tag + -ck-* checkpoint 分支。血缘图读 tag,不解析 message(脆弱)。

21不降提交频率,加骨架 tag

每条轨迹一个 commit(3274个)是特性——保留单轨迹可追溯。每轮加骨架 tag 当节点,底层颗粒度不减,读取端有干净节点(折叠成 ~5节点/轮)。

22reasoning 落盘

reflect 的 LLM 原始输出 → Edit.reasoning → ledger。保护 optimizer≠target:analyst 只 return,loop 落盘。judge raw → reward_breakdown。

23-24按 run 分组 · 因果一起流动

多次训练全画一张图,parent 链只在同 run 内连。accept→整轮 ledger 随 merge 进 main,reject 留分支——血缘忠实

数据血缘 · 技术密度

"用 git 承载血缘"带来三个非平凡设计

零 checkout 读取

读 git 对象不动工作树,与训练互不干扰

tag/commit 分离

保留每条轨迹可追溯,又给血缘图干净节点

git/ledger 双维度

状态与因果正交承载

血缘不是打日志建表记出来的,是从 git 结构里读出来的。

Part 6 · 现状

成熟度速览

  • 飞轮闭环 fork→reflect→gate→merge,run-id 隔离 + 血缘可视化
  • Gate 独立引擎 纯逻辑,三种演进对象共享
  • 轨迹/ledger 跟随分支 对称,merge 带入 main
  • Knowledge 图文接入 PyMuPDF/PPT渲染 + kimi VLM
  • opencode + spreadsheet/swebench 实测
  • Memory 演进 profile 提取验证,未回流
  • 推理落盘 P1 存 JSON 结果,P2(思维链)待做
  • Skill Import 业界技能第二入口
  • 权重演进 GRPO 后置触发式
  • 自动环境合成 失败轨迹→新任务

三个最核心的技术选择

git 作为经验库

分支=实验、跟随分支存储、union merge、零 checkout 血缘——用版本控制承载经验演进

optimizer≠target + 门禁

优化器只有提名权,真伪由独立 Gate 在真实 env 判定

训推一体

训练与推理共用轨迹源,消除 train/infer 分布差

OpenEarth — 让 agent 解过的问题沉淀成可复用、可演进、可分享的技能

← → 翻页 · F 全屏 · Home 回首页