我们直接落地做一版“Yi 式代码 Agent 几何设计图”,看起来有点像系统设计文档,但所有结构都是按 P–V–A + g₁/g₂/g₁₂/Δ_nc 反推出来的。
先一句话总结:
传统代码 Agent = 巨大 LLM 直接改文件;
新几何下的代码 Agent =「多模块世界模型 P」+「多层自动 V」+「分级可回滚 A」+「清晰任务路由」。
0. 先点名“现在的坏几何”
典型现状:
-
P:token 级语言模型 + 一点上下文 → 把整个代码库当长字符串看;
-
V:最多跑一下单测,有时连编译都不跑,τ 超长,很多错误要人类上线后才发现;
-
A:直接改主分支 / 大块重写文件,可逆性差,ε* 超高(动一下整个系统变分布)。
在 Yi 的语言里就是:
-
只在 P-regime 里 scale,(L_{\text{ideal}}) 下降;
-
但 g₁(验证延迟)、g₂(反身性)、g₁₂(顺序耦合)、Δ_nc(项目结构乱)都很大;
-
一旦进真实工程,Scaling Law 很快撞墙。
下面按“怎么改 P/V/A 几何”重构一版。
1. P 几何:用“工程动力学层级”的世界模型,而不是纯 token
1.1 三块 P:需求 / 代码 / 项目图
把代码 Agent 的 P 拆成三个明确子模型(可以是一个大模型内的不同“视图”,也可以真是多模型):
-
P_req:需求 / 任务世界模型
-
输入:自然语言需求、Issue、历史讨论、API 文档;
-
输出:结构化任务描述(Task Spec)
-
目标行为(行为描述、输入输出约束);
-
影响范围(哪些模块 / 服务 / 接口);
-
不可破坏的不变量(安全、性能、兼容性约束)。
-
-
-
P_code:代码层世界模型
-
建模单位:函数 / 类 / 模块 / 服务,而不是纯 token。
-
具备能力:
-
理解当前实现(AST + 调用图 + 类型信息);
-
在局部约束下合成新代码/修改代码;
-
知道“在哪个模块改最自然”。
-
-
-
P_repo:项目 / 系统动力学世界模型
-
表达:
-
模块依赖图(谁调用谁、谁部署在哪);
-
运维/配置关系(哪些配置对应哪些行为);
-
测试覆盖谱(有哪些测试覆盖哪些模块)。
-
-
是真正的“马尔可夫层级”:
-
状态 = 各模块版本 + 配置 + 部署情况;
-
转移 = 一次代码变更 / 部署流水线。
-
-
直观:
-
现在很多代码 Agent 把世界的 dynamical 层搞错了,停在“文件字符串”;
-
上面这三块是在 “工程动力学 / 项目状态” 这个层级显式建 P,Γα 会干净很多。
2. V 几何:把验证拆成多层、小 τ、结构对齐的反馈
目标:让 g₁(λ) 变小、Δ_nc 降维,而不是人肉兜底。
2.1 多层 V 金字塔
对每次改动,不是“测 or 不测”,而是按成本从低到高排一条固定 V 链:
-
V₀:静态快速检查(毫秒~秒级)
-
语法检查、Lint、格式、简单类型/导入检查;
-
作用:快速筛掉明显不合法的 patch,τ 极短。
-
-
V₁:编译 / 构建(秒~分钟)
-
确保整个项目仍可编译 / 打包;
-
给 P_code 明确信号:“这个改法会不会破整个 build”。
-
-
V₂:聚焦单元测试
-
根据 P_repo 的依赖图,挑与本次改动相关的一小撮测试跑;
-
降低 V 的时间成本,而不是整个 test suite 压过去。
-
-
V₃:属性/合同测试
-
为关键 API 定义行为合同(input-output property);
-
新改动是否违反合同。
-
这层更偏 P_req 的抽象结构。
-
-
V₄:灰度/实验性运行(可选,高成本)
-
在沙箱或小流量环境跑一小段时间,观察日志/指标。
-
每一层 V 都对应不同的结构:
-
V₀/V₁ 对应 token/AST 层;
-
V₂/V₃ 对应函数/API 语义层;
-
V₄ 对应系统行为层。
这就是让 V 的观察矩阵在几何上对齐 P 的模块和层级。
2.2 把 V 设计成 agent 内部的“硬约束”
要点:
-
Agent 内部的 Planner/Coder 看不到会绕过 V 的通道:
-
不能“为了图快”直接跳过 V₁/V₂;
-
每一层 V 的结果是可读的结构化 signal,回流给上游 P。
-
从 Yi 的角度,就是把验证当成系统几何的一部分,而不是事后监控。
3. A 几何:把代码修改变成“可逆、分层、可审计”的 A
目标:降低 g₂(ε*) 和 g₁₂(顺序耦合)。
3.1 行动拆级:Proposal → Review → Apply
不再允许“模型直接编辑主分支”,而是强制这个结构:
-
A_prop:提案级行动
-
输出:结构化 patch 提案
-
改哪些文件 / 哪些函数;
-
为什么要这么改(理由 + 对应 P_req 条目);
-
风险/不确定点列表。
-
-
这是一个“写 diff + rationale”的动作,不触碰真实 repo。
-
-
A_review:审查级行动
-
可以是人,也可以是 Critic Agent:
-
检查 patch 是否合理;
-
纠正指向明显错误的 patch;
-
-
审查过程本身产生日志,纳入 P 的训练数据。
-
-
A_apply:执行级行动
-
只在独立分支/PR 上应用 patch;
-
强制执行 V₀~V₂/3,若不过则自动回滚。
-
你其实是把大 A 分解成多个小 A,每一步都尽量:
-
可撤销(branch + PR + revert);
-
可审计(谁做的、为什么、当时 V 结果如何)。
3.2 行动可逆性的原则
在所有工程工具接口上,优先提供:
-
生成 PR 而不是直接 push;
-
提交前先有 preview link / diff 预览;
-
部署有灰度 & feature flag,支持快速回滚;
-
数据变更走 migration 脚本,可反向 apply。
在 Yi 的 SVD 语言里:
这相当于人为把“现实世界的转移矩阵”向更像置换矩阵的方向拉,把 Γ_(\alpha) 做大 → A 的出错损失更可控。
4. 路由几何:不同任务走不同 P–V–A 回路
4.1 三种典型任务轨道
-
小修复轨道(Bugfix Loop)
-
P_req:根据报错/issue 解析 bug;
-
P_code:局部推断问题所在函数;
-
V:重点跑相关单测 + 重现场景;
-
A:小 patch、单文件、小范围改动。
-
目标:g₁ 小(快速修)、g₂ 可控。
-
-
重构轨道(Refactor Loop)
-
P_repo:构建模块依赖图、识别高耦合区域;
-
P_code:生成新结构、分阶段迁移计划;
-
V:引入退化指标(复杂度、圈复杂度、依赖度)、对每步 refactor 做 V₀–V₂;
-
A:多 PR、逐步替换、保留旧接口。
-
目标:主要压 Δ_nc,减少未来开发的非凸性。
-
-
新特性轨道(Feature Loop)
-
P_req:把用户需求转成规范;
-
P_code:设计新模块或扩展现有模块;
-
V:行为合同测试 + 端到端验收;
-
A:先实验性开关 → 小流量部署 → 再放量。
-
目标:以任务损失为主,但不破坏既有因果结构。
-
智能体几何的优化点在于:
不要所有请求都走同一条“生成-写文件-跑测试”的线,而是根据任务类型选合适的 P–V–A 拓扑。
5. 多智能体几何:用角色分工替代一个大脑包办一切
最后是多 agent 层:
可以设计这样一个小系统:
-
Planner Agent(架构/任务规划)
-
负责 P_req + 粗 P_repo;
-
产出:任务拆解、影响面分析、实施计划。
-
-
Coder Agent(具体代码生成)
-
在 Planner 给定的局部上下文内工作;
-
只对特定模块/文件负责。
-
-
Critic Agent(审查 / 风险发现)
-
检查 Planner/Coder 的输出;
-
与 V₀–V₂ 的结果结合,指出不一致之处。
-
-
Ops Agent(集成 & 流水线)
-
跟 CI/CD 工具对接;
-
执行 V 流程,控制 A_apply 何时触发。
-
-
Meta Agent(策略调参)
-
观察长期表现:
-
哪种轨道 bug 多、roll back 多;
-
哪些模块易出问题;
-
-
调整:
-
不同轨道的 V 强度;
-
不同 Agent 的权限。
-
-
这就是把“智能体几何”从单个模型内的隐式结构,拉成显式的多节点决策图。
每个节点都有自己清晰的 P/V/A 子结构,整体几何可观察、可优化。
6. 如果只留一句“精简版设计目标”
你可以这样一句话概括这版重构:
Yi 式的代码 Agent,不是一个更大的“写代码机器”,
而是一套在正确工程动力学层级建模(P),
用多层自动化反馈缩短 τ 并对齐模块结构(V),
再把所有代码编辑变成可逆、分级、可审计操作(A),
并通过多 Agent 分工与任务路由,
尽量把不可避免的宇宙税交在“小步试探”和“改坐标”上,
而不是交在“拍脑袋大改”和“线上事故后的痛苦收拾”上。
1513

被折叠的 条评论
为什么被折叠?



