简介:AI编程已分化为两条路线:对话驱动、即问即答的Vibe Coding,与以仓库为控制面、面向长时程agent的上下文工程。本文从架构、记忆、熵控制、验证、权限、成本六大维度系统对比两种范式,梳理七层控制栈与两条自治轴的通用参考模型,并给出典型场景选型建议与渐进式迁移注意事项,帮助团队判断何时从“随性写”走向“规范化用AI”。
过去讨论“代码质量”,默认前提是人写代码、人读代码、人维护代码。这个前提如今正在松动:从产品逻辑到测试、CI配置、文档、运维脚本,越来越多内容由编码agent生成、修改、验证和回收。仓库不再只是源码容器,它同时成为agent的工作现场、记忆层和控制面,系统因此持续承受熵增压力。
某头部AI实验室公开的工程实践给出了一个代表性样本:在agent-first的工作方式下,一个内部产品从空仓库起步,约五个月增长到百万行代码规模、合并约1500个合并请求,其中手写代码为零;agent产出的不只是产品逻辑,还包括测试、CI配置、内部工具、文档、评估脚手架与监控看板定义。
在这种吞吐量级下,“如何用AI编程”分化出两条路线:一条是以对话为中心、即问即答的Vibe Coding(随性编程);另一条是以仓库为中心、把工程规范内建进agent工作流的上下文工程(Context Engineering)与规范化编程。两条路线的差异不在于“用不用AI”,而在于控制面放在哪里:放在人的头脑与手工操作里,还是外化到仓库与自动化流水线里。这正是本文要对比的核心问题。
人给一段prompt,模型吐一段代码,工程流程的骨架仍是人类那一套:人规划、人review、人回滚、人做最终整合。上下文主要存在于会话窗口中,会话结束即丢失;典型姿势是“问一句、贴一段、跑一下”。它解决的问题是:以最低的认知成本和启动成本快速获得可运行代码,适合原型验证、一次性脚本和个人工具。
研究对象从“代码文本”扩展为四要素组合:repo(事实与记忆)+ harness(执行脚手架)+ runtime(运行面)+ agent(决策面)。核心思路是把记忆、规则、协议、权限、验证、清扫和授权收进同一套仓库控制系统,让agent能够长时间工作、跨工具协作、持续写测试和文档、甚至自己修复失败。人的角色从“每一步的操作者”退到“授权与审计的守门人”。其关键组件包括:
两条路线并非对立的两门技术,而是同一能力的两种组织方式,共同点相当多:
Vibe Coding是单会话、单文件视角,系统边界就是聊天窗口,控制面存在于人的头脑和手工操作中,上下文随会话生灭。上下文工程则是四层结构:repo沉淀事实、harness负责执行、runtime承载运行、agent负责决策,控制面被外化到仓库与CI流水线里,成为可review、可版本化、可回滚的工程资产。这一差异决定了前者天然不可规模化审计,后者可以。
Vibe Coding的记忆在会话内,跨会话即“失忆”,每次都要重新解释上下文,长期一致性依赖人的记忆,这对人本身也是负担。上下文工程把记忆外置为文档、指令文件、测试与评估集,agent每次工作先读仓库而不是依赖聊天记录,团队约定因此可以从“口口相传”变成“机器可执行”。
无论哪种路线,代码熵的常见表现可归纳为六类:
差异在于处置方式:Vibe Coding把熵留给事后人工清理,熵增与吞吐成正比;上下文工程把治熵做成持续过程——规则前置(指令文件声明约定)、验证内建(agent写测试并自修失败)、清扫例行(周期性安排agent清理死代码与过时文档)。前者是human-first的诊断学,后者是agent-first的控制系统。
Vibe Coding的唯一闸门是人肉review,反馈周期以“人看代码的速度”为单位,吞吐提升后人会成为瓶颈。上下文工程的反馈以自动化工序为单位:测试、静态检查、轨迹评分层层过滤,agent先自修再交人。工程上的基本规律是反馈越靠近变更发生点,修复成本越低——这正是后者在长时程任务中保持质量的关键。
Vibe Coding的每个危险操作都拦在人面前,安全但吞吐受限,且审批行为不可沉淀。上下文工程采用分层权限:只读建议、可写代码、可执行命令、可部署,配合沙箱、最小权限凭据与操作审计。需要清醒认识的是,风险形态发生了转移:从“人是否点得过来”变成“权限矩阵与沙箱设计得是否正确”,配置失误的后果会被放大。
Vibe Coding启动成本接近零,但单次正确变更的成本会随仓库熵增而线性甚至超线性上升,适合短生命周期代码。上下文工程前期需要投入建设harness、指令文件与评估集,启动成本高;但收益是把“未来每一次正确变更的成本”压平——这才是该路线真正优化的目标函数:不是“写出第一版的速度”,而是长期变更成本。此外,agent自写自测存在“自我通过”的假阳性风险,评估集需要人工抽样校准,这部分校准成本容易被低估。
Vibe Coding的边界:当代码量超过单人理解范围、出现多人协作、或需要长期维护时,熵增会失控。上下文工程的边界:一次性脚本、验证成本高于实现成本的场景、缺乏CI基础设施的团队,前期建设投入不划算。两者都怕“错误的位置上的自信”——前者错在把长生命周期项目当草稿写,后者错在为三天寿命的脚本建流水线。
| 维度 | Vibe Coding | 上下文工程 / 规范化编程 |
|---|---|---|
| 驱动方式 | 人写prompt、逐轮对话 | 需求拆解为长时程任务 |
| 控制面位置 | 人的头脑与手工review | 仓库 + CI + 指令文件 |
| 记忆 | 会话内、易失 | 外置到仓库、可持续沉淀 |
| 熵治理 | 事后人工清理 | 规则前置 + 验证内建 + 例行清扫 |
| 验证回路 | 人肉review | 测试 / 静态检查 / 轨迹评分 + agent自修 |
| 权限模型 | 每步人工批准 | 分层授权 + 沙箱 + 审计 |
| 启动成本 | 极低 | 较高(需建脚手架与评估集) |
| 长期变更成本 | 随熵增上升 | 趋于平摊 |
| 人的角色 | 操作者 + 整合者 | 授权者 + 审计者 |
| 适用生命周期 | 天到周 | 月到年 |
从规范化路线的工程经验中,可以抽象出一套通用的仓库控制栈模型,作为评估任何agent-first工程方案成熟度的标尺:
同时用两条自治轴校准agent的自由度:任务时长轴(从单步建议到长时程自主推进)与操作权限轴(从只读分析到可写、可执行、可部署)。工程化路线的推进方式不是一次性放到最大,而是沿着两条轴渐进放量,每一步都匹配相应的验证与审计能力。
不做绝对化推荐,选型应基于四个条件变量判断:
混合策略是团队常态:核心仓库走规范化路线,边缘工具允许Vibe,通过边界清晰的仓库隔离两种熵增速率。若自建控制栈的运维压力较大,也可将承载harness所需的容器算力、执行日志与监控告警等基础能力托管到百度智能云的容器平台、日志服务、监控告警等通用云服务类目上,把团队精力集中在规则与评估集本身。
从Vibe迁移到规范化路线,建议渐进推进而非一步到位重构:
仓库级agent指令文件的最小骨架示意(通用示例,字段按项目自行填写):
# 仓库级 Agent 指令文件(示例)## 项目事实- 语言与运行时版本:<填写>- 构建命令:<填写>- 测试命令:<填写>## 行为边界- 禁止修改 CI 配置与依赖清单- 禁止引入未经评审的新依赖## 交付要求- 行为变更必须附带对应测试- 命名遵循既有模块风格- 文档与实现不一致时,以实现为准并同步更新文档
迁移期需要重点防范三类新风险:指令文件本身会漂移,必须纳入review范围;agent自写自测的“自我通过”假阳性,需要人工抽样校准评估集;权限过度授予是最大单点风险,凭据应遵循最小权限与定期轮换原则。
Vibe Coding与上下文工程不是新旧替代关系,而是同一能力在代码不同生命周期上的分工。AI编程会持续施加熵增压力,真正拉开差距的不是谁先把功能写出来,而是谁先把记忆、规则、协议、权限、验证、清扫和授权收进同一套仓库控制系统。选型时问自己三个问题:这段代码要活多久?每周会发生多少次变更?出错的代价有多大?答案自然浮现。