面向 Agent 的规范驱动开发(SDD):从公理化设计到持续性知识体系的范式转换
在软件工程演进的历程中,传统的代码中心化范式正面临着大语言模型带来的根本性冲击。随着生成式人工智能在代码生成、修复和重构领域的广泛应用,开发者正逐渐从手写代码的执行者转变为意图架构师。然而,这种转型催生了一种被称为 氛围编程 的非正式开发模式,其依赖直觉式的对话和模糊的提示词,导致了严重的上下文腐烂、架构漂移以及意图与实现之间的脱节 1。为了解决这些系统性失效,一种名为规范驱动开发(SDD)的严谨范式应运而生。该范式主张将规范视为第一等的、机器可读的真理源头,而将代码视为规范的派生制品 2。本文旨在探讨一种针对自主 Agent 定制的 SDD 全生命周期流水线,该流水线整合了用户需求文档(URD)、公理化设计分析(ADD)、模块驱动开发(MDD)、测试驱动文档(TDD)以及路径规划文档(RMD),并最终通过 LLM-Wiki 模式实现知识的重构与持续增长。
氛围编程的终结与规范驱动开发的兴起
在传统的 AI 辅助编程中,开发者往往直接向模型发送模糊的功能描述,期望模型能够直接生成可运行的代码。这种模式在处理简单脚本或原型设计时表现优异,但在面对大规模代码库和复杂系统架构时却迅速崩溃。其核心痛点在于大模型的健忘症:随着会话的深入,Agent 的上下文窗口充满了琐碎的讨论、过时的决策和失败的尝试,导致其核心架构决策消失,生成的代码前后矛盾 1。研究表明,氛围编程的主要失效模式包括指令偏离、记忆污染、角色泄漏以及工具误用 3。
规范驱动开发通过将规范转化为执行契约来应对这些挑战。在 SDD 范式下,规范不再是过时的文档,而是能够驱动代码生成、测试和验证的动态、版本化构件 2。这种转变要求开发者通过严谨的工程路径来定义系统的 做什么 和 不做什么 ,从而消除强迫 Agent 进行盲目猜测的歧义性 4。
开发范式特征对比
| 特征 | 氛围编程 | 规范驱动开发 |
|---|---|---|
| 核心真理源头 | 聊天历史与当前代码 | 机器可读的规范文档 |
| 上下文管理 | 线性累加,易产生噪声 | 结构化存储,持续更新 |
| 错误定位 | 症状驱动,难以溯源 | 契约驱动,能够回溯至需求 |
| 架构一致性 | 依赖模型随机性 | 依赖预定义公理与约束 |
| 可扩展性 | 随复杂度呈指数级下降 | 通过模块解耦保持稳定 |
第一阶段:用户需求文档(URD)——意图捕获与约束定义
Agent 驱动开发的第一步是构建高质量的用户需求文档。与传统面向人类读者的产品需求文档不同,面向 Agent 的 URD 必须具备高度的结构化和排他性。它不仅是功能的愿望清单,更是开发者与 AI Agent 之间签署的一份具备约束力的合同 5。
在 URD 阶段,核心目标是明确定义的 产出 而非简单的 功能 。例如,与其要求 Agent 构建一个登录流,不如明确描述其终态:用户应能通过邮箱或密码注册,接收验证邮件,并在不报错的情况下登录,且会话在页面刷新后持续 5。这种以结果为导向的陈述强制性地消除了模糊性,使得后续的验证成为可能。
此外,URD 必须明确界定 范围内 与 显式范围外 的边界。Agent 往往会基于预训练知识自动扩张范围,例如在未要求的情况下添加 OAuth 支持,这会引入不必要的复杂性和安全隐患 5。同时,URD 应整合项目的 宪法 ,其中包括技术栈选型、安全性标准、性能阈值以及治理规则 6。这种基础性的约束为 Agent 提供了持久的项目背景,使其在后续的迭代中不偏离组织的标准。
第二阶段:公理化设计分析(ADD)——系统设计的科学性保证
当 URD 确定了做什么之后,第二阶段是执行公理化设计(AD)分析。公理化设计提供了一种在功能空间、物理空间和过程空间之间进行映射的科学框架 7。在 Agent 辅助软件工程中,AD 的作用是弥补大模型在抽象推理和溯因逻辑方面的缺陷,特别是在模型难以从模糊需求中推导出正确层级结构的情况下 8。
独立性公理与信息公理
公理化设计的核心在于两条基本公理,它们是评估软件架构质量的最高准则:
- 独立性公理 :保持功能需求的独立性。在设计过程中,每个功能需求(FRs)应由一个设计参数(DPs)独立满足,而不影响其他功能需求 7。
- 信息公理 :最小化设计中的信息内容。在满足独立性公理的设计方案中,信息含量最少(即复杂度最低、成功概率最高)的设计是最佳设计 9。
这些公理为 Agent 提供了一个可量化的评估指标。通过将功能需求与设计参数的关系表示为设计矩阵,Agent 可以识别并规避 耦合设计 ,即那些修改一个组件会连锁引起多个功能失效的脆弱系统 9。
ADD 中的设计方程
ADD 阶段将需求转化为严谨的数学表达。设计方程描述了需求与参数之间的映射关系 9。设计矩阵的特征直接决定了软件的质量:
| 设计矩阵类型 | 数学特征 | 系统架构含义 |
|---|---|---|
| 对角矩阵 | 非零元素仅在主对角线 | 非耦合设计:维护成本最低。 |
| 三角矩阵 | 对角线一侧元素为零 | 解耦设计:存在执行顺序依赖,但仍可控。 |
| 全矩阵 | 多个位置存在非零元素 | 耦合设计:Agent 在此类系统中极易失败。 |
利用自然语言处理技术,Agent 可以将原始需求向量化,并在嵌入空间中进行功能耦合分析。这种递归的映射过程确保了从顶级需求到低级参数的分解路径始终保持逻辑连贯性 7。
第三阶段:模块驱动开发(MDD)——层级分解与解耦执行
基于 ADD 阶段生成的解耦设计矩阵,第三阶段进入模块驱动开发。MDD 的目标是通过 之字形路径 在功能域和物理域之间进行递归分解,直至每个设计参数都达到了可以直接编码实现的粒度 9。
在 MDD 阶段,Agent 不再处理整个庞大的代码库,而是专注于受约束的 子规范 。这种分解策略不仅降低了单一任务的 Token 消耗,更重要的是它建立了一种不重叠执行的模式。例如,在一个 Web 项目中,不同的页面可以作为独立的任务分配给不同的子 Agent 并行处理,因为它们彼此并不共享相同的文件 5。这种基于组件和页面的分解减少了文件锁竞争和冲突合并的可能性,显著提升了 Agent 的自主执行效率 5。
此外,MDD 阶段会生成设计结构矩阵(DSM),用于捕捉现代复杂物理信息系统中的跨域依赖关系 10。这种矩阵不仅指导了代码的组织结构,还为后续的自动化测试提供了精确的路径图,标出了系统中最核心的关键模块 11。
第四阶段:测试驱动文档(TDD)——验证契约与语义对齐
在本流水线中,TDD 被定义为 测试驱动文档 ,它将传统的测试驱动开发扩展到了文档验证的层面。核心理念是:测试即规范,文档即验证 12。Agent 需要根据前述阶段生成的规范,先编写验证逻辑(测试用例),再编写实现代码。
红-绿-重构的 Agent 化循环
针对 Agent 定制的 TDD 遵循一个严格的韵律化循环:
- 红阶段 :开发者或专门的协调者 Agent 根据需求编写失败的测试用例。这些测试用例充当了 Agent 的北极星,明确了完成的定义 13。
- 绿阶段 :实现 Agent 生成最少量的代码以使测试通过。此阶段仅追求功能的正确性 14。
- 重构阶段 :在测试通过的保障下,Agent 对代码进行优化和结构改进,同时不断重新运行测试以确保安全性逻辑未被破坏 14。
形式化验证与语义安全
仅靠单元测试不足以捕获复杂的架构违背和接口契约漂移。因此,流水线引入了形式化验证技术,如 VDM(维也纳开发方法)或 JML(Java 建模语言)规范 15。形式化验证通过数学证明的方式确认 Agent 生成的输出符合预定义的约束,确保了功能安全和语义安全 3。
| 验证维度 | 传统测试手段 | 形式化验证手段 | 预期收益 |
|---|---|---|---|
| 代码正确性 | 单元测试/集成测试 | 定理证明器 | 消除逻辑漏洞和死循环。 |
| 接口一致性 | 合约测试 | VDM-SL 前置/后置条件 | 保证跨服务调用的数据完整性。 |
| 意图对齐 | 人工评审 | 模型检查 | 确保复杂计划不违反安全约束。 |
研究表明,采用这种规范-翻译-验证流程的系统(如 VeriPlan)能够显著提高端用户规划任务的可靠性 16。
第五阶段:路径规划文档(RMD)——动态执行与资源调度
在文档编制过程的最后,流水线生成路径规划文档。RMD 不仅是静态的开发路线图,更是 Agent 执行任务时的动态导航系统。它将高层级的架构蓝图转化为一系列具备依赖关系的、可独立执行的任务图 17。
RMD 的核心价值在于处理未知的未知。Agent 驱动的开发往往涉及到分支搜索、失败回溯和局部微调 18。研究引入了 历史感知回溯 机制,使 Agent 在导航受挫时能够利用失败轨迹中的信息重新定位到更优的搜索起点 19。
此外,RMD 采用了经济理性的工作流。协调 Agent 会动态决定何时使用低成本的向量匹配策略进行简单检索,何时升级到高成本的大模型深度推理 19。这种成本感知的调度策略确保了项目在资源限制下仍能保持高效的执行路径 19。
知识重构:Karpathy LLM-Wiki 模式的深度集成
当各文档阶段告一段落后,流水线进入了最具创新性的环节:利用安德烈·卡帕斯提出的 LLM-Wiki 模式进行知识重构 20。
编译思维:从 RAG 到 Wiki
卡帕斯提出了一个精准的比喻:传统的检索增强生成(RAG)类似于代码的解释器,它在每次查询时都要重新扫描原始文档、分块和综合,这不仅低效且容易产生幻觉 20。而 LLM-Wiki 则类似于代码的编译器。在编译阶段,Agent 阅读原始的 URD、ADD 等所有文档,提取事实,压缩含义,识别实体间的复杂关系,并将其转化为结构化的、互联的 Markdown 文件体系 20。
LLM-Wiki 的三层架构
重构后的 Wiki 库采用了严格的三层所有权模型:
- 原始源码层 :存储不可变的原始文档。这是真理的审计线索,Agent 只能阅读不能修改 20。
- Wiki 层 :由 Agent 维护的 Markdown 文件集。每个概念都有独立页面,并进行交叉引用。Agent 负责在这里合成知识并强化链接 20。
- 治理架构层 :唯一由人类直接管理的部分。它定义了 Wiki 应追踪哪些概念。这构成了人类意图与 AI 执行之间的核心契约 20。
| 属性 | 传统 RAG 系统 | LLM-Wiki 模式 |
|---|---|---|
| 知识持久性 | 无——每次查询都是全新发现 | 强——知识随时间持续沉淀 |
| 合成时机 | 查询时即时合成 | 摄取时预编译 |
| 矛盾检测 | 难以实现 | 编译时自动检测并标记 |
| 推理深度 | 受限于单次召回的上下文 | 跨文档的深度关联 |
这种知识复利效应使得项目在演进数月后,Agent 依然能够保持对初始架构意图的深刻理解 20。
递归反馈机制:回溯至 URD 的纠错闭环
在 SDD 流水线中,回溯是一项核心功能。当 Agent 在实现或测试阶段遇到无法克服的障碍时,流水线会启动递归反馈回路。
失败即反馈的工程实践
实施阶段的失败往往源于早期的 论据缺陷 ,即需求本身存在无法自洽的逻辑矛盾 21。流水线采用历史感知回溯技术,当检测到失败轨迹时,Agent 会提取失败的根本原因,并自动回溯到 URD 层级进行修订 19。这种修订过程是受控的:新需求产生的变化会通过 ADD 的独立性公理进行审计,确保修订后的设计不会引入新的功能耦合 22。
强化学习驱动的自动纠错
最新的研究提出了 带回溯反馈的强化学习 (RLBF)。该机制通过在生成过程中插入特定类别的标识符,训练模型在检测到逻辑违规或安全风险时,能够精准地向后回跳并重新生成,而不是盲目地在错误的基础上打补丁 23。这种底层的机制支撑了从实现细节到顶级需求文档的无缝回溯能力。
行业 SOTA 框架对比分析
为了更好地理解这一流水线的先进性,我们可以对比当前行业内的顶尖 Agent 开发框架。
| 框架名称 | 设计哲学 | SDD 生命周期覆盖度 | 核心创新 |
|---|---|---|---|
| MetaGPT | 代码等于标准作业程序 | 高:包含 PRD, 设计, 任务 24 | 引入标准化作业程序协议。 |
| ChatDev | 虚拟软件公司模式 | 中:偏向瀑布流协作 25 | 通过多角色博弈减少幻觉。 |
| Spec Kit | 规范优先,代码第二 | 高:宪法、规划、任务 26 | 强化的技术栈约束与任务分解。 |
| AgentCoder | 测试驱动的独立生成 | 中:侧重 TDD 阶段 27 | 盲测生成,提高测试客观性。 |
| GSD | 无仪式感执行 | 中:侧重执行与路径规划 1 | 极致的工具调用与代码库修改。 |
对比可见,虽然 MetaGPT 和 Spec Kit 等框架已经引入了规范化的阶段,但它们往往缺乏公理化设计带来的严谨数学验证,且在知识的持久性重构方面尚处于起步阶段 28。
结论与未来展望
面向自主 Agent 的规范驱动开发(SDD)代表了软件工程运营模式的根本性转变 29。通过从 URD 到 RMD 的系统化建模,辅以公理化设计的数学纪律,开发者能够建立一个能够抵御上下文腐烂的鲁棒系统。
关键洞察总结如下:
- 意图高于代码 :在生成代码变得廉价的时代,清晰、形式化的意图表达成为了最稀缺的资源 21。
- 公理化设计的必然性 :公理化设计提供了一种机器可验证的架构评估手段,使 Agent 能够自我审计功能的耦合度 7。
- 知识的持续编译 :LLM-Wiki 模式将碎片化的开发历史转化为结构化的知识图谱,使 Agent 能够理解系统的全局脉络 20。
- 回溯作为生存机制 :能够承认失败并回溯至 URD 进行修订的系统,比盲目修复代码的工具更具韧性 18。
展望未来,人类将仅需维护一份高层级的 Wiki 和架构模式,而底层的代码生成、测试和路径优化将完全自动化地、具备数学一致性地进行 3。

-
What Is GSD? Spec-Driven Development Without the Ceremony | by Rick Hightower | Feb, 2026 | Spillwave Solutions. https://medium.com/@richardhightower/what-is-gsd-spec-driven-development-without-the-ceremony-570216956a84 ↩︎ ↩︎ ↩︎
-
Spec-Driven Development with AI Agents: A Practical Guide - Xcapit. https://www.xcapit.com/en/blog/spec-driven-development-ai-agents ↩︎ ↩︎
-
Formal Verification, Safety & Governance of Agentic Systems | by NJ Raman | Medium. https://medium.com/@nraman.n6/formal-verification-safety-governance-of-agentic-systems-96ed5efafe7d ↩︎ ↩︎ ↩︎
-
What Is Spec-Driven Development? A Practitioner's Guide for AI ... https://www.augmentcode.com/guides/what-is-spec-driven-development ↩︎
-
What Is Spec-Driven Development? A Practitioner's Guide for AI ... https://www.augmentcode.com/guides/what-is-spec-driven-development ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
-
Exploring Spec Driven Development (SDD)- A Practical Guide with ... https://levelup.gitconnected.com/exploring-spec-driven-development-sdd-a-practical-guide-with-github-speckit-and-copilot-72fd9a70535a ↩︎
-
Artificial Intelligence Tools for Better Use of Axiomatic Design - DSpace@MIT. https://dspace.mit.edu/handle/1721.1/153634 ↩︎ ↩︎ ↩︎ ↩︎
-
Axiomatic Software Design: What GenAI Cannot Design - OpenReview. https://openreview.net/pdf?id=dKwWm5yCUb ↩︎
-
Axiomatic Design - Advances and Applications - Functional Specs, Inc. - Acclaro DFSS. https://www.axiomaticdesign.com/technology/axiomatic-design-advances-and-applications/ ↩︎ ↩︎ ↩︎ ↩︎
-
Retrieval Augmented (Knowledge Graph), and Large Language Model-Driven Design Structure Matrix (DSM) Generation of Cyber-Physica - arXiv. https://arxiv.org/pdf/2602.16715 ↩︎
-
The Coming Need for Formal Specification - Ben Congdon. https://benjamincongdon.me/blog/2025/12/12/The-Coming-Need-for-Formal-Specification/ ↩︎
-
Test-Driven Development | Agentic Coding Handbook. https://tweag.github.io/agentic-coding-handbook/WORKFLOW_TDD/ ↩︎
-
Set up a test-driven development flow in VS Code. https://code.visualstudio.com/docs/copilot/guides/test-driven-development-guide ↩︎
-
Test-First Prompting: Using TDD for Secure AI-Generated Code | Blog | Endor Labs. https://www.endorlabs.com/learn/test-first-prompting-using-tdd-for-secure-ai-generated-code ↩︎ ↩︎
-
The End of Test-Driven Development: Best Practices for AI Agent-Driven Development with Formal Methods - DEV Community. https://dev.to/kotaroyamame/the-end-of-test-driven-development-best-practices-for-ai-agent-driven-development-with-formal-4ma5 ↩︎
-
VeriPlan: Integrating Formal Verification and LLMs into End-User Planning - arXiv. https://arxiv.org/html/2502.17898v1 ↩︎
-
Spec-Driven Development Is Eating Software Engineering: A Map of ... https://medium.com/@visrow/spec-driven-development-is-eating-software-engineering-a-map-of-30-agentic-coding-frameworks-6ac0b5e2b484 ↩︎
-
OR-Agent: Bridging Evolutionary Search and Structured Research for Automated Algorithm Discovery - arXiv. https://arxiv.org/html/2602.13769 ↩︎ ↩︎
-
Failure is Feedback: History-Aware Backtracking for Agentic Traversal in Multimodal Graphs. https://arxiv.org/html/2602.03432v1 ↩︎ ↩︎ ↩︎ ↩︎
-
Beyond RAG: How Andrej Karpathy's LLM Wiki Pattern Builds Knowledge That Actually Compounds | by Plaban Nayak - Level Up Coding. https://levelup.gitconnected.com/beyond-rag-how-andrej-karpathys-llm-wiki-pattern-builds-knowledge-that-actually-compounds-31a08528665e ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
-
SDD and the Future of Software Development - César Soto Valero. https://www.cesarsotovalero.net/blog/sdd-and-the-future-of-software-development.html ↩︎ ↩︎
-
ESA software engineering standards. http://microelectronics.esa.int/vhdl/pss/PSS-05-0.pdf ↩︎
-
Reinforcement Learning with Backtracking Feedback - NeurIPS 2026. https://neurips.cc/virtual/2025/poster/120267 ↩︎
-
MetaGPT: Meta Programming for a Multi-Agent Collaborative Framework - arXiv. https://arxiv.org/html/2308.00352v6 ↩︎
-
MetaGPT Vs ChatDev: In-Depth Comparison And Analysis - SmythOS. https://smythos.com/developers/agent-comparisons/metagpt-vs-chatdev/ ↩︎
-
An AI led SDLC: Building an End-to-End Agentic Software Development Lifecycle with Azure and GitHub. | Microsoft Community Hub. https://techcommunity.microsoft.com/blog/appsonazureblog/an-ai-led-sdlc-building-an-end-to-end-agentic-software-development-lifecycle-wit/4491896 ↩︎
-
AgentCoder: Multi-Agent Code Generation with Effective Testing and Self-optimisation. https://arxiv.org/html/2312.13010v3 ↩︎
-
ChatDev: Communicative Agents for Software Development | Request PDF - ResearchGate. https://www.researchgate.net/publication/384214451_ChatDev_Communicative_Agents_for_Software_Development ↩︎
-
Agent-Driven Development transforms the software industry - Twoday. https://www.twoday.com/blog/agent-driven-development-transforms-the-software-industry ↩︎