1. 项目概述:从“代码生成”到“价值生成”的认知跃迁

最近在团队内部做了一次关于AI Agent在研发流程中应用的深度复盘,一个现象级的数字引发了激烈的讨论:我们部署的一个代码生成Agent,在单日峰值状态下,自动创建了超过300个Pull Request。这个数字初看令人振奋,仿佛生产力得到了指数级解放。但当我们静下心来,逐一Review这些PR时,一个更深刻、甚至略带焦虑的问题浮出水面:当Agent能够以如此高的吞吐量执行我们曾经引以为傲的“编码”任务时,作为后端工程师,我们的核心价值坐标究竟应该锚定在哪里?是彻底被替代,还是迎来了价值升维的契机?

这个问题,正是“后端学Agent Harness”系列第二篇想要探讨的核心。它不再局限于“如何用Agent生成代码”的技术操作,而是上升到了“工程师在智能体时代如何重新定义自身角色”的战略思考。Agent的规模化应用,如同一面镜子,照出了我们工作中大量重复、模式化、低信息密度的部分,也迫使我们去寻找那些无法被简单规则描述、真正创造差异化的能力。本文将结合我们团队从“工具使用者”到“价值定义者”的转型实践,拆解在后端领域,工程师面对AI Agent浪潮时,可以着力构建的几大价值护城河。

2. 现象拆解:300个PR背后,Agent到底做了什么?

在探讨价值之前,我们必须先客观分析这300个PR的构成。这有助于我们理解Agent当前能力的边界,以及它“替代”的究竟是哪一类工作。

2.1 PR内容类型分布分析

我们对这300个PR进行了归类分析,大致可以分为以下几类:

PR类型 占比 典型内容 人工介入程度
依赖库版本升级 ~35% 根据 dependabot 或安全扫描结果,自动升级 pom.xml package.json 中的库版本,并运行基础测试。 极低,仅需最终合并。
样板代码生成 ~25% 根据Swagger/OpenAPI文档或数据库Schema,自动生成Controller、Service、DTO、Mapper接口等CRUD层代码。 中等,需要人工检查业务逻辑适配性。
Bug修复补丁 ~20% 针对静态代码分析工具(如SonarQube)报告的特定类型问题(如空指针、资源未关闭)自动生成修复代码。 中高,需人工确认修复方案是否引入新问题。
测试用例生成 ~15% 基于现有业务代码,利用LLM理解逻辑后,生成单元测试或集成测试用例框架。 高,测试用例的有效性和边界条件需人工深度校验。
其他(文档、配置) ~5% 自动更新CHANGELOG、根据注释生成API文档片段、调整配置文件等。 低。

从这个分布可以看出,Agent目前擅长处理的是 高度结构化、模式固定、上下文明确 的任务。它像一个不知疲倦的“高级实习生”,能完美执行清晰定义的指令,但缺乏对业务终极目标、系统整体熵增、代码长期可维护性的深层理解。

2.2 Agent工作流的局限性洞察

即便在上述它擅长的领域,我们依然发现了其局限性,这些正是工程师价值的切入点:

  1. “正确”不等于“合适” :Agent升级的依赖库版本是最新的、语法正确的,但它无法判断新版本是否与项目内其他冷门库存在隐性的不兼容,也无法评估升级的紧迫性与风险(比如一个非关键安全补丁是否值得在发布前夜引入)。
  2. 缺乏“设计感”与“一致性” :生成的CRUD代码符合规范,但多个Agent生成的代码放在一起,可能会在异常处理风格、日志格式、缓存策略等细节上出现微妙的不一致,长期累积会损害代码库的整体性。
  3. 上下文盲区 :Agent基于当前文件或有限上下文生成修复或测试,它不知道这段代码在三个月前因为一个特殊的客户案例进行过hack,也不知道隔壁团队正在重构一个底层模块,下周就会导致接口变更。
  4. 无法定义“Done”的标准 :Agent可以完成“生成一个用户注册接口”的任务,但它无法定义这个接口在性能、安全性、可观测性上达到什么标准才算真正完成、可以交付。

实操心得 :不要神话Agent。把它视为一个拥有超强“执行记忆”和“模式匹配”能力的协作者。它的价值在于解放你从重复劳动中脱身,而不是替你思考。管理Agent的关键在于为其设计“精准的输入上下文”和“明确的成功验收条件”,这本身就是一个高价值的设计工作。

3. 价值重构:工程师在Agent时代的四大核心赛道

当基础的“代码搬运”和“模式实现”工作被大幅压缩后,后端工程师的价值必须向更高维度迁移。我们认为,以下几个方向构成了不可替代的价值护城河。

3.1 赛道一:复杂系统设计与架构决策

这是最核心的壁垒。Agent可以按照架构图实现模块,但它无法在诸多约束条件下(业务目标、团队能力、技术债、基础设施、成本预算、未来扩展性)进行权衡,并做出那个“最不坏”的架构决策。

  • 场景化设计能力 :理解“高并发秒杀”、“实时风控”、“离线大数据分析”等不同场景下的核心矛盾,并设计出针对性架构。例如,面对秒杀,是选择缓存击穿保护还是异步队列削峰?这需要对业务流量模式、数据一致性要求有深刻洞察。
  • 非功能需求的权衡 :在可用性、一致性、分区容错性(CAP)之间,在开发效率与运行性能之间,在技术新颖度与团队维护成本之间做出明智选择。Agent可以帮你实现一个RAFT协议,但无法告诉你当前项目是否真的需要强一致性。
  • 长期演进规划 :设计一个能平滑演进、而非动辄推倒重来的系统。包括模块边界划分、接口防腐层设计、数据迁移策略等。这需要历史经验和前瞻性思维的结合。

工程师行动指南 :将更多精力投入到前期设计评审、架构原型验证和技术选型论证上。使用Agent快速生成设计方案的对比Demo(例如,用Agent快速搭建一个基于gRPC和基于RESTful的微服务通讯样板),从而更高效地进行决策。

3.2 赛道二:模糊问题界定与需求工程

这是最容易被低估,却也是AI最难涉足的领域。业务方提出的往往是模糊的诉求(“我们要做一个能让用户更活跃的功能”),而非清晰的规格。将模糊需求转化为精确、可执行、无歧义的技术方案,是工程师的关键价值。

  • 需求挖掘与澄清 :通过多次沟通,像侦探一样挖掘出用户的真实痛点、潜在假设和未言明的约束条件。
  • 问题拆解与转化 :将庞大的、模糊的业务问题,拆解成一系列清晰的、可被Agent或团队执行的技术子问题。例如,“提升系统稳定性”可以拆解为“降低P95延迟”、“提高服务SLA至99.95%”、“建立全链路追踪”等具体可衡量的目标。
  • 定义验收条件与成功指标 :不仅定义功能是否完成,更要定义“完成得多好”。这包括性能指标、监控报警规则、用户体验标准等。这是你给Agent下达指令时必须提供的“黄金标准”。

工程师行动指南 :强化你的沟通和抽象能力。练习用流程图、时序图、状态机等工具与产品经理、业务方对齐。你的产出物不应只是代码,更应包括清晰的技术方案文档(PRD的Tech部分),而这正是Agent行动的“宪法”。

3.3 赛道三:高阶抽象、模式提炼与平台建设

当Agent能完成大量具体任务时,工程师的价值就在于 创造让Agent(和团队)更高效工作的“杠杆”

  • 领域抽象与建模 :深入业务领域,构建精准的领域模型(DDD)。这是业务的“源代码”,一个良好的模型能让后续所有的代码生成(包括Agent做的)事半功倍,且不易出错。
  • 内部开发平台与工具链建设 :打造团队内部的CLI、脚手架、低代码平台或精准的Agent工作流。例如,将常见的微服务模板、认证授权方案、日志规范封装成“一键生成”的套件,并集成到Agent的指令集中。你从“写代码”变为“定义代码生成的规则和生态”。
  • 设计模式与最佳实践固化 :将团队经过踩坑总结出来的最佳实践(如分布式锁的正确用法、缓存更新策略、异常处理规范)沉淀成可复用的代码模板、代码检查规则或Agent的提示词(Prompt)库。

工程师行动指南 :拿出时间做“磨刀”的工作。回顾团队过去半年重复性的开发工作,思考能否将其抽象成一个模板、一个生成器或一段标准的Agent指令。投资平台建设,其回报是团队整体效率的乘数提升。

3.4 赛道四:质量守护、风险管控与伦理思考

Agent生成代码的速度越快,对质量守卫和风险控制的要求就越高。工程师要成为系统的“免疫系统”和“安全官”。

  • 深度代码审查与架构守护 :审查重点从语法正确性转向设计合理性、一致性、性能隐患和安全漏洞。你需要像侦探一样,审视Agent生成的代码是否遵循了架构原则,是否存在隐蔽的循环依赖或潜在的死锁风险。
  • 混沌工程与韧性测试 :主动设计故障注入实验,验证由AI参与构建的系统在异常情况下的表现。Agent可以写单元测试,但难以设计覆盖“数据库主从延迟”、“网络分区”、“第三方API突然限流”等场景的混沌实验。
  • 技术债管理与系统演进 :评估Agent的快速提交是降低了技术债(通过规范模板),还是在累积技术债(通过生成大量缺乏设计的代码)。制定并执行还债计划。
  • 伦理与偏见审查 :当Agent参与决策逻辑(如推荐算法、风控规则)的代码生成时,工程师有责任审查其中是否存在不合理的偏见或伦理风险。这是人类不可让渡的责任。

工程师行动指南 :提升你的审查视角。学习使用架构守护工具(如 ArchUnit)、更高级别的安全扫描工具。在CI/CD流水线中,加入针对AI生成代码的特定检查环节,例如“模式一致性检查”、“设计规范校验”等。

4. 实操转型:构建你的“Agent赋能”工作流

理论需要实践落地。以下是我们团队摸索出的,将工程师价值与Agent能力结合的工作流改造。

4.1 工作流重塑:从“执行者”到“指挥官+审计官”

传统工作流:需求 -> 设计 -> 编码 -> 测试 -> 提交。 新工作流:需求 -> 深度分析与任务拆解 -> 为Agent编写精准“任务说明书”(Prompt) -> Agent执行生成 -> 工程师聚焦于高质量评审、集成测试与架构守护 -> 提交。

关键变化

  • 你的核心产出物变了 :从“代码行数”变为“任务拆解的质量”、“Prompt的精准度”和“评审发现的深度问题”。
  • 你的时间分配变了 :编码时间可能减少30%-50%,但需求分析、设计、评审和测试的时间需要大幅增加。
  • 你的协作对象变了 :除了产品和同事,你还需要学会如何高效地与Agent“沟通”(即Prompt Engineering)。

4.2 编写高质量Agent“任务说明书”(Prompt)的实践

让Agent有效工作的关键,是给它清晰的上下文和指令。这本身就是一项高价值技能。

  1. 提供充足的上下文

    // 差的Prompt:
    “生成一个用户登录的API。”
    
    // 好的Prompt:
    “你是一个经验丰富的Spring Boot后端工程师。请基于以下信息,生成一个用户登录的RESTful API端点:
    - 项目技术栈:Spring Boot 3.x, Java 17, Spring Security + JWT。
    - 数据库表`users`结构:`id` (BIGINT PK), `username` (VARCHAR UNIQUE), `password_hash` (VARCHAR), `email` (VARCHAR), `status` (INT, 1=正常, 0=禁用)。
    - 安全要求:使用BCrypt进行密码验证;登录成功返回JWT token(包含username和userId);失败返回标准错误格式(code, message)。
    - 代码规范:遵循项目已有的`GlobalExceptionHandler`进行异常处理;使用Lombok注解;日志使用SLF4J,级别为INFO。
    - 输出要求:生成`AuthController.java`、`LoginRequest.java`、`JwtResponse.java`三个文件,并给出必要的Service层方法签名建议。”
    
  2. 定义明确的成功标准和约束

    • “生成的代码必须通过现有的单元测试套件。”
    • “避免使用 @Autowired 字段注入,统一使用构造器注入。”
    • “响应体格式必须与项目内 CommonResult<T> 包装器一致。”
  3. 迭代与精炼 :将Agent的首次输出作为草稿,通过追加Prompt进行修正和优化。例如:“很好,但请将token的过期时间改为可配置的,并从 application.yml 中读取 jwt.expiration 属性。”

避坑技巧 :为不同的任务类型(如生成CRUD、修复Bug、写单元测试)建立Prompt模板库。每次使用后,根据结果优化模板,这是你团队的“核心资产”。

4.3 建立针对AI生成代码的专项评审清单

传统的CR Checklist不够用了,需要增加针对AI特性的评审项:

评审维度 具体检查点
架构一致性 生成的代码是否符合既定的分层架构?是否引入了不必要的间接层或循环依赖?
模式与规范 异常处理、日志打印、缓存使用等方式是否与项目其他部分保持一致?
业务逻辑正确性 AI是否误解了某个业务规则?生成的逻辑在边缘情况下是否成立?(需结合业务上下文深度判断)
性能与安全 是否存在N+1查询风险?输入验证是否完备?是否有数据泄露或注入的风险?
“过度工程” AI是否引入了当前阶段不需要的抽象或灵活性?代码是否足够简单直接?

5. 常见问题与心态调整实录

在转型过程中,团队和个人都会遇到各种问题和困惑。这里记录一些我们的真实经历和思考。

5.1 Q&A:工程师的典型困惑

Q:感觉Agent生成的代码我还要大改,不如自己写快,怎么办? A :这是一个常见的初期阵痛。关键在于 降低预期 提升Prompt技能 。不要指望Agent一次性产出完美代码。把它看作一个“超级自动补全”,能帮你完成70%-80%的机械性工作(如填充方法体、编写样板代码),而你聚焦于最核心的20%-30%的设计和调整。随着你Prompt水平的提升和团队模板的完善,这70%的质量会越来越高,你的修改成本会越来越低。

Q:我的工作都被Agent干了,会不会导致我技能退化? A :恰恰相反,这会 迫使你的技能向上迁移 。就像汽车取代了马车,马车夫的驾車技能“退化”了,但司机需要掌握更复杂的交通规则、机械知识和导航能力。你的“编码”肌肉可能用得少了,但“系统设计”、“问题界定”、“风险管控”这些高阶肌肉会得到前所未有的锻炼。主动去学习这些更高维度的知识,才能避免退化。

Q:管理层看到Agent一天生成300个PR,会不会觉得不需要这么多工程师了? A :这是一个沟通问题。需要向管理层清晰地传达价值变迁:工程师的价值产出从“代码行数/功能点”转向了**“系统复杂度管理能力”、“业务问题解决深度”和“平台赋能效率”**。用指标说话:例如,由于Agent处理了低级Bug,线上P1故障数下降了X%;由于工程师更专注于设计,项目关键模块的扩展性评分提升了Y%;由于内部平台建设,新功能平均交付周期缩短了Z%。你的价值不是被削弱了,而是变得更具战略性和杠杆效应。

5.2 心态建设:拥抱“指挥官”角色

  1. 从“工匠”到“建筑师” :过去我们以亲手雕琢每一块砖为荣,现在我们需要以设计宏伟蓝图、并指挥智能机器人高效砌墙为傲。
  2. 接受“不完美开始” :Agent的产出是快速迭代的起点,而非终点。接受它需要被修改和优化,把这部分工作视为“设计意图的校准”过程。
  3. 保持技术好奇心 :Agent是你探索新技术栈的“加速器”。想尝试用Rust写个性能模块?用Agent快速生成一个基础项目结构和示例代码,能让你跳过繁琐的初始化,直入主题。
  4. 强化批判性思维 :对Agent生成的一切保持审慎的怀疑。它的“自信”可能源于对错误的无知。你的判断力是最后也是最重要的防线。

当Agent一天能生成300个PR,它淘汰的不是工程师,而是那些只满足于做“人肉编译器”、不愿思考、不愿成长的“代码搬运工”。它像一股巨浪,冲走了岸边的泥沙,让真正坚固的礁石——那些拥有深刻系统思维、精准问题定义、卓越抽象设计和严谨质量守护能力的工程师——更加凸显。

这场变革不是末日,而是对后端工程师职业的一次“供给侧改革”。它要求我们放下对“编写行数”的执念,转而追求“创造价值的深度和广度”。你的战场,从IDE转移到了系统画板、需求会议室和架构评审场。你的武器,从熟练的API调用,升级为清晰的逻辑、精准的决策和富有远见的设计。

这条路并不轻松,它要求持续学习和思维升级。但这也是一个令人兴奋的时代,因为我们可以将更多的精力,投入到那些真正有趣、复杂且充满创造性的挑战中去。最终,工程师的价值,永远在于解决那些尚未被明确定义的问题,在于连接现实世界的混沌与数字世界的秩序。而Agent,是我们通往这个目标更强大的坐骑。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐