GitHub Copilot 是由 GitHub 和 OpenAI 开发的一款代码补全和编程 AI 助手,可为 Visual Studio Code、Visual Studio、Neovim、Eclipse 以及 JetBrains 集成开发环境(IDE)的用户提供代码自动补全功能。该软件按订阅制向个人开发者和企业提供服务,由 GitHub 于 2021 年 6 月 29 日首次发布。用户可以选择用于生成代码的大型语言模型,包括 OpenAI、Anthropic 和 Google DeepMind 提供的模型。
该工具是 Generative AI 在软件开发领域的一项重要应用,其基础是 Large language model 技术的进步。它直接集成到主流开发环境中,提供从单行代码到整个函数的上下文感知补全建议。
历史
2021 年 6 月 29 日,GitHub 宣布在 Visual Studio Code 开发环境中提供 GitHub Copilot 的技术预览版。该服务于 2021 年 10 月 29 日作为插件在 JetBrains 插件市场上发布。2021 年 10 月 27 日,GitHub 将 GitHub Copilot 的 Neovim 插件作为公共仓库发布。2022 年 3 月 29 日,GitHub 宣布 Copilot 可用于 Visual Studio 2022 IDE。2022 年 6 月 21 日,GitHub 宣布 Copilot 结束技术预览,并作为面向个人开发者的订阅制服务正式推出。
GitHub Copilot 的前身是 2014 年 2 月发布的 Microsoft (AI) 研究项目“Bing 代码搜索”的 Visual Studio 2013 插件。该插件集成了 MSDN 和 Stack Overflow 等来源,可根据自然语言查询提供上下文相关的代码片段。
功能
当收到用自然语言描述的编程问题时,Copilot 可以生成解决方案代码。它还能用英语描述输入的代码,并在不同编程语言之间进行代码翻译。Copilot 允许开发者在多个大型语言模型之间进行选择,包括 OpenAI 的 GPT、Anthropic 的 Claude、xAI 的 Grok 以及 Google 的 Gemini。
根据其官网介绍,GitHub Copilot 提供辅助功能,例如将代码注释转换为可运行代码,以及自动补全代码块、重复代码段或整个方法/函数。GitHub 报告称,Copilot 的自动补全功能大约有一半时间是准确的;例如,对于某些 Python 函数头代码,Copilot 在首次尝试时正确补全了其余函数体代码的概率为 43%,在尝试十次后正确率为 57%。GitHub 表示,这些功能让程序员可以减少阅读文档的时间,从而更快地熟悉不熟悉的编码框架和语言。
实现
GitHub Copilot 最初由 OpenAI Codex 模型驱动,该模型是 GPT-3 的一个修改版生产模型。Codex 模型额外使用了数十种编程语言的数十亿字节源代码进行训练。OpenAI 的 GPT-3 是微软(GitHub 的母公司)的独家许可产品。
2023 年 11 月,Copilot Chat 更新为使用 OpenAI 的 GPT-4 模型。2024 年,Copilot 开始允许用户在不同的大型语言模型之间进行选择,包括 Gemini 和 Claude。2025 年 2 月 6 日,GitHub 宣布推出“代理模式”(agent mode),这是一种更自主的操作模式。在给定编程任务后,它会在用户的 Visual Studio 实例上执行命令来尝试完成任务。代理模式可以连接不同的 LLM,包括 GPT-4o、o1、o3-mini、Claude 3.5 Sonnet 和 Gemini 2.0 Flash。
2025 年 5 月 17 日,GitHub 宣布推出“编码代理”(coding agent),这是一种更自主的模式,用户将任务或问题分配给 Copilot,然后 Copilot 会在云端(由 GitHub Actions 提供支持)初始化一个开发环境并执行请求。它会编写一个拉取请求草稿,并在工作时将提交推送到该草稿,然后在完成请求后标记用户进行代码审查。这本质上是一种异步版本的代理模式。
反响
自 Copilot 发布以来,一直存在对其安全性、教育影响以及许可问题的担忧。
许可争议
虽然 GitHub CEO 纳特·弗里德曼在 2021 年 6 月表示,在公共数据上训练机器学习系统属于合理使用,但 2022 年 11 月提起的一起集体诉讼称,这只是纯粹的猜测,并断言法院尚未考虑在公共数据上训练机器学习系统是否属于合理使用的问题。该诉讼由约瑟夫·萨维里律师事务所(Joseph Saveri Law Firm, LLP)提起,指控 Copilot 存在多项违法行为,包括违反与 GitHub 用户的合同、违反《加州消费者隐私法案》(CCPA)关于共享个人身份信息的规定等。
GitHub 承认该工具的输出中可能有一小部分会被逐字复制,这引发了人们的担忧,即输出代码的转换程度不足以被归类为合理使用,并可能侵犯原始所有者的版权。2022 年 6 月,软件自由保护组织(Software Freedom Conservancy)宣布,将停止在其项目中使用 GitHub,并指责 Copilot 忽略了训练数据中代码的许可证。在一封客户支持邮件中,GitHub 表示,在公共数据上训练机器学习模型在整个机器学习社区中被认为是合理使用,但集体诉讼称这种说法是错误的,并指出无论机器学习社区对该概念的接受程度如何,根据联邦法律这都是非法的。
隐私担忧
Copilot 服务基于云端,需要与 GitHub 服务器持续通信。这种不透明的架构引发了人们对遥测和按键数据收集的担忧。2022 年底,Copilot 被指控输出了《雷神之锤》(Quake)游戏的源代码,且没有注明作者或许可证。
另见
- ChatGPT
- Tabnine
- Devstral
- Cursor(代码编辑器)
- Devin AI
- 生成式人工智能
- AI 辅助软件开发工具列表
- 聊天机器人列表
- Microsoft Copilot
- 代码补全
- Vibe coding