极客说|利用 Azure AI Agent Service 创建自定义 VS Code Chat participant

news2025/3/15 4:25:59

作者:卢建晖 - 微软高级云技术布道师 

「极客说」 是一档专注 AI 时代开发者分享的专栏,我们邀请来自微软以及技术社区专家,带来最前沿的技术干货与实践经验。在这里,您将看到深度教程、最佳实践和创新解决方案。关注「极客说」,与行业顶尖专家一起探索科技的无限可能!

利用 GitHub Copilot 可以让 AI 提升开发者的编程效率, 通过不同的 Chat Participant 更可以让开发者完成不同场景的 AI 赋能,如 @workspace 不仅可以创建简单项目和 Notebook,更可以帮你维护项目代码,以及生成测试环境等。你可以通过在 GitHub Copilot Chat 中输入 /help 以了解系统自带的 Chat Participant。当然你也可以自定义属于自己工作流上的各种 Chat Participant。现在自定义 Chat Participant,可以基于 Visual Studio Code Chat Extension 进行创建,也可以直接创建 Copilot Extensions 用以支持更多的 IDE 应用。

在上篇文章中,大家可以看到如何通过 Semantic Kernel 去编排 Multi-Agents。结合 LLM 的能力,我们可以使用 Multi-Agents 完成更复杂的工作,例如在软件工程中的支撑。过去,我们借助简单的框架使用 IDE 创建项目,再一步步根据需求进行不同的代码编写。有了生成式 AI 的加持后,我们或许可以结合 LLM,根据需求快速完成代码生成工作,不仅能搭建框架,还能够完成逻辑代码的生成。

利用 Azure AI Agent Service 提供的各种 DevOps 环境中的 Agent,可以应对不同的工作流来完成 Multi-Agents 编排。如创建项目,我们需要两个 Agent 配合我们的工作,一个读取需求并生成代码的 Agent,一个保存代码的 Agent。结合 Semantic Kernel 的能力,我们可以快速地完成项目创建工作。接下来让我们围绕 Python Flask 项目创建的场景来构建一个自定义的 Visual Studio Code Chat participant。

模型的选择


为了按特定步骤解读需求并生成代码,我们需要一个具备强大推理能力的模型。o1-mini 是非常棒的选择,当然我们也推荐你尝试 Phi-4。至于代码保存功能,我们可用 gpt-4o-mini 来实现。

Multi-Agent 编排


使用 Azure AI Inference SDK 调用 GitHub Models 的 o1-mini 来创建代码生成 Agent,利用 Azure AI Foundry SDK 创建基于 Azure AI Agent Service 的代码保存 Agent。使用 Semantic Kernel 进行 Muliti-Agent 编排,按下图所示与 Plugin 进行绑定,并在 GroupChat 中设置 Agent 交互模式。

整体架构


.NET Aspire 是非常好的分布式应用框架,我们使用 .NET Aspire 来管理我们的 Agent 服务。通过集成 .NET + Semantic Kernel,我们可以非常便捷地创建 Chat Participant 自定义接口服务。可以看到,Chat Participant 可用于应对不同的开发场景,不同的 AI Agents 也可以很好地完成相关定义。必须要说的是,在 LLM / SLM 时代,我们需要更灵活地适配工作流,Semantic Kernel / AutoGen 都具备 AI Agent 的编排能力。


至于 Visual Studio Code Chat Extension,我们定义两个指令 /help 以及 /proj,来分别定义自我介绍以及项目创建的工作。 

  • /help 使用 GitHub Copilot 自带的 gpt-4o 来完成简单的介绍工作。无需绑定任何第三方 Agent。

  • /proj 用于构建项目,你需要编写需求,然后通过 fetch 调用由封装好的 Semantic Kernel 编排的多 Agent 接口。

查看完整代码https://github.com/kinfey/MultiAIAgent/tree/main/ghext

相关资源


了解 Azure AI Agent Servicehttps://learn.microsoft.com/en-us/azure/ai-services/agents/

学习 Microsoft AutoGenhttps://microsoft.github.io/autogen/dev/

学习 Microsoft Semantic Kernelhttps://github.com/microsoft/semantic-kernel

学习 Visual Studio Code Chat extensionshttps://code.visualstudio.com/api/extension-guides/chat

免费开启 Visual Studio Code GitHub Copilothttps://aka.ms/CopilotFree_R

资料推荐


智能 GitHub Copilot 副驾驶® 提示和技巧https://info.microsoft.com/GC-DevOps-CNTNT-FY25-08Aug-23-Smart-GitHub-Copilot-Tips-and-Tricks-SRGCM12801_LP01-Registration---Form-in-Body.html

Azure OpenAI 生成式人工智能白皮书https://info.microsoft.com/GC-AzureAI-CNTNT-FY25-08Aug-21-Azure-OpenAI-Generative-Artificial-Intelligence-White-Paper-SRGCM12789_LP01-Registration---Form-in-Body.html

利用 AI 和 DevOps 重新定义开发人员体验https://info.microsoft.com/ww-landing-redefining-the-developer-experience.html?lcid=ZH-CN

SAP on Microsoft Cloudhttps://info.microsoft.com/GC-SAP-CNTNT-FY25-08Aug-27-SAP-on-Microsoft-Cloud-SRGCM12804_LP01-Registration---Form-in-Body.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2296010.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

windows + visual studio 2019 使用cmake 编译构建静、动态库并调用详解

环境 windows visual studio 2019 visual studio 2019创建cmake工程 1. 静态库.lib 1.1 静态库编译生成 以下是我创建的cmake工程文件结构,只关注高亮文件夹部分 libout 存放编译生成的.lib文件libsrc 存放编译用的源代码和头文件CMakeLists.txt 此次编译CMak…

【kafka实战】05 Kafka消费者消费消息过程源码剖析

1. 概述 Kafka消费者(Consumer)是Kafka系统中负责从Kafka集群中拉取消息的客户端组件。消费者消费消息的过程涉及多个步骤,包括消费者组的协调、分区分配、消息拉取、消息处理等。本文将深入剖析Kafka消费者消费消息的源码,并结合…

[EAI-033] SFT 记忆,RL 泛化,LLM和VLM的消融研究

Paper Card 论文标题:SFT Memorizes, RL Generalizes: A Comparative Study of Foundation Model Post-training 论文作者:Tianzhe Chu, Yuexiang Zhai, Jihan Yang, Shengbang Tong, Saining Xie, Dale Schuurmans, Quoc V. Le, Sergey Levine, Yi Ma 论…

算法与数据结构(字符串相乘)

题目 思路 这道题我们可以使用竖式乘法,从右往左遍历每个乘数,将其相乘,并且把乘完的数记录在nums数组中,然后再进行进位运算,将同一列的数进行相加,进位。 解题过程 首先求出两个数组的长度,…

DeepSeek从入门到精通:全面掌握AI大模型的核心能力

文章目录 一、DeepSeek是什么?性能对齐OpenAI-o1正式版 二、Deepseek可以做什么?能力图谱文本生成自然语言理解与分析编程与代码相关常规绘图 三、如何使用DeepSeek?四、DeepSeek从入门到精通推理模型推理大模型非推理大模型 快思慢想&#x…

【异常解决】在idea中提示 hutool 提示 HttpResponse used withoud try-with-resources statement

博主介绍:✌全网粉丝22W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…

【Uniapp-Vue3】UniCloud云数据库获取指定字段的数据

使用where方法可以获取指定的字段: let db uniCloud.database(); db.collection("数据表").where({字段名1:数据, 字段名2:数据}).get({getOne:true}) 如果我们不在get中添加{getOne:true},在只获取到一个数据res.result.data将会是一个数组&…

信息科技伦理与道德3-2:智能决策

2.2 智能推荐 推荐算法介绍 推荐系统:猜你喜欢 https://blog.csdn.net/search_129_hr/article/details/120468187 推荐系统–矩阵分解 https://blog.csdn.net/search_129_hr/article/details/121598087 案例一:YouTube推荐算法向儿童推荐不适宜视频 …

Visual Studio 2022 中使用 Google Test

要在 Visual Studio 2022 中使用 Google Test (gtest),可以按照以下步骤进行: 安装 Google Test:确保你已经安装了 Google Test。如果没有安装,可以通过 Visual Studio Installer 安装。在安装程序中,找到并选择 Googl…

WGCLOUD监控系统部署教程

官网地址:下载WGCLOUD安装包 - WGCLOUD官网 第一步、环境配置 #安装jdk 1、安装 EPEL 仓库: sudo yum install -y epel-release 2、安装 OpenJDK 11: sudo yum install java-11-openjdk-devel 3、如果成功,你可以通过运行 java …

协议-WebRTC-HLS

是什么? WebRTC(Web Real-Time Communication) 实现 Web 浏览器和移动应用程序之间通过互联网直接进行实时通信。允许点对点音频、视频和数据共享,而无需任何插件或其他软件。WebRTC 广泛用于构建视频会议、语音通话、直播、在线游…

MySQL系列之数据类型(String)

导览 前言一、字符串类型知多少 1. 类型说明2. 字符和字节的转换 二、字符串类型的异同 1. CHAR & VARCHAR2. BINARY & VARBINARY3. BLOB & TEXT4. ENUM & SET 结语精彩回放 前言 MySQL数据类型第三弹闪亮登场,欢迎关注O。 本篇博主开始谈谈MySQ…

【C++高并发服务器WebServer】-15:poll、epoll详解及实现

本文目录 一、poll二、epoll2.1 相对poll和select的优点2.2 epoll的api2.3 epoll的demo实现2.5 epoll的工作模式 一、poll poll是对select的一个改进,我们先来看看select的缺点。 我们来看看poll的实现。 struct pollfd {int fd; /* 委托内核检测的文件描述符 */s…

git提交到GitHub问题汇总

1.main->master git默认主分支是maser,如果是按照这个分支名push,GitHub会出现两个branch,与预期不符 解决方案:更改原始主分支名为main git config --global init.defaultBranch main2.git:OpenSSL SSL_read: SS…

CNN-GRU卷积神经网络门控循环单元多变量多步预测,光伏功率预测(Matlab完整源码和数据)

代码地址:CNN-GRU卷积神经网络门控循环单元多变量多步预测,光伏功率预测(Matlab完整源码和数据) CNN-GRU卷积神经网络门控循环单元多变量多步预测,光伏功率预测 一、引言 1.1、研究背景和意义 随着全球能源危机和环境问题的日…

编译原理面试问答

编译原理面试拷打 1.编译原理的基本概念 编译原理是研究如何将高级程序语言转换为计算机可执行代码的理论与技术,其核心目标是实现高效、正确的代码翻译。 **编译器:**将源代码转化为目标代码(机器码、字节码等)。一次翻译整个程…

LIMO:上海交大的工作 “少即是多” LLM 推理

25年2月来自上海交大、SII 和 GAIR 的论文“LIMO: Less is More for Reasoning”。 一个挑战是在大语言模型(LLM)中的复杂推理。虽然传统观点认为复杂的推理任务需要大量的训练数据(通常超过 100,000 个示例),但本文展…

Ollama 部署本地大语言模型

一、下载安装ollama 1.百度 ollama Ollama 2.点击下载 可以复制下载链接,使用下载器下载。 3.双击安装 默认安装目录:C:\Users\用户名\AppData\Local\Programs\Ollama 二、更改模型下载目录 0.默认下载目录 (跳过) 之前没下载过模型,不…

pytest-xdist 进行多进程并发测试!

在软件开发过程中,测试是确保代码质量和可靠性的关键步骤。随着项目规模的扩大和复杂性的增加,测试用例的执行效率变得尤为重要。为了加速测试过程,特别是对于一些可以并行执行的测试用 例,pytest-xdist 提供了一种强大的工具&…

24.ppt:小李-图书策划方案【1】

目录 NO1234​ NO5678​ NO1234 新建PPT两种方式👇docx中视图→导航窗格→标题1/2/3ppt新建幻灯片→从大纲→重置开始→版式设计→主题插入→表格 NO5678 SmartArt演示方案:幻灯片放映→自定义幻灯片放映→新建→选中添加