# 热门搜索 #
搜索
Copilot 时代,开发者与 AI 如何相处?
3694点击    2024-01-26 10:46

AI for developer 而非 AI as developer。


AI 在软件开发领域的应用正在发生极大的演进,以 GitHub Copilot 为首,从单一的编程辅助,扩展到开发流程的各个环节。本文作者深入分析了 AI 辅助开发工具的演进,并提出,再争论 AI 是否会替代人类开发者的工作已经愈发没有意义,至关重要的是,于所有开发者而言,如何与智能助手共存并大幅提升效率。

今天你使用 Copilot 了吗?


这里的 Copilot 不仅限于开发者们熟悉的 AI 开发助手 GitHub Copilot,而是泛指所有以大模型为技术基础的生成式 AI 应用,如 ChatGPT(对话)、Jasper(辅助写作)、Midjourney(图片生成)等。


不管你的工作内容是什么,其实大概率都有能够用到 Copilot 的地方。那么,在这些地方就应该尝试去使用 Copilot。


2022 年底发布的 ChatGPT 带来的惊艳和掀起的浪潮,已无需赘言。但是,在此之前,很多开发者早在 2021 年就已经用上了大模型加持下的辅助编码工具,那就是在微软的牵线下,GitHub 基于 OpenAI Codex 大模型打造的产品 GitHub Copilot。一经推出,它就给学术界和工业界带来了震撼。


自动生成代码,一直被作为软件工程研究领域的圣杯,也是软件开发者们担心 AI 最有可能会替代自己、老板们认为 AI 最应该降本增效的场景(真实性暂不讨论)。多年来,基于软件分析技术和启发式规则算法一直无法实现期望的效果,踌躇于特定场景或理论研究而难以落地实用。而在 GPT-3 及 Codex 开启代码生成的大模型时代后,AI 辅助开发突然得以突破并迅速普及,这与自然语言领域的发展历程何其相似。



图源:使用 Meta AI 生成


身处 2024 年的开端,以大模型为基础的 AI 仍在快速发展,虽然距离实现通用人工智能(AGI)的愿景还有很大距离,但其发展速度和加速度都比人类快出几个数量级。经历了 2023 年对大模型的不明觉厉到习以为常,如今的我们可以更加理性和全面地看待这项技术。作为软件开发者,有必要重新思考一下,在可预见的未来,开发者与 AI 将会如何相处。


不过,还是让我们先从 Copilot 的含义开始说起。


Copilot 的定位与含义:从 GitHub Copilot 到 Microsoft Copilot


最初的 Copilot 专属于开发者,特指提供 AI 辅助编程的 GitHub Copilot。但经过两年多的发展,Copilot 这一品牌早已不限制在 AI 辅助研发领域,而 GitHub Copilot 也早已超越代码智能生成这一基本功能。2023 年 9 月,微软宣布全新升级的 Copilot 将直接集成到 Windows 11、微软 Office 365 全系产品和 Edge 中;2023 年 11 月的 Ignite 大会上,微软宣布 Bing Chat 及其企业高级版 Bing Chat for Enterprise 正式更名为 Copilot;微软云服务的一系列企业订阅计划中,也将 Copilot 作为最重要的卖点和增值服务。微软将其在旗下产品中提供的 AI 服务统一称为 Microsoft Copilot,希望成为用户的日常 AI 伴侣,贯穿用户的整个工作流。


大模型技术产品化是 2023 年的主基调,微软的一系列产品化动向表明,它在商业上对当前的 AI 应用逐渐有了一个更加清晰的定位:让 AI 作为副驾驶,辅助人类在各种场景中完成人类自身所需完成的工作。具体到开发者的日常工作,越来越多的人开始接受、适应、习惯写代码时得到 AI 的协助和提示,就像得到 IDE 的辅助功能一样。2023 年 6 月,JetBrains 宣布推出 AI Assistant,标志着 AI 辅助开发已经开始内置到 IDE 中。AI 在开发阶段提供辅助开始沉淀为一项基础的服务,未来可能与现代 IDE 一样成为开发者重度依赖的必备功能。


AI 辅助编码是大模型最早落地的应用之一,也是最具有实用性和商业价值的场景之一。在目前类 ChatGPT 的聊天应用依然以免费为主的情况下,GitHub Copilot 早早推出付费订阅计划以及企业级服务,现已形成大量稳定的付费用户群和成熟自恰的商业模式。以 Github Copilot 为代表的 AI 辅助开发产品,在 2023 年下半年迎来集中爆发(很大程度上得益于开源模型 LLaMa 的优异表现)。那么,这个领域的现状和发展是怎样的呢?


类 GitHub Copilot 产品的发展:领导者创新,跟随者追赶


首先,我们来看行业领导者 —— GitHub Copilot 在这一年的里程碑式更新:


2023 年 3 月,Copilot 升级为 Copilot X,接入 GPT-4 并新增了一系列功能:


  • GitHub Copilot Chat,可实现与 AI 对话完成编码;

  • Copilot for Pull Requests,由 AI 协助开发者描述变更;

  • Copilot for Docs,服务文档的智能编写和问答;

  • Copilot for CLI,使用 AI 辅助命令行的使用;

  • Copilot Voice,说话就完成程序编写。

2023 年 5 月,GitHub 推出 Copilot Labs,作为升级版伴侣扩展,提供早期实验和即将推出的新功能,如代码解释、语言间翻译、代码刷子、测试用例生成等。其中最强大的当属代码刷子,不仅预置了可读性提升、类型推断、修复 Bug、补充文档与注释等功能,还支持自定义提示词并保存为工具,相当于赋予了开发者再次扩展 Copilot 的能力以及个性化的可定制性。


2023 年 11 月,GitHub 发布 Copilot Workspace,与 GitHub 网站的群体协作功能联系更加紧密,旨在帮助开发者完成更复杂的任务,如感知跨文件上下文生成代码、基于整个仓库进行问答、针对 issue 生成多处代码变更等。从此,Copilot 的舞台不仅限于个人电脑中的 IDE,也不局限于开发者个人的独立工作区。


再看 Copilot 之外的项目,我将其分为以下三类:


  • 商业竞品

大公司或创业公司推出的 Copilot 竞品,国外有 Amazon 的 CodeWhisperer、Sourcegraph 的 Cody、Anysphere 的 Cursor、Google 的 Codey、JetBrains 的 AI Assistant 等,国内有华为的 CodeArts Snap、智谱的 CodeGeeX、百度的 Comate、科大讯飞 iFlyCode 等。


  • 开源平替

实现类 Copilot 功能的开源项目,如 auto-dev、Devpilot、FauxPilot 等。一般侧重于实现工程部分,核心部分所需的 AI 能力依赖大模型 API 的接入,如 OpenAI API、Azure API、自主部署模型 API 等。


  • 前沿探索

探索 AI 自主独立工作的 Agent 项目,如 MetaGPT、GPT Pilot、DevOpsGPT、ChatDev 等。基本思路是模拟人类软件开发团队组织结构和开发模式,赋予 AI 不同角色和技能,让其自主沟通和协作完成端到端的项目级开发或复杂任务的实现。


对比之下不难看出,GitHub Copilot 早已超越一个提供代码补全建议的辅助编码工具,但大部分的竞品或平替还是在对标 AI 辅助编码这一基本功能。一方面是因为这一功能是多数用户或客户想象中 AI 最应该且能最大程度上提升效率的环节,另一方面是因为跟随者们在这一基本功能上也很难说已经与 Copilot 处于同一水平。


既然效果上没有差异只有差距,那么就必须从其他方面做出差异化,比如商业公司通过联动自身其他知识库或服务提供独特性,而创业公司和开源项目则主打可控性和自由度。


但是,作为业界领导者的 Copilot,对自身的定位早已超越在开发阶段的单点提效,而是开始布局更广泛的场景:一方面推出围绕代码的解释、翻译、问答等功能,另一方面开始发展代码之外的能力,从开发阶段向软件开发流程的两端延伸。从格局和层次来看, Copilot 作为行业领导者,目前仍保持着遥遥领先的优势。


与竞品或平替的思路不同的 Agent 则更加激进和大胆一些,抛开 Copilot 所定义的范围和边界,从智能体的角度探索 AI 在软件开发中的可能性。AI Agent 试图打造一个端到端的软件开发者,给定要求即可给出符合要求的软件,而这依赖于一个很强的前提假设,那就是用于实现 Agent 的 AI 至少具备一个杰出的软件开发者所具备的认知、思考、遵循、反思、协作等能力,实际上已经是对通用强人工智能的要求。


当前最先进的 AI 也尚未达到如此高的要求,这决定了将 AI Agent 用于软件开发目前处于并且还会长期处于探索阶段。实际上,虽然 Copilot 也是在朝着智能体的方向发展,从最初的编程助手发展为一个能力越来越综合的“工具”,但对于自主性并不强求甚至有意克制,仍然将 AI 定位为开发者的助手而非自作主张的智能体,这是与目前大部分 Agent 项目最大的不同。


从目前的发展情况来看,我们可以概括出目前 AI 辅助开发从业者的三个对未来方向的共识:


  • 从底层局部的代码实现,到关注上层的架构和规划;

  • 从编码阶段单点提效,到开发全流程增益;

  • 从完成确定性任务,到创造性自主工作。

那么,带着这些共识,回到我们最初提出的问题:面向未来,开发者与 AI 如何相处?


开发者与 AI 如何相处:AI for developer 而非 AI as developer


预测未来很难,因此我们需要加入一些限制和前提:这里的 AI 特指当前基于大模型相关技术实现的 AI,并且基于当前已知的研究和工程实践的延长线进行分析。预测要做到精准更难,因此我们不妨使用 AI 与大模型的概率性思维,直接枚举一下可能的模式:


  • 船长-大副型(Pilot-Copilot):Copilot 的初始设定,由人分解以及执行任务,在此过程中 AI 作为副手辅助人类更快地任务,无法独立于人类完成工作。

  • 主管-下属型(Master-Worker):人类设定高层次的任务,再交由 AI 完成具体实现,AI 可以自动完成更低一级的分解和迭代循环,人类需要承担把控输入输出的职责。

  • 同事-同事型(Peer-Peer):AI 被赋予与人类同等的地位,平等地进行分工且并行进行开发,AI 负责探索实现方案,而人负责架构设计、分工、集成等工作,从而实现优势互补。

  • 学徒-导师型(Student-Mentor):人类的能力和成长性开始落后于 AI,人向 AI 寻求架构和实现的建议,通过请教和学习弥补自己的知识盲区,通过动手和练习增长自己的能力短板。

  • 代理-雇主型(Agent-Boss):人类已经完全与 AI 脱节,无法理解 AI 的思维方式和实现细节,人只需要告诉 AI 自己能做什么,AI 负责进行问题分解和任务分配,人作为众多工具之一被 AI 调用。

在前三种模式中,人类开发者仍是软件开发的主导者和责任主体,而在后两种模式中,人类渐渐失去地位,而 AI 成为了实现层面的主导。这几种模式并非递进关系,因此并不冲突;就像平行宇宙一样,这些可能的未来都会发生,甚至会同时共存于一个世界,取决于场景具体程度、问题普遍性、任务复杂度、个人使用方式等诸多因素。



图源:使用 Bing AI 生成


那么,所有可能的模式之间是否有共性呢?是的,始终不变的是,问题的定义者和需求的提出方一直是人类,掌握验收权的最终用户仍是人类,只要软件开发的动机还是满足人类的需求。经历了 2021 到 2023 这两年,大多数开发者从一开始的忐忑到后来的祛魅,逐渐切身体会到当前的 AI 技术在实际工作中的能力和局限,并开始思考如何更好地使用这项工具来更好地完成自己的工作——没错,正确的态度是将 AI 当做工具来看待,无论它的能力多么强大,被替代的仍是我们现有的工具(Google Search、Stack Overflow、IDE,甚至编程语言和设计模式)。


在这个前提下,再争论 AI 是否会替代人类开发者的工作已经愈发没有意义,更实际的问题是开发者如何与 AI 相处才能提升自己的价值。这个问题可能根本没有确定性的答案,但我们可以从以上分析中推导出一个简单的判断原则:AI for developer 而不是 AI as developer,只要能更好地发挥人类开发者自身的价值,那么就是合适的相处之道。


文章来自于微信公众号 “CSDN”(ID:CSDNnews),作者 “申博”


关键词: Copilot , AI编程 , AI研发
AITNT资源拓展
根据文章内容,系统为您匹配了更有价值的资源信息。内容由AI生成,仅供参考
1
AI工作流

【开源免费】n8n是一个可以自定义工作流的AI项目,它提供了200个工作节点来帮助用户实现工作流的编排。

项目地址:https://github.com/n8n-io/n8n

在线使用:https://n8n.io/(付费)


【开源免费】DB-GPT是一个AI原生数据应用开发框架,它提供开发多模型管理(SMMF)、Text2SQL效果优化、RAG框架以及优化、Multi-Agents框架协作、AWEL(智能体工作流编排)等多种技术能力,让围绕数据库构建大模型应用更简单、更方便。

项目地址:https://github.com/eosphoros-ai/DB-GPT?tab=readme-ov-file



【开源免费】VectorVein是一个不需要任何编程基础,任何人都能用的AI工作流编辑工具。你可以将复杂的工作分解成多个步骤,并通过VectorVein固定并让AI依次完成。VectorVein是字节coze的平替产品。

项目地址:https://github.com/AndersonBY/vector-vein?tab=readme-ov-file

在线使用:https://vectorvein.ai/(付费)

2
AI数据分析

【开源免费】DeepBI是一款AI原生的数据分析平台。DeepBI充分利用大语言模型的能力来探索、查询、可视化和共享来自任何数据源的数据。用户可以使用DeepBI洞察数据并做出数据驱动的决策。

项目地址:https://github.com/DeepInsight-AI/DeepBI?tab=readme-ov-file

本地安装:https://www.deepbi.com/

【开源免费airda(Air Data Agent)是面向数据分析的AI智能体,能够理解数据开发和数据分析需求、根据用户需要让数据可视化。

项目地址:https://github.com/hitsz-ids/airda

3
智能体

【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。

项目地址:https://github.com/Significant-Gravitas/AutoGPT


【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。

项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md

4
知识库

【开源免费】FASTGPT是基于LLM的知识库开源项目,提供开箱即用的数据处理、模型调用等能力。整体功能和“Dify”“RAGFlow”项目类似。很多接入微信,飞书的AI项目都基于该项目二次开发。

项目地址:https://github.com/labring/FastGPT

5
prompt

【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。

项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md

在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0