在当今软件开发领域,人工智能尤其是大语言模型(LLM)的崛起,为自动化代码生成带来了革命性的变革。随着模型能力的提升,越来越多复杂的软件项目开始尝试由AI从零开始独立完成。本文将深入探讨如何借助Gemini 2.5 Pro大语言模型,打造一个100%由LLM编写、符合HTTP 2.0标准的服务器,实现自动化开发与高度合规的完美结合。 HTTP 2.0作为现代网络通信的核心协议,在性能和安全性上都较HTTP 1.1有显著提升。规范详细且有完善的测试工具,比如h2spec,使其成为训练和测试AI生成代码的理想目标。选择Go语言作为实现工具,正是因为其简洁性和高效编译的特性,降低了模型生成代码时出错的风险,也提高了迭代速度。
项目起初,使用Gemini 2.5 Pro共耗费约59小时的API时间和350美元信用额度,初步实现的服务器通过了117项共145项HTTP 2.0标准测试,约占80.6%。失败主要集中在服务器未能在应返回错误时做出响应,这主要是因为测试客户端未发送异常或无效请求,导致某些错误逻辑未被触发。 针对这些不足,后续进行了多轮重构和迭代,AI模型每次收到失败反馈后都会制定修正计划,并在多个code-compile-test循环中改进代码质量。逐步提升服务器合规率,先后通过128项、137项、142项、144项测试,最终实现了所有145项标准完全通过,使服务器达到百分之百标准兼容。 最终产品被命名为Llmahttap,项目规模约为15,000行源代码及32,000行单元测试代码。整个开发过程约使用了119小时的API时间和631美元的信用额度,历时约两周。
由于初期Gemini 2.5 Pro每天仅允许1,000次请求,导致整体进度有所延迟,如果放宽限制预计开发时间可缩短一半。 尽管此HTTP 2.0服务器尚不适合生产环境,由于其TLS支持测试不足且缺少HTTP 1.1兼容,且存在潜在的安全隐患,但其代码结构完整且清晰,整体架构可以为研究AI辅助软件开发提供极具价值的案例。代码几乎全由AI生成,只有少量的单元测试代码由人工修订,以改善日志输出及分割大型测试文件,保障测试的顺利执行。 项目核心代码由一种基于Haskell的高阶非确定性编程语言(NOTPL)框架Promptyped生成。整个生成流程经过精心设计,首先导入完整的HTTP 2.0规范,自动生成文件清单及其依赖关系,并对文件调用进行拓扑排序,确保代码生成的顺序符合依赖规则。接着,针对每个文件,Detailed Task List(详细任务列表)被构造并逐步执行,采用严格的code-compile-test循环保证每项任务完成质量。
重构阶段同样遵循类似流程,辅助AI识别需要调整的文件,并智能生成修复计划。项目开发过程中数次人工干预,以调整文件生成顺序和合并功能重复的模块,从而优化整体架构和开发流程。 为了适应大规模代码生成,Promptyped框架也做了多项技术改进。引入单独的LLM校验步骤,防止模型冒充已完成未完成任务。增加对语法错误的实时检测和拒绝机制,以避免代码无法编译。针对重复失败流程,增强记忆清理与问题快速定位功能,确保生成过程稳定高效。
测试日志自动解析机制显著提升了调试效率。长达数百行的测试报错信息被智能截断和聚焦,让模型只需关注真正有问题的单元测试。事件追踪机制帮助模型维持一致的修改计划,避免无效的测试反复更改。 代码上下文管理方面,新增聚焦/去聚焦文件功能,允许模型只全量加载正在编辑的文件内容,其他文件则以“无焦点”方式仅保留类型和结构声明,从而大幅节省上下文空间和API调用成本。此外,采用正则表达式作为代码编辑范围的标记手段,通过模糊匹配精准定位修改区域,降低因行号错误带来的代码损坏风险。 项目采用宽容的工具调用语法,避免因语法要求过严导致调用失败。
模型生成错误时,还会自动触发有限上下文修正查询,进一步提升鲁棒性。代码文本采用原生字符串格式传递,避免了JSON转义带来的额外复杂度,提高了代码生成和编辑效率。 这次尝试不仅显示出大语言模型在非平凡应用程序从零开始开发上的巨大潜力,也揭示了强结构化工作流对提升模型性能和降低开发成本的关键作用。相较自由形式的智能体一蹴而就,结构化工作流使上下文利用更加高效,整体产出更稳定,且更易于监控和调整。 展望未来,作者计划引入更细粒度的代码聚焦功能,以单函数为单位管理上下文和编辑,允许模型高效处理几千行的大量测试文件。另外,同时支持多任务执行和管理,提高并行开发效率。
此外,后续还将支持将Promptyped框架自身迁移到Haskell语言,使更广泛的开发者社区能够用该工具集进行定制化流水线扩展。 总体而言,基于Gemini Pro的HTTP 2.0服务器构建案例,不仅是AI驱动软件开发成熟的里程碑,也为实现自动化、高效且合规的网络服务开发树立了新的标杆。在未来,随着模型能力和开发工具的不断优化,采用结构化大语言模型工作流开发复杂系统的趋势将更加明显,推动软件工程进入智能化新时代。