OpenAI详细介绍了一种名为“Harness工程”的新内部工程方法论。这种方法利用人工智能代理来推动软件开发生命周期中的关键环节。该系统通过一套名为Codex的人工智能代理来执行编写代码、生成测试用例以及管理可观测性等任务,而这些操作都是基于工程师们定义的指令性提示来进行的。 Harness工程标准化了工作流程,从而减少了对手工编写的脚本和定制工具的依赖。

OpenAI的技术团队成员Ryan Lopopolo提到:“我们开发Harness工程的目的是提供一种一致且可靠的方式来运行大规模的人工智能任务,这样团队就可以把精力集中在研究和产品开发上,而无需花费时间去管理基础设施的相关工作。”

在为期五个月的内部测试中,OpenAI的工程师们成功开发并推出了一款包含约一百万行代码的测试版本,而且其中没有任何一行代码是手工编写的。一小支工程师团队负责指导这些人工智能代理完成拉取请求处理、持续集成等工作流程。他们的工作内容包括实现应用程序逻辑、编写相关文档、配置持续集成系统、设置可观测性机制以及开发相应的工具。工程师们提供指令和反馈,而Codex这些人工智能代理则会自主地重复执行各种任务,包括重现故障、提出修复方案以及验证测试结果。

Codex:由人工智能代理驱动的应用程序测试与反馈机制(来源:OpenAI博客文章)

Harness工程使人类工程师将工作重点从编写代码转移到设计开发环境、明确各项任务的意图以及提供结构化的反馈上。Codex可以直接与开发工具进行交互,发起拉取请求、评估代码变更,并不断迭代直到满足任务要求。这些人工智能代理还会利用日志数据、性能指标等信息来监控应用程序的运行状况,并在不同的开发环境中重现故障。

Codex人工智能代理的可观测性管理与数据采集流程(来源:OpenAI博客文章)

OpenAI的内部文档被整理在一个结构化的目录中,其中包含了各种规划方案、执行细节以及设计规范。这些文档为人工智能代理提供了统一的信息来源。通过使用代码检查工具和持续集成验证机制,这些跨领域的设计文档能够确保其内容的一致性,从而大大减少了对人工审核的依赖。

OpenAI通过一系列机械性规则和结构测试,来确保不同领域之间的架构边界与依赖关系得到严格遵守。这些依赖关系会按照“类型 → 配置 → 代码库 → 服务 → 运行时环境 → 用户界面”这一受控顺序进行传递,同时所有系统组件都被限制在相应的层次结构内运行。结构测试能够验证各项规则是否得到遵守,从而防止出现违反模块化设计原则的情况。

Martin Fowler是Thoughtworks公司的技术专家,他在LinkedIn上发布的一篇帖子中提到了这一点。

“工程化框架”为人工智能驱动的软件开发提供了重要的指导原则。这一框架涵盖了上下文管理、架构约束以及代码优化等方面的内容。

OpenAI表示,“工程化框架”能够将开发过程中所需的支架结构、反馈机制、文档资料以及各种架构约束转化为机器可识别的形式。这些信息会被Codex系统中的代理组件用来执行各项开发任务,包括代码生成、测试以及性能监控等工作。

Comments are closed.