那你讲讲software factory

Software Factory 在这里可以理解为:不是让 Agent 帮你写几段代码,而是把“需求到交付”的整个过程组织成一条可重复运行的软件生产线。 Agent 执行其中的工作,人负责确定做什么、制定验收标准、处理例外和批准交付。 拿一个具体例子讲。 假设要给打车 App 增加“预约行程提醒”。普通 Coding Agent 的用法是:你把需求交给它,它改代码,你再自己找相关服务、准备环境、跑测试、检查界面、跟进 CI、找人 review。 Software Factory 则把这些衔接也纳入系统: 需求进来 → 查清已有页面、后端服务和负责人 → 形成方案与原型 → 编码 Agent 修改前后端 → 启动环境验证 → 生成带验证证据的 PR → CI 与审查 → 人批准 → 进入后续维护。 这个例子是示意,不是 Uber 原文里的具体业务案例。下面 Uber 的实现细节来自 Port 对其工程师演讲的整理;Uber 官方博客目前仍抓取失败,不把二手解读冒充官方原文。 一、核心不是“有几个 Agent”,而是交接能不能自动完成 即使你同时启动十个 Agent,如果每个 Agent 都要你手动补背景、分配环境、搬运结果、催测试、判断完成没有,那仍然是你在当调度系统。 Factory 要把这些交接变成明确的流程: 一个任务从哪里开始? 进入下一阶段需要满足什么条件? 交付的是代码,还是代码加测试证据? 失败以后怎么返工? 哪些操作需要人审批? 所以它和多 Agent 编排有交集,但不是同义词。多 Agent 编排关注多个 Agent 怎么协作;Software Factory 关注整个软件交付过程怎样持续运转。多个 Agent 只是可能的执行方式。 二、Uber 的实现可以拆成“公共平台+交付流程” 公共平台解决每个 Agent 都会遇到的问题。 上下文:代码在哪、依赖谁、谁负责、设计文档是什么。Uber 用 context graph 把散落在多个系统里的组织知识连接起来,而不是让 Agent 每次重新调查。 Skills:把内部开发和验证方法做成可复用的操作规范,集中登记、检查和持续评估。例如“启动模拟器并验证页面”,而不是每次临时写一段提示词。 工具与模型入口:MCP gateway 管工具接入与访问,LLM gateway 管模型调用、身份检查、敏感信息处理和成本归属。 执行环境:预热隔离环境,准备好代码和索引,让 Agent 接到任务后尽快开始干活,不必每次从零搭机器。 这些基础设施本身不会交付功能,但它们让上层工作流不必反复解决同样的问题。 三、最值得注意的是:先验证,再消耗共享资源 Port 的整理里,Uber 的编码 Agent Minion 做真实功能时先停在草稿 PR,不直接触发共享 CI。 它先在自己的执行环境完成一轮检查,包括静态分析、模拟器截图验证,以及连接 staging 后端的集成检查。 通过后,再进入共享 CI 和更深入的审查。 这不是“不要 CI”,而是把能提前发现的问题前移。 原因很实际:以前人写代码慢,CI 接收到的变更有限;现在 Agent 可以快速产出大量改动,如果全部把 CI 当试错环境,昂贵的共享资源就会被半成品堵住。 因此 Factory 优化的不是“每小时生成多少代码”,而是“每小时能有多少合格变更通过整条生产线”。 四、交付物不是裸 diff,而是带证据的改动 人接到 PR 时,除了代码,还应看到已经通过哪些检查、界面截图等验证结果。 这会改变 review 的重心: 不是先替 Agent 查“能不能启动、页面有没有明显坏掉”,而是重点判断“需求理解对不对、设计是否合理、业务风险是否可接受”。 但检查通过不等于需求正确,更不等于可以无条件上线。人仍然承担关键判断,而不是被一个绿色状态替代。 五、维护也进入同一套生产系统 Uber 的案例还包括定期维护,比如 A/B 实验结束后清理不再需要的功能分支。 重点不只是“Agent 会自动清代码”,而是这些维护任务被集中管理:什么时候跑、一次产出多少改动、谁来接收,都有边界。Port 的整理提到,他们利用周日 CI 的空闲容量执行,并限制周一落到工程师面前的 diff 数量。 这说明真正的 Factory 不会只盯着生成能力,还会考虑下游是否吃得消。 你可以把它和 CI/CD 的关系理解为: CI/CD 主要自动化“已有代码变更之后,怎么检查、构建和发布”。 AI Software Factory 把自动化向前延伸到需求理解、方案和编码,向后延伸到维护;CI/CD 仍然是其中的重要部分,而不是被替代。 它最核心的变化,是把优化对象从“单个程序员写代码的速度”,变成“整条交付链路的吞吐量、质量与成本”。 因此,代码写得更快以后,瓶颈不会消失,而会转移到需求决策、验证能力、CI 容量和人工审批。Software Factory 真正要解决的,就是不让这些环节被快速生成的代码淹没。 来源: https://newsletter.port.io/p/how-uber-built-a-software-factory