GitHub Copilot是一款由GitHub和OpenAI开发的代码补全和编程AI助手,通过自动补全代码来帮助Visual Studio Code、Visual Studio、Neovim、Eclipse和JetBrains集成开发环境(IDE)的用户。目前可供个人开发者和企业订阅使用,这款生成式AI软件于2021年6月29日由GitHub首次宣布。用户可以选择用于生成的大语言模型。
Copilot旨在减少程序员在重复性任务和文档编写上花费的时间,使他们能够专注于更高层次的问题解决。它作为一项基于云的服务运行,需要与GitHub的服务器持续通信,并引发了关于代码许可、隐私以及AI在软件开发中作用的讨论。
历史
2021年6月29日,GitHub在Visual Studio Code开发环境中宣布了GitHub Copilot的技术预览版。GitHub Copilot于2021年10月29日作为插件在JetBrains市场上发布。2021年10月27日,GitHub以公共仓库的形式发布了GitHub Copilot Neovim插件。GitHub于2022年3月29日宣布Copilot可用于Visual Studio 2022 IDE。2022年6月21日,GitHub宣布Copilot已脱离“技术预览”阶段,并作为面向个人开发者的订阅服务提供。
GitHub Copilot是Visual Studio 2013的“Bing代码搜索”插件的演进版本,该插件是微软研究院于2014年2月发布的一个项目。该插件集成了MSDN和Stack Overflow等多个来源,以响应自然语言查询并提供高质量、上下文相关的代码片段。
功能
当以自然语言提供编程问题时,Copilot能够生成解决方案代码。它还能够用英语描述输入代码,并在编程语言之间翻译代码。Copilot使开发者能够在多个大语言模型之间进行选择,包括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,然后Copilot会在云端初始化一个开发环境(由GitHub Actions提供支持)并执行请求。它会起草一个拉取请求,并在工作时将提交推送到草稿中。完成请求后,它会标记用户进行代码审查。它本质上是代理模式的异步版本。
反响
自Copilot发布以来,人们对其安全性和教育影响存在担忧,以及围绕其生成代码的许可争议。
许可争议
尽管GitHub首席执行官Nat Friedman在2021年6月表示“在公共数据上训练机器学习系统是合理使用”,但2022年11月提起的集体诉讼称这是“纯粹的猜测”,并断言“没有法院考虑过‘在公共数据上训练机器学习系统是否属于合理使用’的问题”。Joseph Saveri Law Firm, LLP提起的诉讼从多个方面质疑Copilot的合法性,从违反GitHub用户的合同,到根据CCPA因共享个人身份信息(PII)而侵犯隐私。
GitHub承认该工具输出的一小部分可能被逐字复制,这引发了人们的担忧,即输出代码的转换性不足以被归类为合理使用,并可能侵犯原始所有者的版权。2022年6月,Software Freedom Conservancy宣布将停止在其自身项目中使用GitHub的所有功能,指责Copilot无视训练数据中使用的代码许可证。在一份客户支持消息中,GitHub表示“在公开可用的数据上训练机器学习模型在整个机器学习社区中被视为合理使用”,但集体诉讼称这是“虚假的”,并进一步指出“无论这一概念在‘机器学习社区’中的接受程度如何,根据联邦法律,它都是非法的”。
隐私问题
Copilot服务基于云,需要与GitHub Copilot服务器持续通信。这种不透明的架构加剧了人们对遥测和单个按键数据挖掘的担忧。2022年底,GitHub Copilot被指控输出了Quake游戏源代码,且没有作者署名或许可证。