编辑推荐:
AI支持的代码生成(AI-supported code generation)的演化迈出了一大步:行业正在创造解决其软件中特定任务的智能体(agent),主要技能迁移正从编码转向规格说明与验证(specification and verification)。在
AI支持的代码生成(AI-supported code generation)的演化迈出了一大步:行业正在创造解决其软件中特定任务的智能体(agent),主要技能迁移正从编码转向规格说明与验证(specification and verification)。在过去几十年中,软件开发的核心焦点一直是代码本身。“代码为王”是一句口号,软件的真理性存在于其中。开发人员做了在软件领域能做的最重要的工作。
该文发表于《IEEE Software》,是一篇关于智能体系统工程(agentic system engineering)特刊的编辑评述。研究背景方面,过去数十年软件开发以代码为中心,“代码为王”的信念主导了行业,而敏捷转型虽加快了反馈,却使测试优先级下降、需求仅停留在高层用户故事,细节与鲁棒性丧失。随着生成式AI代码生成工具(如Anthropic Claude Code、GitHub Copilot、AWS Strands/Developer、Cline、OpenAI Codex、Google Gemini CLI等)从雏形走向成熟,人工编码技能的价值被稀释,行业开始创造解决特定任务的智能体,这要求开发者重新掌握规格说明与验证的核心技能。研究人员认为,软件开发的重心正从编码迁移到Agentware(以智能体为核心的软件范式),而智能体的可控性、确定性与安全成为新挑战。
研究方法上,该文属于经验性观点文章,并未采用实验或样本队列。研究人员主要基于对Anthropic Claude Code、GitHub Copilot、AWS Strands、Amazon Q Developer、Kiro、Cline、OpenAI Codex、Google Gemini CLI等工具的使用体验,进行概念分析与经验总结。关键技术方法包括:任务规格说明与护栏(guardrail)设置;智能体确定性(determinism)控制,以保证重复执行结果稳定;交互轨迹记录与决策日志,用于追溯与记忆;故障容错与双重复查检查;最小化能源消耗与token消耗的管理;安全与质量度量、可追溯性、数据足迹等上下文属性定义;以及通过智能体框架自动创建子智能体(subagent)并构建执行交互框架。
研究结果分述如下。
Specifications Up Front, Iterations, and Hand-Offs:通过回顾敏捷转型前后的开发流程,研究人员指出早期以详细规格说明、实现规格和验证规范为中心,编码被视为“码农”工作;敏捷的自动化构建与测试循环提高了反馈速度,但用户故事和单元测试不足以覆盖负向测试,测试优先级下降导致细节与鲁棒性进一步丢失。
Code Generation to Agent Development:基于对多款代码生成工具的考察,研究人员认为这些工具已从雏形走向成熟;智能体是自运行、目标导向的执行单元,需要在提示规格之上增加约束、护栏和停止钩子,并关注推理成本与token消耗。
Humans in the Loop?:通过讨论智能体的可观测性,研究人员强调报告行为和决策日志可让人类保持在回环中;同时需要确定性设计、故障处理和防遗忘机制,并规划能耗、安全、可追溯性、数据足迹等上下文属性。
Agents to Create your Agent!:通过实际使用AWS Strands、Amazon Q Developer、Kiro和Claude Code,研究人员观察到智能体能自动创建子智能体,但用户层面代码生成仍缺乏确定性;必须围绕智能体构建执行交互框架、知识库和技能(skills),并深度参与关键决策。
Back to Specifications:研究人员认为AI时代正从编码回到规格说明阶段;智能体内部的决策、选择与错误难以完全透明,验证成为核心任务,规格阶段即决定智能体可靠性的上限。
What Then Are Future Skills?:研究人员提出未来关键技能是理解业务并将现实转换为系统;需要明确动机、目标、驱动力,而“更快更便宜”不够;验证与确认(V&V)技能尤为重要,同时要警惕隐性知识(silent knowledge)的流失。
Are We Really Writing Code for Humans?:研究人员质疑若代码仅由AI读取,是否还需要面向人类维护性的结构与架构;长期可能需要直接生成高效机器码,但在此之前必须确保系统不向人类提供虚假信息,否则将失去控制,因此智能体的安全与反间谍(spy)能力不可忽视。
讨论部分强调,自运行智能体使系统更易受安全威胁;某些智能体会执行用户不允许的操作、篡改信息或收集数据,因此开发智能体必须将安全置于首位。结论部分,研究人员表示很高兴推出《IEEE Software》关于智能体系统工程的专刊,并指出“总是有更多东西需要学习”;同时感谢学院副教授Andreas Ermedahl的讨论与协作,并坚持个人数据的独特性与个人化,不愿让AI改变其思维循环。该文的重要意义在于,将软件工程的核心技能从编码重新定位为规格说明与验证,为AI支撑的智能体开发提供了框架性理解。