在我们的《现场笔记》系列中,Anthropic的前线工程师分享了基于真实客户部署的最佳实践。本文将介绍我们在管理大型代码现代化项目中的经验。
过去,代码现代化通常被视为需要多年、全员参与的长期项目,而现在借助AI,这些项目可以在几个月甚至几周内完成,但组织层面的工作流程往往保持不变。
例如,关键银行系统的每一次变更都必须经过变更管理、审查和批准。这一流程非常严谨,因为监管机构、审计人员和业务部门都有严格要求。
这些流程保障了关键系统的可信赖性,假设每个变更都是由人工编写并由人工审核。随着智能代理加速变更的编写,瓶颈从变更产出转向了组织的动员和管理。
本文将介绍企业在现代化实施前必须完成的准备工作:定义“完成”的标准、变更必须携带的证据、认证变更如何进入生产环境,以及启动现代化所需的前置条件。
我们将整个流程拆分为六个步骤:
- 定义目标:明确现代化代码必须达到的技术栈和行为标准。
- 制定认证标准:确定变更必须满足的条件以被视为正确。
- 设定推广策略:确定认证变更如何以产出速度进入生产环境的路径。
- 准备前置条件:包括环境、CI/CD、审查能力和审批流程。
- 构建并优化智能代理工作流:利用Claude Code动态工作流,将现代化任务拆分为多个并行子任务。
- 执行现代化:先在代码库小范围内验证工作流,确认无误后再全面推广。
第一步:定义目标
目标是现代化的最终状态。明确目标有助于确定采用哪种现代化类型,通常分为三类:
确定现代化类型
组织内部常围绕现代化类型展开讨论。靠近生产环境的团队倾向于保持行为不变,仅替换技术栈以降低风险(转换型现代化)。而长期维护代码的工程师及业务方则希望借此机会偿还技术债务,甚至引入新需求(重新构想型现代化)。
两者皆有道理,但若不提前达成共识,后续会因“变更是否正确”而产生争议。建立共识虽有初期摩擦,但能简化整体项目流程。
代码库映射与行为规范制定
理解现有系统是定义目标的关键第一步。提取旧代码实际行为并建立行为清单,有助于判断哪些部分应保留、修改或舍弃,从而确定现代化是转换型还是重新构想型。这一过程还常揭示未知的业务逻辑和边缘情况。
Claude可以辅助完成依赖映射和工作流文档,利用代码现代化插件的评估、映射和规则提取命令挖掘业务规则并附带源码引用,供工程师复核。
但仅靠Claude的自动发现可能无法完全捕捉遗留系统行为,需结合业务用户和开发者访谈及内部文档补充。上下文收集虽需时间,但对后续决策至关重要。
重新构想型现代化还需编写详细的行为规范,并与用户群体达成一致。

明确项目理由与目标
定义目标的同时,组织应明确为何要进行现代化。虽然现代化能降低维护和运营成本,但在我们经验中,成本降低并非大多数项目的首要驱动力。
风险降低往往是现代化最重要的收益。评估是否启动项目时,应考虑不现代化带来的风险。
例如,存在未修补漏洞的系统可能导致网络攻击或严重宕机,威胁业务安全。运行环境不受支持或懂系统的工程师减少也加剧风险。
智能代理编码工具如Claude Code缩短了现代化周期,但预算估算仍具挑战,导致项目推进缓慢。我们已公开部分大型现代化项目的成本数据,可作为参考。
启动项目的最大挑战通常是获得系统拥有团队及依赖团队的共识和承诺。构建业务案例并设定项目目标(尤其是领导层)有助于推动进展,也为后续认证标准和推广策略的权衡提供依据。当利益相关方对变更风险存在分歧时,不现代化的风险成为重要的平衡因素。
第二步:制定认证标准
认证标准是每个现代化变更必须满足的一组条件或测试。选择能最有力证明变更符合目标状态的条件。
每个条件应能自动检查,无需人工干预,以便智能工作流能持续迭代变更,直至满足认证,或标记人工复核。
认证内容通常包括但不限于:
- 原有测试套件全部通过
- 现代化过程中Claude编写的测试全部通过
- 测试覆盖率达到约定阈值
- 性能基准保持在允许范围内
- Claude独立的对抗性审查无阻塞问题
- 用户界面无回归
- 新旧版本对同一输入输出一致
- 持久化状态和数据格式双向兼容
- 变更在预发布环境运行一段时间无异常
- 静态分析和安全扫描无新增问题
- 编译通过且类型检查无误
制定认证标准时,应邀请负责变更审查和推广的人员参与,包括开发者、用户群体和业务负责人。
他们的专业知识决定认证标准的内容,早期参与有助于后续审查时的认可。一个好的认证标准应让他们仅凭认证证据就能放心合并变更。
认证内容和方式依现代化类型而异:

- 提升型现代化:以原代码库为基准,原测试套件为认证核心。
- 转换型现代化:同样以原代码为基准,但原测试套件通常无法直接运行,新旧系统流量回放、差异测试和并行部署替代测试。
- 重新构想型现代化:认证基于行为规范,难度最大,依赖规范驱动的测试、Claude的对抗性审查和差异检查,认证标准会随着规范完善不断调整。
遗留系统测试覆盖薄弱、测试不稳定、缺少监控数据时,应识别这些缺口。此时,利用Claude构建缺失的证据(如并行环境、回放工具、补充测试)非常重要。
第三步:设定推广策略
智能代理生成变更速度远超人工审查能力,推广策略是预先书面确定的分级审查流程,确保变更在合理时间内完成审查。
同认证标准一样,应与审查人员协作制定,并尽可能融入现有变更管理流程。不同组织和风险偏好会影响细节,但以下原则普遍适用:
- 按影响范围和代理信心分级变更,对关键路径保持全面人工审查。
- 根治重复出现的问题,分析重复标记的变更,调整工作流或认证标准,而非重复审查。
- 与审查人员共同设计输出格式,确保审查高效,优先展示关键信号。
- 合理分配专家时间,让专家聚焦高风险变更和标记,避免审查大量无关差异。
这些原则强调项目初期就让专家参与,调整认证标准和工作流,确保后续审查顺畅。

推广策略还应反映项目在速度与审查深度之间的权衡。临近硬截止期(如运行环境停止支持)的项目需加快节奏,接受更轻量审查和更高风险;时间充裕的项目则可采用更深入审查和缓慢切换。
在受监管环境中,轻量审查可能引发审批者顾虑,领导层则承担系统老化风险。我们建议推广策略由组织高层指令制定,且事先达成共识,确保责任共享。
所有这些都依赖于足够详细的认证标准和审查人员对Claude变更过程的理解与信任。
第四步:准备前置条件
这一步涉及现代化以外的团队,如平台、基础设施、QA、发布工程、安全合规等。每个团队通常有自己的待办事项和审批流程,应尽早沟通,通常在步骤1至3进行时同步推进。
环境
- 专用远程主机,能运行工作流并访问代码库及相关资源
- 满足认证标准要求的测试能力
- 加强认证的资源,如生产监控、并行环境或生产数据回放
代码库与CI/CD
- 代码依赖映射,基于构建日志、导入分析或运行时追踪
- 依赖包处理计划,作为目标定义一部分
- 兼容性检查集成到CI/CD(如需)
- 代码冻结政策(如在原地现代化)
- 针对开发者的沟通计划,涵盖冻结和兼容性要求
团队与审查
- 依赖团队对参与方式达成一致,如认证标准签字、推广策略审查,确保审查时间安排
安全与合规
- Claude Code访问模型获批
- 最小权限原则:仅写入现代化分支,无生产凭证
- 机密信息和个人数据脱敏或屏蔽
- 每次变更可追溯,PR关联代理对话和认证证据
- 新依赖的许可和漏洞检查
第五步:构建并优化智能代理工作流
利用Claude Code开发定制的动态工作流,分配现代化任务到多个并行子代理。
建议从代码现代化插件开始,将目标、认证标准、推广策略、代码库、文档及认证所需数据和工具放入文件系统或MCP,供Claude访问。本文也可作为上下文输入,构成项目的知识库。
随后,构建现代化工作流相对简单。邀请专家审查Claude的工作,特别是代码库特定技能和提取规则,确保下游流程可靠。
通过在代码库小范围内应用工作流,邀请专家审查变更、代理流程和认证证据,持续优化。
遇到问题应调整工作流而非单个变更,目标是确保大规模应用时变更普遍满足认证,审查人员能放心合并。
第六步:执行现代化
首先在代码库小范围内完成端到端现代化,包括通过推广策略审查和合并变更。及时修正问题,反复验证,确认无误后再全面推广。
转换型和重新构想型现代化通常先构建目标系统并行运行,完成后切换;提升型现代化还有另一选择:在活跃代码库上边开发边现代化。
当系统不能停机或代码库变动频繁难以维护独立现代化副本时,通常采用后者。实践中,将代码库按逻辑划分,从叶子节点开始冻结并现代化,逐步推进;并通过CI/CD限制新提交回退已现代化部分。

关于成本
常被问及现代化的token消耗。每个项目不同,主要成本驱动因素包括:
- 需读取与修改的代码量
- 认证标准的复杂度(验证通常比编写变更耗费更多资源)
- 认证要求的新测试编写与维护
- 运行过程中其他团队合并引发的协调工作
在小范围试点时测量token使用,推算全量成本。将试点未覆盖的因素(如实时代码库协调)视为未知,得到成本下限估计。
试点数据还帮助优化工作流,识别高消耗环节,调整验证顺序,将计算密集型验证放在更便宜检查之后。
可采用如Sonnet等模型平衡成本与能力,处理机械化、高频的认证检查;保留更智能模型处理复杂变换和对抗性审查。
当低成本模型未通过认证时,可升级到高成本模型,但需注意重试率,避免多次低成本尝试反而更贵。若Claude能访问工作流和试点数据,可协助分析。
现代化之外
现代化代码库是成果之一,其他成果包括生成代码的工作流、定义正确性的认证标准、已获变更管理认可的推广策略,以及每次变更的证据链。将这些流程固化为可复用资产,为未来升级或重写奠定基础。
我们的前线工程师与客户共同推进这些步骤,聚焦最关键系统。如果您正在准备现代化项目,请联系我们。


