2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

Copilot 慢慢逼疯微软程序员:AI 写代码,人类收烂摊子,修 Bug 也全靠改 PR 标题?

  • 2025-05-28
    北京
  • 本文字数:3696 字

    阅读完需:约 12 分钟

大小:1.69M时长:09:49
Copilot慢慢逼疯微软程序员:AI写代码,人类收烂摊子,修Bug也全靠改PR标题?

近日,一场关于 GitHub Copilot 的风波在 Reddit 上引发开发者群体的广泛关注。一位用户以《我的新爱好:眼睁睁看着 AI 如何慢慢逼疯微软员工》为题发帖,调侃微软的 Agent 在 .NET 仓库中提交的一系列“令人头皮发麻”的 PR(Pull Requests),指出 Copilot 在这些 PR 中的表现都不尽如人意,因此他“忍不住从中找到了幸灾乐祸的快感”。

 


他还提到,自己也替那些被要求审查这些 PR 的微软员工感到心疼。他猜微软高层可能是强制性地要求大家用 Copilot,而程序员们也只能硬着头皮去应付。所以他说,他的“幸灾乐祸”更多是针对那些只知道吹捧 AI、盲目推自动化的微软领导。

 

这个帖子引发了大量围观与讨论,也意外地成为了探讨 AI 编程现实与预期之间落差的切入口。

 

Copilot Agent 公开测试引发争议

 

本周,微软正式发布了 GitHub Copilot Agent。据官方介绍,这一代理基于先进的大模型,擅长在经过充分测试的代码库中执行低至中等复杂度的开发任务,涵盖添加功能、修复 Bug、扩展测试、重构代码和完善文档等场景。

 

从网友观察到的一些 PR 来看,微软工程团队正探索在 .NET 仓库中引入 Copilot Agent,尝试让 AI 自动发起代码修改的拉取请求(PR),这些应用场景包括底层系统修复、跨平台兼容性适配、正则逻辑修正、项目文档补全等。

 

微软选择将 Copilot Agent“放到一线”承担底层系统修复任务,或许是想展示 AI 编程的应用边界,但结果却适得其反。

 

巧合的是,就在两天前的一次开发者大会上,一位微软 .NET 员工展示了 GitHub Copilot 如何融入他们的日常编码工作流。

 

00:00 / 00:00
    1.0x
    • 3.0x
    • 2.5x
    • 2.0x
    • 1.5x
    • 1.25x
    • 1.0x
    • 0.75x
    • 0.5x
    网页全屏
    全屏
    00:00


    在演讲中,这位员工表示,AI 在代码开发层面表现出色,例如被用于更新正则表达式引擎、协助编写代码和修复现有错误,并提升内存扩展模块的能力。在整个软件开发流程中,AI 也被用于合并代码、创建和处理测试用例。该员工更是断言,AI 在日常工作中显著提高了他们的工作效率,已经完全脱离了“炒作”阶段。

     

    微软还在演讲中明确指出,“正则表达式引擎”是 AI 最适合“练手”的领域之一。

     

    他们强调,诞生于 2003 年的 .NET 正则表达式引擎,在沉寂多年后,正是通过 AI 才焕发新生:“有了 AI,重构这个引擎的整个过程发生了变化”。AI 让他们大幅提高了效率,比如在 literal optimization(字面量优化)方面,AI 甚至能够迅速列出几十种潜在的优化路径,其中不乏人类此前未曾尝试的思路,例如针对 Lookahead Anchor 的优化等。微软员工透露,基于 AI 的思路他们提交了一个 PR,这项优化将在 .NET 10 中生效,并能带来约 10 倍的性能提升,因为“做的事情大大减少了”。

     

    GitHub 实践中的“残酷现实”

     

    然而,也正是因为在这个 AI 最擅长的领域,Copilot 在 GitHub 上的实际公开的表现反而让人们更直观地看到了“AI 在预期和现实之间的差距”。

     

    例如,在 PR 115733 这个正则表达式相关的 PR 中,Copilot 试图处理复杂嵌套量词触发的 IndexOutOfRangeException,确保正则表达式引擎的行为与用户期望一致(匹配或不匹配),而不会因意外异常而中断应用程序。值得注意的是,这并非唯一 Copilot 在 GitHub 上尝试修复正则表达式相关问题,类似的 PR 还有别的,但尝试的效果都不尽如人意。

     

    在 PR 115733 中,Copilot 与人类协作者之间的完整互动过程大致持续了 3 天左右。

     

    三天前,Copilot 向 .NET Runtime 仓库提交了这个 PR,并请求代码审查。同时添加了新的测试文件,但未将测试文件加入项目,导致测试未运行。

     


    Copilot 给出的方法,描述得头头是道,但结果不太顺利。

     

    随后一天,资深微软工程师 @stephentoub 评论指出:AI 的修复“仅止于表面”,并未解决导致栈回溯失效的根因。同时提醒测试文件未生效。



    Copilot 随即修复构建问题并提交新版本测试。但这个测试加入项目后仍然还是直接失败。





    所以 Copilot 忙活半天,可能也就是把标题给改了。

     


    最后,看不下去的社区开发者纷纷加入讨论,多位开发者表示“Copilot 是不是在浪费我们时间”,并建议它删掉测试重写、或者干脆关闭 PR。

     

    目前相关 PR 仍未能交付有效修复方案,也未获得审查者认可,算是一次阶段性失败。不少开发者在评论区直接表达了强烈的不满。一些人批评微软“花大量资源喂养一个只会写坏代码的 AI”,认为这是在浪费计算资源、污染代码库,背离了 .NET 基金会应当交付高质量代码的初衷。

     

    也有用户担忧,这些需要人类“看护”的 AI 将压垮人类维护者,并且最终会导致不合格的代码进入生产环境,损害整个项目的可持续性与可信度。

     

    他们质疑微软是否将 Copilot 视为取代开发者的“编程乌托邦”,尤其在近期裁员背景下,这一做法显得尤为讽刺。

     



    这也是微软内部战略的经验教训?

     

    这几天,随着 PR 的异常行为在 Hacker News 和 Reddit 上迅速传播,开发者社群的质疑声浪也水涨船高。许多技术人坦言:“距离真正靠谱的自动化开发,还有不小的距离。”网友指出,最令人沮丧的不是 AI 提交了无效代码,而是:每条评论下方都挂着一行“请通过反馈帮助改进 Copilot”,但从头到尾,没有一条反馈得到响应。并且更有趣的“PR 是通过删除/注释掉测试用例或更改断言来“解决”测试失败的 PR”。

     

    另外,即使人类在评论中明确指出“测试没有被添加到项目文件中”或“新增测试失败”,AI 依然重复犯错,让人感到像在与一个“既不看评论、也无法理解自己在做什么的初级开发人员”协作。

     

    “我无法想象那些不得不处理这种情况的人会是什么感受......如果我不为这边的人感到难过的话,这整件事就太搞笑了。”有开发者如此说道。

     


    不过将大模型类比初级开发人员的说法也引起了一些反驳。一位开发者指出,这是对初级开发人员不公正的侮辱。因为真实的初级开发者通常能快速学习,不会反复犯低级错误。他认为 LLM 可以作为“高效的思路发散和重复劳动加速器”,但还未达到替代实习生的水平,更遑论正式开发者的水平。

     


    有不少网友猜测这可能并不是单一团队的技术失败,而是微软高层“全线推进 Copilot”战略的一环。其他网友也从代码仓库中翻出了更多这种 PR,多个仓库同时上线 AI 代理,节奏一致,背后很可能是统一部署的行动,而一线开发者则似乎正努力配合这项还不够成熟的任务推进。

     

    在那条爆火的 Reddit 贴文中,发帖人也特别强调了自己“幸灾乐祸”的真实指向:“我的批评其实是冲着那些大肆宣传 AI 的微软高管去的。”对于微软的程序员,他抱有很强的同情态度,并为这些开发人员表示“感到难过”。

     

    微软高层的推动意图,其实早已有迹可循。就在几天前,微软 CTO Kevin Scott 在播客采访中直言:

     

    “我觉得,那些还在坚持认为‘技术还没准备好’的人——比如他们尝试做点什么时觉得‘成本有点高’或者‘功能还差一点火候’——如果因此选择继续观望,恐怕很快就会被远远甩在后面。为未来一年,一切都会变得更便宜、更强大,这是我非常确定的事情。放在 2025 年来看,这已经不是一个难以接受的判断了。”

     

    从上而下推动 AI 工具的普及,并非微软一家的策略。在许多科技公司,类似的趋势正在显现:AI 正逐步以“自上而下”的方式进入开发工作流,而不再完全依赖开发者自发采用。

     

    微软高级应用科学家 Brian Houck(研究开发人员生产力) 也在一次播客中分享了他们推动 AI 在开发团队中落地的经验。他提到微软内部一直在研究如何提高他们工程师的采用率,并强调:

     

    “只要领导层大力倡导使用人工智能工具,就能让开发者成为日常用户的可能性提高七倍。”

     

    而且,他认为这种倡导来自高层不仅仅是为了鼓励使用,更是为了告诉大家,这(东西)没问题。

     

    另外,除了高层推动,Brian 还特别提到“本地领军人物”的作用。他们通常是那些更资深、具备团队影响力的开发者。通过他们的示范,AI 工具更容易在团队中产生实际影响。微软的观察显示,拥有这类倡导者的团队,AI 采用率会高出约 22%,从而更容易将 AI 工具系统化、流程化地融入日常开发工作。这或许也解释了为什么微软选择在 .NET 仓库中进行 AI 编程的试验:它可能被视为一个理想的“试验田”,并以此推动其在更广泛的开发者群体中的普及。

     

    争议背后的思考

    话说回来,这场围绕 Copilot 的争议,不只是对某几条“奇怪 PR”的吐槽,更像是一面镜子,映射出技术理想与现实落地之间的鸿沟。

     

    一边是公司高层,对 AI 的未来充满信心,恨不得立马就全面铺开;另一边呢,是还没完全准备好的工具、忙得焦头烂额的一线开发团队,还有开发者社区,他们对这种“说得天花乱坠”的 AI 故事,已经越来越警惕了。

     

    也许,真正值得我们去琢磨的,不是 AI 到底能不能写出正确的代码。而是当这场技术变革以“命令”的方式推下来的时候,开发者们到底有没有足够的空间去质疑、去尝试、去改进,最终形成一套真正适合自己工作的开发模式。

     

    所以,AI 编程工具能不能真正“跑起来”,关键就在于我们能不能在自动化和现实之间找到那个平衡点。

     

    参考链接:

    https://old.reddit.com/r/ExperiencedDevs/comments/1krttqo/my_new_hobby_watching_ai_slowly_drive_microsoft/?limit=500

    https://news.ycombinator.com/item?id=44050152

    https://www.youtube.com/watch?v=gieL0bxyTUU

    https://www.youtube.com/watch?v=jYHLKtWM164

    https://getdx.com/podcast/brian-houck-ai-adoption-playbook/

     

    2025-05-28 11:133881

    评论

    发布
    暂无评论

    直播报名 | 超低延时直播架构解析

    百度开发者中心

    最佳实践 方法论 活动 直播

    F5 Networks收购云安全初创公司Threat Stack

    BeeWorks

    与顶级互联网公司技术大佬面对面聊聊RocketMQ吧!

    阿里巴巴中间件

    阿里云 开源 RocketMQ 云原生 中间件

    这本Alibaba“绝密”SpringBoot精髓到底厉害在哪里

    Java 程序员 面试 springboot 计算机

    2021下半年全新京东商城亿级并发架构设计,不学习你就OUT了!!

    Java 程序员 面试 计算机 京东

    从技术到商业:2021 DEMO CHINA创新中国峰会正式开启

    创业邦

    Go 语言网络库 getty 的那些事

    阿里巴巴中间件

    开源 云原生 Go 语言

    如何加速云原生数据应用?这个开源项目备受关注

    阿里巴巴中间件

    阿里云 开源 云原生 中间件

    Vite + Vue3 + OpenLayers 同步两个地图基础操作

    德育处主任

    大前端 Web 地图 vite openlayers

    DPDK分析学习之全网唯一的DPDK教学课程丨虚拟化高性能专家之路

    Linux服务器开发

    网络协议 虚拟化 Linux服务器开发 DPDK 高性能网络

    工业互联网的两种极端想法和两点反思

    iNeuOS工业互联网操作系统

    大数据 物联网 智能制造 iNeuOS工业互联网

    「技术人生」第6篇:技术同学应该如何理解业务?

    阿里巴巴中间件

    阿里云 云原生 技术人生

    自建开源Cassandra与GaussDB(for Cassandra)性能对比测试报告

    华为云数据库小助手

    性能分析 GaussDB 华为云数据库 GaussDB(for Cassandra) 开源Cassandra

    大众汽车迟到的软件优先思维

    SOA开发者

    丧心病狂!阿里内部Spring Cloud高薪笔记流失,GitHub夜获星百万

    Java 程序员 面试 计算机 阿里巴巴‘

    如何高效掌控K8s资源变化?K8s Informer实现机制浅析

    腾源会

    云原生 k8s

    Micro Focus 发布年度安全运营报告,洞察后疫情时代企业安全运营新趋势

    Dubbo 和 HSF 在阿里巴巴的实践:携手走向下一代云原生微服务

    阿里巴巴中间件

    阿里云 云原生 中间件

    云信小课堂 | 聊天室内容审核很头疼?3步解决!

    网易云信

    人工智能 AI 视频

    T-BOX专业分享

    SOA开发者

    被 Docker 日志坑惨了

    AlwaysBeta

    Docker 容器 运维

    Serverless Devs 2.0 开箱测评:Serverless 开发最佳实践

    阿里巴巴中间件

    阿里云 Serverless 云原生 中间件

    漫画 | 一口气搞懂 Serverless !

    阿里巴巴中间件

    阿里云 云原生 中间件

    Webrtc ICE 框架

    webrtc developer

    WebRTC p2p ICE

    首个RISC-V计算机芯片现身欧洲处理器计划

    BeeWorks

    redis--数据库实现

    en

    秀出新天际的 SpringBoot 笔记,让开发像搭积木一样简单

    Java 架构 面试 Spring Boot

    12 堂干货直播课,8 位 Serverless 大咖带你零基础晋级 Serverless 高手

    阿里巴巴中间件

    阿里云 Serverless 云原生 中间件

    一朵云、一张网、一体化 ——GRTN 打造最佳流媒体场景实践

    阿里云CloudImagine

    云计算 阿里云 边缘计算 视频云 流媒体传输

    残疾人大学生就业难?「低代码」应用,让就业更简单!

    优秀

    低代码

    Nebula Graph 源码解读系列 | Vol.01 Nebula Graph Overview

    NebulaGraph

    Copilot慢慢逼疯微软程序员:AI写代码,人类收烂摊子,修Bug也全靠改PR标题?_生成式 AI_Tina_InfoQ精选文章