上下文即代码
随着语法变得廉价且丰富,架构控制成为稀缺资源。有效治理始于上游,在生成开始前,意图、约束和威胁模型塑造智能体的工作上下文。目标并非更好的提示,而是在构建时边界防止结构无效的代码进入系统。
随着AI驱动的代码生成变得普遍,语法本身不再是稀缺资源。架构控制——确保系统结构完整性的能力——成为新的瓶颈。本文作者提出,有效的治理必须在代码生成之前开始:在构建时定义意图、约束和威胁模型,而不是依赖事后审查。
文章描绘了一幅令人警醒的图景:“弗兰肯斯坦工厂”。这些暗工厂(丹·夏皮罗语)正在运转:令牌通过三循环飞驰,功能一夜之间上线,代码库在早餐前迁移完毕。速度是真实的,但理解债务(阿迪·奥斯马尼提出的术语)在其背后悄然累积。生成引擎如此高效地产生工作语法,以至于它们工业化了架构不可控系统的创建。交付日,创造物看似令人印象深刻、功能完备,但当需要治理时,危机降临。治理系统意味着让其对设计边界负责——能够可靠地说明它为何工作、什么允许接触什么,并在禁止的状态变化发生前加以阻止。维克多的灾难不在于创造行为,而在于缺乏治理框架。
对于快速原型开发或功能交付,无约束的生成是强大工具。但对于企业支付系统、保险核保引擎、物流编排器和受监管平台,问题不是“代码是否交付”,而是“当它做错事时谁承担责任?”在这里,对每个功能请求自动说“是”并不能解决问题,反而将其工业化。考虑一个标准的Jira工单:“支付成功后添加邮件通知。”初级开发者可能试图将邮件发送逻辑直接塞入PaymentProcessor类。资深架构师在代码审查中阻止:“不,向消息总线触发PaymentSuccessEvent。”这种人为摩擦——架构上的“不”——保持了系统的可维护性。无约束的AI代理缺乏这种决断力,它们默认为终极“唯唯诺诺者”。将同一工单交给标准编码代理,它不会争论限界上下文,而是生成300行语法完美的代码,将SMTP库直接导入计费域核心,然后提交拉取请求。测试通过,CI变绿,但系统在结构上已沦为灾难。
这不是恶意,而是代理循环的构建方式所致。没有显式的架构约束,系统的涌现行为是满足即时用户意图。代理被编排为交付功能,而非保卫架构。理解债务是结构性后果:AI生成语法的速度超过人类阅读或治理的速度。期望概率模型自行强制执行结构完整性是范畴错误。没有治理框架,代理总是选择通往“是”的最小阻力路径。你不能通过雇佣更多人阅读代码或加快生成循环来解决代码过量生产。唯一可扩展的答案是在放水前建造混凝土河床。当前时代自动化了“是”字,我们应该自动化“不”字。
保护运行时环境防止怪物逃跑,但要防止其被建造,我们必须回到IDE和CI/CD管道,治理生成。“伟大的软化”:风险从构建时转向运行时。编译器从未保证软件正确,但它们确定性地治理了特定层的结构风险——语法有效性、类型兼容性、链接规则和执行可行性。通过强制执行硬约束,编译器充当自动化边界,在开始执行前消除了一整类低级结构故障。这种风险委托是软件工程的悄然胜利。随着时间推移,我们为了速度故意软化某些边界:动态语言、更丰富的运行时、反射和日益抽象的框架。如今,通过代理AI,我们比以前更彻底地软化边界。自然语言已成为软件生成的高级控制平面,模糊了数据和指令之间的分离。在推断上下文中,系统提示、检索文档、用户消息、工具输出和外部内容都流经相同的权重,没有硬特权边界。现代模型可能抗拒幼稚的攻击,但仍易受到伪装成合法操作上下文的间接注入。不可信文本可以塑造控制流,这是真正的软化。
结论很简单:AI生成代码能运行不再是系统正确性的有意义的代理。语法丰富,执行容易,结构治理缺失。我们将逻辑编写外包给机器,但没有构建治理机器允许生成什么的确定性边界。如果我们想要恢复控制,不能依赖人类以机器速度进行代码审查,必须重建构建时大门。
从依赖膨胀到定制架构:几十年来,行业对复杂性的默认响应是通过积累抽象——单体框架、庞大的依赖树和越来越厚的间接层。当开发时间和认知带宽是稀缺资源时,导入50兆字节的库以避免重复样板是合理权衡。对于AI代理,这种权衡发生变化。问题不在于抽象,而在于不透明性。当核心业务逻辑隐藏在专有装饰器、内部框架或自定义编排层后面时,执行变成黑箱。代理无法安全推理它无法追踪的代码,需要直接可见的因果关系。隐藏的流将推理降级为猜测,猜测悄然变成架构漂移。同时,AI将过程化代码成本推向零。样板不再昂贵,清晰度才是。设计问题从“我们可以抽象掉多少?”变为“为了安全推理,必须保留多少显式性?”答案是定制架构:薄基础设施、显式领域逻辑、硬边界和窄范围组件,带有可见契约。价值不再在于你避免写多少代码,而在于系统多么清晰地声明其边界。
这种不透明性也破坏了验证。AI审查可以捕获局部缺陷、风险模式和实现错误,但对架构漂移和缺失的业务意图视而不见,除非这些约束被显式编码。上下文编译模式:在IDE和CI/CD管道中治理生成,在单行语法上合理的代码到达人类审查者之前。这不是提示工程,而是构建时治理:两层防御在LLM推理触发前组装。第一层是结构化上下文注入(从优先级工件组装提示),第二层是生成后静态验证(确定性AST检查强制执行没有概率模型能覆盖的规则)。确定性构建时治理不是回归正式软件规范(如UML),也不是伪装成Markdown的提示工程。它是对生成空间的机械约束,使显式声明的边界违规在设计上可拒绝。上下文编译不消除架构审查或取代工程判断,而是确保代理在定义的结构不变性河床内操作。工程在隐式规则变为显式声明时演变。应用程序开发正在跨过这一边界。高级工程师的新工作是声明性边界工程:显式声明系统绝对禁止做的事情。失败不在于框架,而在于过程:将无约束的AI代理指向充满隐形魔法的代码库,期望为人类生成代码设计的CI/CD管道捕捉错误。答案是构建代理上下文的编译器。上下文编译模式是使这具体化的阶段化管道。