这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

GitHub Copilot

2021-06 技术预览。IDE 行级补全,「Copilot → Agent」这条产品演化的起点。

GitHub 与 OpenAI,2021-06-29。技术预览:在编辑器里根据当前文件上下文建议代码。驱动模型是 OpenAI Codex。它是「Copilot → Agent」这条产品演化的起点。

  1. 材料:按当时公开材料转述产品主张、交互与能力边界,不加入 2023 年以后的 Copilot Chat 与编码 Agent。
  2. 讲解:副作用在编辑器缓冲区,终止由人决定,以及「Copilot → Agent」这条线从哪里开始。

当时公告:Introducing GitHub Copilot。

1 - GitHub Copilot 技术预览(材料)

按 2021 年公开材料转述 Copilot 技术预览:结对程序员、Codex、IDE 补全。

GitHub Copilot 没有对应一篇研究论文。这里转述的是 2021 年技术预览当时的公开表述,不以 2022 年正式商用、2023 年 Copilot X 与 Chat 回填。模型机制与 HumanEval 数字以 Codex 论文 为准;那篇写明:独立的生产版本驱动 Copilot。

主要出处:

  • GitHub CEO Nat Friedman,2021-06-29,Introducing GitHub Copilot: your AI pair programmer
  • 同期产品页与新闻稿中的功能描述(VS Code 扩展、候选项循环、技术预览名额有限)
  • OpenAI,2021-08-10 前后,将 Codex 以 API 私有测试形式提供时的产品说明(明确 Codex 即驱动 Copilot 的模型)

这里不复制公告全文。


产品主张(2021-06-29)

GitHub 发布 GitHub Copilot 技术预览,自称 AI pair programmer(AI 结对程序员),帮助写出更好的代码。它从你正在写的代码里抽取上下文,建议整行或整个函数。公告列出的用处:更快发现另一种解法、写测试、探索新 API,而不必专门去网上改检索词。输入时它适应你的写法,以便更快完成工作。

与 OpenAI 合作,由 OpenAI Codex 驱动。公告称 Codex 对人如何使用代码有广泛知识,代码生成上明显强于 GPT-3,部分因为训练数据里公开源代码的浓度高得多。预览对多种框架与语言可用,当时写明尤其适合 Python、JavaScript、TypeScript、Ruby、Go。技术预览名额有限,需申请。

当时的交互形态

同期公开描述与报道一致的部分:

  • 住在编辑器里(技术预览阶段以 Visual Studio Code 为主),不是独立聊天窗口。
  • 边写边建议;可在多个建议间循环,接受或拒绝。
  • 例子包括:根据上下文写出导入推文、画散点图、取评分等函数级片段。GitHub 强调它不只是背诵见过的代码,而是分析已写部分再生成匹配的新代码。
  • 人始终在环路中:建议出现在光标处,由开发者决定是否采纳。没有「给一个仓库级目标、自己改到测试通过」的产品叙事。

Codex 侧的产品说明(约一个月后)

OpenAI 将 Codex 以 API 私有测试放出时写明:这是把自然语言译成代码的系统,也是与 GitHub 合作、一个月前上线的 Copilot 所用模型。Codex 是 GPT-3 的后代;训练数据含自然语言与公开来源(含公开 GitHub 仓库)中的数十亿行代码。Python 最强,并称精通十余种语言(JavaScript、Go、Perl、PHP、Ruby、Swift、TypeScript、Shell 等)。相对 GPT-3 约 4KB 的上下文,Codex 对 Python 代码给出约 14KB 记忆,可纳入三倍以上上下文。API 初期免费;用途举例包括转译、解释代码、重构——并称只触及表面。

GPT-3 的主技能是用自然语言回应自然语言,对世界的影响经过读者的头脑;Codex 在保留大量自然语言理解的同时产出可运行代码,因而可以用英语向带 API 的软件下命令。

这些是 2021 年的产品句。评测数字、失败模式、不安全代码比例不在公告里,而在 Codex 论文。

当时明确不是什么

材料没有声称:自主完成 issue、在终端多步执行、调用任意工具、无人盯着把任务做完。技术预览是编辑器补全。GitHub 计划基于它做商业产品;那是路线图,不是 2021-06 已交付的形态。

2 - GitHub Copilot 讲解

IDE 行级补全:对编辑器缓冲区有副作用,人在环路。「Copilot → Agent」的产品名从此被占住。

这个产品解决了什么问题

Codex 证明模型能够写出通过单元测试的函数。日常开发的需求更窄:光标已在文件里,下一行或下一个函数是什么。 Copilot 把这一步收缩为编辑器内的建议。产品没有引入新的学习算法,它发明的是交付位置:VS Code 光标处、可以循环的候选、由人决定是否接受。技术预览选择 Python、JavaScript、TypeScript、Ruby、Go,是因为当时在这些语言上的生成更稳定。

人在环路是产品定义的一部分,不是缺陷描述。失败由人修改提示或手写。

对后续 LLM 的影响

代码模型第一次有了大规模日活界面。反馈(接受或拒绝)后来成为改进补全的产品数据,接口从 2021 年 6 月起就已存在。「提示」变成了当前文件:GPT-3 的 few-shot 是刻意拼接的示范,Copilot 的条件则是打开的缓冲区、注释与函数名。上下文学习从论文里的实验设定变成默认的 IDE 行为。

「Copilot」一词自此被占住。此后 Microsoft 365 Copilot、GitHub Copilot Chat 以及各种「X Copilot」都借用副驾驶隐喻。2021 年这个词所指的仍是补全,不是自主执行。

对 AI Agent 的影响

时间线把它标成底层能力里的工程化:有副作用,无目标循环。演化写在交付位置的变化上,不把 2023 年的形态写回 2021 年。

2021 技术预览 后来编码 Agent 多出来的能力
当前文件上下文 仓库、终端、浏览器、issue
建议一行 / 一个函数 多文件补丁、命令、测试
人立刻接受或拒绝 循环中依据测试回执再修改
无自主目标 有任务目标(修复缺陷、实现规格)

副作用发生在编辑器缓冲区:插入或替换文本。观察等于当前缓冲区。没有「做到某个外部谓词为真」的终止条件,但它是「Copilot → Agent」这条产品线的起点。