GitHub Copilot 是由 GitHub 和 OpenAI 开发的代码补全和编程 AI 助手,通过自动补全代码来帮助 Visual Studio Code、Visual Studio、Neovim、Eclipse 和 JetBrains 集成开发环境(IDE)的用户。该生成式 AI 软件目前通过订阅方式提供给个人开发者和企业,由 GitHub 于 2021 年 6 月 29 日首次宣布。用户可以选择用于生成代码的大语言模型。
2022 年 6 月 21 日,GitHub 宣布 Copilot 已结束技术预览,并作为面向个人开发者的订阅服务正式推出。此次全面可用标志着 生成式 AI 在软件开发领域应用的关键转折点,将 AI 结对编程带入了主流实践。
历史与发展
GitHub Copilot 于 2021 年 6 月 29 日首次宣布,作为 Visual Studio Code 开发环境的技术预览版发布。该工具于 2021 年 10 月 29 日作为插件在 JetBrains 市场上架,随后 Neovim 插件于 2021 年 10 月 27 日作为公共仓库发布。GitHub 于 2022 年 3 月 29 日宣布 Copilot 可用于 Visual Studio 2022 IDE。
2022 年 6 月 21 日的全面可用版本引入了面向个人开发者的订阅模式,并为学生和热门开源项目的维护者提供免费层级。企业可以购买单独的计划,并拥有集中化管理和策略控制功能。
GitHub Copilot 是 Visual Studio 2013 的 Bing 代码搜索插件的演进版本,该插件是 微软 研究院于 2014 年 2 月发布的项目。该插件集成了 MSDN 和 Stack Overflow 等来源,能够根据自然语言查询提供上下文相关的代码片段。
功能
当以自然语言提供编程问题时,Copilot 能够生成解决方案代码。它还可以用英语描述输入的代码,并在编程语言之间进行代码翻译。
Copilot 允许开发者在多个大语言模型(LLM)之间进行选择,包括 OpenAI 的 GPT 模型、Anthropic 的 Claude、xAI 的 Grok 以及 Google 的 Gemini。这种灵活性使开发者可以根据性能、成本或特定任务需求来选择模型。
根据其网站介绍,GitHub Copilot 包含面向程序员的辅助功能,例如将代码注释转换为可运行代码,以及为代码块、重复代码段和整个方法或函数提供自动补全。GitHub 报告称,Copilot 的自动补全功能大约有一半的时间是准确的;例如,对于某些 Python 函数头代码,Copilot 在第一次尝试时正确自动补全了其余函数体代码的概率为 43%,在十次尝试后则为 57%。
GitHub 表示,Copilot 的功能使程序员能够通过减少阅读文档的时间来熟悉陌生的编码框架和语言。
实现
GitHub Copilot 最初由 OpenAI Codex 提供支持,这是 GPT-3 的修改版生产版本。Codex 模型还额外使用数十种编程语言的千兆字节级源代码进行了训练。Copilot 的 OpenAI Codex 基于英语、公共 GitHub 仓库以及其他公开可用的源代码进行训练,其中包括一个经过筛选的数据集,包含来自 5400 万个公共 GitHub 仓库的 159 千兆字节 Python 代码。OpenAI 的 GPT-3 由微软(GitHub 的母公司)独家授权使用。
2023 年 11 月,Copilot Chat 更新为使用 OpenAI 的 GPT-4 模型。2024 年,Copilot 开始允许用户在不同的大语言模型之间进行选择,包括 Gemini 和 Claude。
2025 年 2 月 6 日,GitHub 宣布了代理模式,这是 Copilot 的一种更自主的操作模式。给定一个编程任务,它会尝试通过在用户计算机上的 Visual Studio 实例中执行命令来完成该任务。代理模式可以连接不同的 LLM,包括 GPT-4o、o1、o3-mini、Claude 3.5 Sonnet 和 Gemini 2.0 Flash。
2025 年 5 月 17 日,GitHub 宣布了编码代理,这是一种更自主的操作模式。用户将任务或问题分配给 Copilot,Copilot 会在云端初始化一个开发环境(由 GitHub Actions 提供支持)并执行请求。它会起草一个拉取请求草稿,并在工作过程中将提交推送到该草稿。完成请求后,它会标记用户进行代码审查。这本质上是代理模式的异步版本。
反响
自 Copilot 发布以来,人们对其安全性和教育影响存在担忧,同时围绕其生成的代码也存在许可争议。
许可争议
虽然 GitHub 首席执行官 Nat Friedman 在 2021 年 6 月表示,在公共数据上训练机器学习系统属于合理使用,但 2022 年 11 月提起的集体诉讼称这纯粹是推测,并断言没有法院考虑过在公共数据上训练机器学习系统是否属于合理使用的问题。Joseph Saveri 律师事务所提起的诉讼从多个方面质疑 Copilot 的合法性,从违反与 GitHub 用户的合同到根据 CCPA 因共享个人身份信息(PII)而侵犯隐私。
GitHub 承认该工具的输出中有一小部分可能是逐字复制的,这引发了人们的担忧,即输出代码的转换程度不足以被归类为合理使用,并可能侵犯原始所有者的版权。2022 年 6 月,软件自由保护组织宣布将停止在其自身项目中使用 GitHub 的所有功能,指责 Copilot 忽略了训练数据中使用的代码许可证。在一则客户支持消息中,GitHub 表示在公开数据上训练机器学习模型在整个机器学习社区中被视为合理使用,但集体诉讼称这是错误的,并进一步指出,无论这一概念在机器学习社区中的接受程度如何,根据联邦法律,这都是非法的。
2026 年 9 月 16 日,美国第九巡回上诉法院维持了驳回原告根据《数字千年版权法》(DMCA)提出的索赔的裁决。法院认为,原告未能证明 GitHub Copilot 和 OpenAI 的 Codex 从现有作品中移除或更改了版权管理信息,理由是这些系统生成的新作品不包含此类信息。该裁决并未解决原告关于被告违反开源许可条款的单独索赔。
隐私问题
Copilot 服务基于云端,需要与 GitHub Copilot 服务器持续通信。这种不透明的架构引发了关于遥测和逐次击键数据挖掘的担忧。
2022 年底,GitHub Copilot 被指控输出了《雷神之锤》游戏的源代码,且没有作者署名或许可证。
对软件开发的影响
GitHub Copilot 于 2022 年 6 月的全面可用加速了 大语言模型 在日常编程工作流程中的整合。它展示了 机器学习 在代码生成中的实际应用,并影响了其他公司类似工具的开发,包括 Google 基于 Gemini 的助手和 OpenAI 的 Codex。
Copilot 的成功也促进了更广泛的 生成式 AI 热潮,与 ChatGPT(2022 年 11 月) 和 Stable Diffusion(2022 年 8 月) 等发布齐头并进。它成为 AI 辅助开发工具的基准,并引发了关于编程教育未来以及自动化在软件工程中作用的讨论。
参见
参考文献
源事实由维基百科提供(CC BY-SA)。
外部链接
官方网站:https://github.com/features/copilot