详细摘要 摘要

生成:2025-06-05 16:25

摘要详情

音频文件
B站 | 微软Reactor_SH | 玩转 GitHub Copilot | GitHub Copilot 使用技巧 - DevOps
摘要类型
详细摘要
LLM 提供商
openai
LLM 模型
gemini-2.5-pro-exp-03-25
已创建
2025-06-05 16:25:24

概览/核心摘要 (Executive Summary)

本次分享深入探讨了GitHub Copilot的核心优势——可定制化,并详细阐述了其在DevOps全流程中的应用潜力。演讲者(Speaker 1)认为,Copilot不仅是代码补全工具,更可通过扩展(Visual Studio Code Chat Extension、GitHub Copilot Extension)与企业内部业务流程深度融合,支持连接各类AI模型(包括国内模型如千问、开源模型及GPT系列)。Copilot的价值体现在整个软件开发生命周期,从需求分析、项目规划、设计、编码、部署、测试到后期维护,均能提供AI辅助。重点介绍了Copilot Editors功能,能根据过往代码更精确地生成建议。演讲者强调,AI的采用率在企业中约30%-60%,AI不会淘汰开发者,但会淘汰不懂使用AI的开发者。核心亮点在于通过AI Agent(智能体)实现高级定制,介绍了微软的Azure AI Agent Service及其相较于OpenAI Assistant的优势(模型多样性、数据集成、安全、存储),以及Semantic Kernel、AutoGen等框架在构建和编排多智能体工作流中的应用。最后,通过一个实际演示,展示了如何基于.NET Aspire和Semantic Kernel构建一个自定义的GitHub Copilot Agent,该Agent能根据用户需求(如创建一个购物啤酒场景的Web应用)自动生成项目结构和代码,并提供下载。

GitHub Copilot的核心价值与定制化

Speaker 1开篇指出,相较于第三方AI编程工具,GitHub Copilot的核心优势之一在于其可定制化能力

  • 对比第三方工具:虽然市面上许多IDE可以连接AI模型,但企业开发者更希望AI工具能与内部业务流程和研发体系相结合。
  • Copilot的可扩展性
    • Visual Studio Code Chat Extension:主要针对VS Code生态,支持多语言、跨平台开发(Java, Python, C++, Rust等)。企业可自行开发扩展,方便快捷。
    • GitHub Copilot Extension:更侧重于云端和企业级部署(Enterprise),可以针对企业账户进行部署,并支持在同一组织下的不同IDE(如Visual Studio Code)中使用。
  • 模型连接的灵活性
    • Copilot不仅限于海外模型,也支持连接国内模型(如“千问”)和开源模型(如“Llama 3.5”,原文为five 4 five 3.5,根据上下文推断可能指Llama或类似模型)。
    • 这种灵活性贯穿编程及更广泛的内容创作和研发阶段。
  • 赋能企业与个人
    • 目标是满足个人开发者和企业开发者的需求。
    • 鼓励客户围绕Copilot构建AI赋能的工具和使用方式。

Copilot在软件开发生命周期 (SDLC) 中的应用

Speaker 1强调,Copilot远不止代码补全工具,它能在整个软件迭代过程中发挥重要作用。

  • 代码补全与智能提示
    • Copilot能根据上下文智能提示和补全代码,可部署在不同IDE或云端(如GitHub Codespaces)。
    • 使用Copilot需要拥有账号。目前Copilot提供免费版本(“可能有5000次的一个代码补全”,有限次数聊天)和无限制的个人版、商业版、Professional版。
  • Copilot Editors
    • 针对用户反馈的“希望更精确”的需求,Copilot推出了“Copilot Editors”功能。
    • 它能更好地关联用户过往编写的代码,生成更贴合上下文的建议。
    • 在VS Code中,聊天界面除了传统聊天,新增了“Editors”选项卡,可以关联更多代码和文件进行辅助生成。
  • AI的辅助角色与采用率
    • AI并非百分百准确,仍需人工审查和修改。“AI不 不是百分百的……他可能更多的是在辅助编程”
    • 企业对AI编码的采用率通常在“30%到60%之间去浮动”,前端和移动端应用场景接受度可能更高。30%-40%是基础接受率。
  • 覆盖DevOps全流程
    1. 规划 (Planning):根据信息生成项目需求,进行需求分析。评估项目人力投入和模拟实际情况。
    2. 分析 (Analyzing):例如,根据一张设计图生成项目。
    3. 设计 (Designing):AI辅助完成项目大致框架和功能实现。
    4. 部署 (Deploying):辅助云部署、App打包等。
    5. 测试 (Testing):辅助生成单元测试代码。
    6. 维护 (Maintaining):根据需求或日志辅助定位问题。
    7. Speaker 1认为,Copilot若能涵盖这些步骤,将非常强大,其价值在于“在你整个软件迭代过程当中能够完成多少的工作”,而不仅仅是生成多少代码。

通过大语言模型 (LLM) 模拟和增强SDLC

Speaker 1通过一个实例演示了如何利用大语言模型(此处使用了OpenAI的GPT-4-mini模型)来模拟和执行软件开发的各个阶段,以此说明Copilot背后类似的能力和潜力。

  • 演示场景:基于一张谷歌搜索页面的截图。
  • 步骤模拟
    1. 需求规划:上传图片,要求LLM“根据该图片规划生成一个项目需求,请告诉我每一功能以及所需要的工作人员,明确每个功能的实现方式。”
      • LLM输出了前端、后端需求,包括UI Design、Technology等。
    2. 项目创建与架构设计:指令LLM“你是我的项目架构师,请使用Python加Flask创建一个项目,根据上面的需求创建一个项目,并且实现前后端分离。前端请使用HTML5加CSS3加jQuery。”
      • LLM生成了项目结构(前端、后端)和实现方式。
    3. 核心算法实现:指令LLM“能否帮我把该项目的搜索算法用Python生成。”
      • LLM生成了简单的搜索算法模拟。
    4. 项目打包与部署:指令LLM“能否帮我用Docker打包该项目生产?”
      • LLM生成了Dockerfile,包含Python版本(如3.9)、requirements.txt和启动方式。
    5. 测试用例生成:指令LLM“能否帮我用Node.js(原文为low js)针对上述代码的测试用例了。”
      • LLM尝试生成接口测试相关的模拟代码。
    6. 日志功能添加 (维护):指令LLM“能否对上述项目添加日志功能,包括用户收集、用户行为收集、错误采集等信息。”
      • LLM在后端代码中添加了日志相关功能。
    7. 日志分析与可视化:指令LLM“能否帮我用图表生成的方式检索上述不同类别的日志?”
      • LLM使用Python代码模拟读取和分析不同类型日志(用户行为、错误、访问)。
  • 结论:大模型在程序理解和整个软件迭代架构层面展现了强大能力,能够节省大量时间并实现较高精确度。这印证了“淘汰的是一些不懂使用AI的一些开发”的观点。

AI Agent (智能体):Copilot 高级定制的核心

Speaker 1指出,要充分发挥Copilot的潜力,特别是企业级定制,关键在于利用AI Agent。

  • 从提示词到单Agent到多Agent
    • 提示词工程:简单直接,但效果依赖技巧和表达清晰度。
    • 单Agent:如Copilot本身,根据指令完成特定任务(代码补全、Debug、文档生成)。但单一Agent难以应对复杂工作流(如需连接数据库、处理多种文档等)。
    • 多Agent协作:通过添加不同的智能体,使其协同工作,满足企业复杂需求。
  • 微软Azure AI Agent Service
    • 这是微软最新推出的服务,用于构建和管理智能体。
    • 与OpenAI Assistant对比的四大维度优势
      1. 模型 (Model):Azure AI Agent Service支持第三方模型(如Llama, Mistral),而OpenAI Assistant主要针对OpenAI系列模型。
      2. 数据 (Data):Azure AI Agent Service能更便捷地接入企业内部大量数据及微软服务、第三方服务(如Bing搜索)。
      3. 安全 (Security):Azure AI Agent Service提供更强的验证机制。
      4. 存储 (Storage):Azure AI Agent Service在数据存储和实现方式上限制更少。
  • Agent的核心能力
    • 工具 (Tools):赋予Agent执行特定任务的能力,如搜索引擎、代码执行、计算、日志记录。
    • 记忆 (Memory):使Agent能够记住上下文和历史信息。
    • 规划 (Planning):Agent能够制定计划以达成目标。
    • 行动 (Action/Response):Agent根据规划执行动作并作出响应。
  • Azure AI Agent Service与Semantic Kernel (SK)
    • Azure AI Agent Service直接支持Semantic Kernel。
    • 开发者可以使用Python或.NET版本的SDK快速接入。
    • Agent Service目前绑定了Bing服务,支持代码转换、文本搜索、Azure AI Search等。
  • 多Agent编排
    • 类似老板安排不同员工协同工作,需要编排任务流(谁先做,如何交互,如何保存结果)。
    • 可以使用AutoGenSemantic Kernel进行多Agent编排。
    • 示例:写博客任务分解为信息搜索、内容撰写、部署等步骤,由不同Agent协作完成。

微软的Agent框架

Speaker 1介绍了微软在智能体领域的主要框架:

  • Semantic Kernel (SK)
    • 已集成AI Agent能力,借鉴或采用了AutoGen的许多功能。
    • 适配不同模型,包括小模型。
    • 优点:多语言支持,为生产服务,编排能力强。
    • 适合用于实现Copilot应用或不同Agent的搭配使用。
  • AutoGen
    • 一个较为成熟的基于大语言模型的多Agent互动框架。
    • 最初偏向研究层面,但已逐渐实现许多生产可用功能。
    • 简化了编排、自动化和复杂大语言模型工作流。

实战演示:构建自定义GitHub Copilot Agent

Speaker 1演示了如何创建一个自定义的Python项目生成Agent,并集成到GitHub Copilot的聊天界面中。

  • 目标:创建一个Agent,接收用户需求,自动生成Python项目(基于.NET Aspire框架),并提供下载链接。
  • 技术栈
    • .NET Aspire:用于构建云原生应用的框架,此处用于捆绑API和项目分层。
    • Semantic Kernel:用于编排Agent的行为(代码生成、保存)。
    • OpenAI Service:提供底层的LLM能力。
    • Visual Studio Code Extension:将Agent功能集成到VS Code的Copilot聊天中。
  • Agent实现步骤
    1. 定义Agent行为
      • 帮助指令 (/help):使用Copilot自带的GPT-4o模型进行自我介绍。
      • 项目生成指令 (/project)
        • 接收项目需求。
        • 第一阶段 (代码生成):通过Semantic Kernel调用配置好的Agent(连接OpenAI Service)根据预设的架构模式(如CQRS pattern,前端使用Vue.js)生成代码。
        • 第二阶段 (代码保存与下载):将生成的代码打包,并提供下载链接。
    2. 后端实现 (.NET Aspire)
      • 创建REST API接口接收来自Copilot插件的请求。
      • 定义两个智能体:一个负责代码生成 (Code Generation Agent),一个负责保存 (Save Agent)。
      • 使用Semantic Kernel的编排功能,确保代码生成后触发保存和提供下载链接的逻辑。
    3. VS Code插件配置 (package.json, extension.ts)
      • package.json中定义Agent的名称(如pyagent)、命令(如help, project)、分类等。
      • extension.ts中实现命令处理逻辑:
        • /help命令直接调用Copilot内置模型。
        • /project命令将用户输入的需求发送到后端.NET Aspire实现的API接口。
        • 处理后端返回的下载链接并在聊天窗口显示。
  • 演示效果
    • 在VS Code的Copilot聊天窗口中输入@pyagent /project [项目需求描述,如创建一个购买啤酒的购物车场景]
    • Agent调用后端服务,经过一段时间处理(因未使用PPU,速度较慢)。
    • 最终返回一个包含项目代码的zip文件下载链接。
    • 解压后可以看到生成的项目结构和代码文件。
  • 项目开源:该演示项目代码已在Speaker 1的GitHub (book) 上发布,包含.NET Aspire后端和VS Code Extension两部分。

问答环节 (Q&A)

  • 国内是否可用Copilot:Speaker 1回答“国内是可以用的,不要扣拍了啊”(此处“不要扣拍了”应为口误或强调,意指Copilot可用)。
  • 初学者如何使用Copilot:建议初学者学会使用Copilot的组件,并清晰表达自己的需求。Copilot也希望非专业编程的业务人员能用它完成工作。
  • 零代码基础能否完成网页开发:Speaker 1认为可以,并提及演示中已展示相关内容。

核心结论

Speaker 1总结,GitHub Copilot的强大之处在于其可扩展性和可定制性,特别是通过AI Agent的引入,使其能够深度融入企业DevOps流程,并根据具体需求进行定制。AI工具(如Copilot)并非取代开发者,而是赋能开发者,提升效率,未来不懂得利用AI的开发者可能会面临挑战。企业和个人都应积极探索和利用Copilot及其Agent能力,以适应AI时代软件开发的新范式。