开发者「第二大脑」来袭,GitHubCopilot更新,人类开发参与进一步减少

转载
373 天前
8608
机器之心

文章转载来源:机器之心

Copilot 帮助开发者完成更大、更复杂的任务。

原文来源:机器之心

图片来源:由无界 AI生成

是什么让 Andrej Karpathy 感慨,人类在软件开发过程中直接编写代码的贡献将越来越小,直接输入和监督作用将更加抽象化。最终,人类的角色将仅仅是进行基本的审核和确认,而不再是主要的编程和开发者。

原来是 GitHub 新发布的 Copilot Workspace,它重新构想了开发者的内部流程。如果 AI 开发工具是开发者的第二双手,那么 Copilot Workspace 将是开发者的「第二个大脑」。

在编码的过程中,最头疼的莫过于遇到不熟悉的软件仓库、编程语言或框架。解决这些问题带来的困难,可能会拖延你完成任务的时间,甚至导致根本无法完成。在时间内想要快速掌握这些,重振旗鼓并不容易。但 Copilot Workspace 或许能够让你事半功倍,甚至能够帮助你完成更大、更复杂的任务。


Copilot Workspace,你的「第二个大脑」


Copilot Workspace 侧重于任务选择、意图表达和与 AI 合作寻求解决方案。这样做的目的是减少复杂性,提高生产力,同时还能保持软件开发中重要的方面,如决策和创造性和自主权。

你可以向 Copilot Workspace 提出问题,它会自动提出解决方案。Copilot Workspace 拥有问题(包括所有评论和回复)和代码库的全部上下文,因此它既能理解你想做什么,也能理解你的代码具体内容。如果 Copilot Workspace 提出的解决方案不完全正确,你也可以编辑流程中的任何步骤,从行为到计划,再到代码,全部都可以用自然语言完成。

Copilot Workspace 回答 GitHub 问题

编辑流程中的步骤,进行调整

Copilot Workspace 可在整个软件包的粒度范围内运行,并可跨不同编程语言对多个文件进行连贯修改。它既能处理核心编码任务,也能处理脚手架类型的任务,如「建立测试框架 」或「为持续集成编写 GitHub Actions 工作流」。它已在 GitHub Next 中被使用,用于开发 Copilot Workspace 自身和其他项目。


以任务为中心的工作流程


Copilot Workspace 能够帮助开发人员完成完整的开发任务,这些任务通常以 GitHub 问题的形式指定和跟踪。因此,Copilot Workspace 可以将问题作为输入,自动提取代码的当前行为,提出可解决该问题的新行为,制定计划,并实施该计划(即编写代码)。Copilot Workspace 拥有问题的全部上下文,包括所有注释,甚至可以跟踪问题中的链接以提取信息,帮助完成任务。

用户反馈和迭代是 Copilot Workspace 所注重的。从建议的新行为、计划到实施,你可以编辑流程的每一步。例如,在实施计划并看到代码后,您可以返回并调整行为或计划,然后再试一次。你甚至可以在多个标签页中打开同一个问题,探索几条不同的路径。

之前使用 LLM 完成开发人员任务的尝试主要集中在对话上,但 Copilot Workspace 更加基于任务的用户界面具更加结构化,并且有明显的优势:

  • 1. Copilot Workspace 可以全面了解问题的来龙去脉,从而提出正确的解决方案。
  • 2. 结构化的输出(原始和修改后的行为、计划和实施)使得用户可以在恰当的抽象层次上方便地指导 Copilot Workspace。

目前,Copilot Workspace 以 GitHub 的问题作为起点,但计划未来将支持更多的入口点。例如,Copilot Workspace 可以帮助开发人员处理通过 CodeQL 发现的安全警报,迁移到新版本的依赖库或从一个库迁移到另一个库,以及解决 PR 审核中的评论问题。


云驱动的智能体


GitHub 结合 AI 智能体技术和 GitHub Codespaces 实现无头、短暂、安全的计算方式。当用户点击「运行」按钮时,后台中会创建一个新的 codespace,将修改后的代码推送到其中,并尝试构建项目。如果构建失败,我们会将错误信息和代码反馈给 Copilot Workspace,并要求其修复构建。一旦构建成功,修改后的代码会同步回 Copilot Workspace 的用户界面,让用户看到构建是如何被修复的。如果运行的项目是 Web 应用,codespace 上的端口会转发到只有该用户能访问的 URL。用户可以点击并查看 Web 应用的实时预览,从而直观地验证 Copilot Workspace 是否按照他们的预期执行。

由于大型语言模型(LLMs)并不完美,许多任务的「最后一公里」显得十分重要。Copilot Workspace 允许你打开 Codespace 并从中断的地方继续,可以在具有安全运行时的完整云 IDE 中完成任务。


为协作而设计


只需点击「共享」按钮,Copilot Workspace 就能轻松共享工作区。由于用户体验是结构化的,因此它能捕捉到会话的整个活动日志,这也是了解实施方案为何如此的好方法。你可以查看计划,观看每一步的实施过程,然后通过点击用户界面中的计划步骤导航到相应的代码变更。这丰富了代码审查形式,在这种审查中,代码差异及其原因都一目了然。

GitHub 计划添加注释和多人编辑功能,Copilot Workspace 将能在一个工具中同时处理开发人员内循环和审查循环。

参考链接:

https://twitter.com/karpathy/status/1722359332116062491

https://githubnext.com/projects/copilot-workspace

https://twitter.com/LinusEkenstam/status/1722320525454676063