Agentic Software Engineering: Foundational Pillars and a Research Roadmap


结构化智能体软件工程(SASE):基本支柱与研究路线图

1. 引言

随着能够编写、测试和提交代码的强大自主智能体(AI teammates)的出现,软件工程(Software Engineering, SE)领域已从AI增强开发时代(SE 2.0)迈入了更强大的智能体软件工程(Agentic Software Engineering, SE 3.0)时代。然而,尽管智能体的生产力惊人,但其产出的代码在真正达到“可合并”(merge-ready)的质量标准方面仍存在“速度与信任”的鸿沟,这导致人类开发者在审核环节不堪重负。

为了解决这一根本矛盾,本文提出了一个名为结构化智能体软件工程(Structured Agentic Software Engineering, SASE) 的愿景。SASE的核心论点是引入一个结构化的二元性,认为SE领域必须同时服务于两种截然不同的模式:

SASE概览

这一二元性要求对SE的四大支柱——行动者(Actors)、流程(Processes)、工具(Tools)和产物(Artifacts)——进行系统性的反思。为此,SASE提议用两个专门构建的工作台取代传统的集成开发环境(Integrated Development Environment, IDE):

人类与智能体之间的交互不再是临时的聊天,而是通过一系列版本化的、机器可读的结构化产物进行的结构化对话,如人类编写的 \(BriefingScript\)(任务计划)、\(LoopScript\)(工作流手册)和 \(MentorScript\)(最佳实践指南),以及智能体生成的 \(Consultation Request Packs (CRPs)\)(咨询请求包)和 \(Merge-Readiness Packs (MRPs)\)(合并就绪包)。本文旨在提供一个概念框架,激发社区对SE未来的广泛讨论,并最终提出一个研究路线图。

2. 从“代理”到“自主”:AI在软件工程中的分层框架

为了在更广阔的视野中定位SASE,本文提出了一个类似于汽车行业自动驾驶SAE等级的AI能力分层框架。该框架首先区分了两个核心概念:代理(Agency),即系统为实现给定目标而行动和执行计划的能力;以及自主(Autonomy),即系统自我管理并独立制定目标的能力。

Level 0: 手动编码 (No-AI SE) [SE 1.0]

Level 1: Token辅助 (AI增强编码) [SE 1.5]

Level 2: 任务-代理 (AI增强SE) [SE 2.0]

Level 3: 目标-代理 (智能体SE) [SE 3.0]

Level 4: 特定领域自主性 [SE 4.0]

Level 5: 通用领域自主性 [SE 5.0]

本文提出的SASE愿景专注于成功驾驭SE 3.0(即智能体SE)时代所需的产物、流程和工具,因为这是当前行业面临的最紧迫的挑战。

3. 智能体软件工程的兴起

3.1 工业相关性

软件工程已成为展示生成式AI投资回报率(ROI)的主要试验场。这得益于几个因素的独特融合:

  1. 高成本劳动力:工程师薪水高,即使是微小的生产力提升也能带来巨大的经济回报。
  2. 丰富的训练数据:代码仓库、问题单和提交历史构成了知识工作领域中最庞大、结构最完善的数据集之一。
  3. 可衡量的结果:编译器错误、测试结果等清晰的成功指标为强化学习(Reinforcement Learning, RL)提供了有效的奖励函数。
  4. 强大的安全网:自动测试和CI/CD流水线降低了模型在实践中部署失败的风险。

这种工业界的聚焦已将智能体软件工程从理论概念推向了战略层面,引发了各大科技公司在定义和主导这一新兴市场上的激烈竞争。

3.2 什么是智能体及近期关键观察

“智能体”的概念仍很模糊。本文根据代理(执行计划)和自主(制定计划)的程度对其进行划分:

自主智能体代表了一种根本性的转变,即从显式编码逻辑转向用自然语言描述行为,形成了一种可用散文来编程和重构的“FMware”。

3.3 SWE-Bench等基准测试上的智能体解决方案简述

对SWE-Bench(评估大模型SE能力的事实标准)的深入研究表明,当今大模型生成的代码远未达到可合并的标准:

3.4 GitHub数据中的野外智能体解决方案简述

大规模开源活动分析证实,智能体正重塑开发工作流。GitHub Copilot完成一个拉取请求(pull request)的中位时间仅为13.2分钟。不同智能体在不同任务类型上表现出高接受率。然而,这种超高生产力也带来了严峻挑战:代码审查成为主要瓶颈,超过68%的智能体生成PR面临长时间延迟或无人审查。这凸显了对可扩展审查自动化的迫切需求。

4. 激励性示例:智能体软件工程工作流剖析

本文通过一个具体例子来展示智能体SE时代的机遇与挑战:一名开发者在1.5小时内通过编写详细的自然语言规范,指导一组智能体异步工作,并行生成28个不同的PR来解决7个问题单。

智能体SE工作流概览

这个新工作流暴露了当前流程、产物和工具的差距,而SASE正是为解决这些差距而设计的。

4.1 新工作流

开发者的角色从编码者(coder)转变为规约者(specifier)。通过触发智能体进行N版本编程(N-version programming),不仅提高了成功的概率,也促进了创造性探索。

4.2 流程与产物差距

  1. 从模糊工单到可操作的简报包:为避免失败,应将任务规约视为一等产物。本文提出\(Briefing Pack\)的概念,它是一个结构化的、类似于详细工作指令的活文档,包含“做什么和成功标准”、“架构上下文”、“战略建议”和“潜在陷阱”。这可以通过专门的语言\(BriefingScript\)来实现。

  2. 智能体反馈与指导的多维性:指导智能体是多维度的,包括显式和持久的指导(通过\(MentorScript\)固化最佳实践)、智能体从具体修正中推断的指导、对整个SE流程的反馈,以及对多个备选方案的综合指导。

  3. 从模糊控制到显式编排:为了让智能体理解任务的“利害关系”,开发者需要一种方式来明确传达所需的严谨程度。\(LoopScript\)作为一种声明性语言,允许教练为智能体定义明确的标准操作程序(Standard Operating Procedure, SOP)。

  4. 从代码审查到基于证据的监督:人类的认知负担应从审查原始PR转移到审计结构化的合并就绪包(Merge-Readiness Pack, MRP)。MRP是一系列证据的集合,证明智能体的工作在功能完整性、验证的健全性、工程卫生、理由清晰度和可审计性方面是值得信赖的。

4.3 工具差距

  1. 为人类开发者设计的新工作台——ACE:传统IDE已不适用。人类教练需要一个智能体指挥环境(Agent Command Environment, ACE),用于管理和编排并行的N-N协作。ACE应支持N版本编程、高级程序理解、新产物(如\(BriefingScript\))的创作,以及将人类作为智能体可调用的“端点”(通过\(CRPs\))。语音交互有望成为ACE的主要交互方式。

  2. 为智能体优化的工作台——AEE:智能体需要自己的智能体执行环境(Agent Execution Environment, AEE)。AEE应配备为智能体而非人类优化的工具,如超强调试器、语义搜索工具和结构化编辑器。它还应具备强大的监控基础设施,自主处理低级问题,只将需要人类战略干预的重大问题上报给ACE。

5. SASE的工程活动

SASE的愿景通过一系列结构化的工程活动来实现。以下活动是一个初步的概念框架,旨在激发社区对话,而非最终定论。

5.1 简报工程(BriefingEng):任务简报的艺术

在SE 3.0时代,工程师的主要产出从实现逻辑转变为清晰无歧义的意图和指导的表达。简报工程(Briefing Engineering, BriefingEng)正是将这一关键技能规范化的活动。