news 2026/8/27 19:17:47

Semantic Kernel 实战系列(七) - 高级主题 - Agents 与多代理系统

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Semantic Kernel 实战系列(七) - 高级主题 - Agents 与多代理系统

目录

1 Agents 的概念

2 实时集成与多模态

3 安全与观测性

4 部署与扩展

5 未来趋势


在上几篇文章中,我们已经深入探讨了Semantic Kernel的Memory机制和向量存储,这些工具让AI应用像传统数据库系统一样可靠,能处理海量知识。

我总是认为Agents作为下一个跃升点,它不只是简单调用模型,而是构建自主决策的实体,能在复杂环境中协作。通过该文章,我们一起来探讨一下Agents和多代理系统。接下来,我们会从Agents的基本概念入手,逐步展开实时集成、多模态支持、安全观测性、部署扩展,最后展望未来趋势。通过示例,让你能看到如何在实际项目中应用这些高级功能,比如在企业级Web服务中构建协作代理,提升自动化水平。

1 Agents 的概念

Agents在Semantic Kernel中是自主实体,能感知环境、规划行动并执行任务,这与传统.NET开发中的服务或Actor模型类似,但注入AI推理让它们更智能。单代理适合单一任务,比如一个客服代理处理用户查询;多代理则涉及协作,比如一个团队代理分工处理复杂问题,如订单处理中一个代理查库存、另一个算价格。

单代理的构建简单,用Kernel作为基础,添加插件和规划器让它自主运行。Semantic Kernel引入了更成熟的代理抽象,支持A2A协议,让代理间通信标准化。 在C#中,定义一个单代理:

using Microsoft.SemanticKernel.Agents; using Microsoft.SemanticKernel; var kernel = Kernel.CreateBuilder() .AddOpenAIChatCompletion("gpt-4o", apiKey) .Build(); var agent = new ChatCompletionAgent(kernel, "CustomerSupport") { Instructions = "你是一个客服代理,帮助用户解决问题。", ExecutionSettings = new OpenAIPromptExecutionSettings { ToolCallBehavior = ToolCallBehavior.AutoInvokeKernelFunctions } };

这个代理能自动调用插件响应查询,就像传统服务类处理请求,但AI决定下一步。多代理协作则用代理编排框架,Semantic Kernel的新框架允许定义工作流,让代理分工。 比如,构建一个多代理系统:

var inventoryAgent = new ChatCompletionAgent(kernel, "Inventory"); var pricingAgent = new ChatCompletionAgent(kernel, "Pricing"); var orchestrator = new AgentGroupChat(kernel); orchestrator.AddAgent(inventoryAgent); orchestrator.AddAgent(pricingAgent); var response = await orchestrator.InvokeAsync("处理订单:检查库存并计算总价。");

这里,编排器像消息总线,代理间传递信息,确保协作顺畅。这在微服务架构中实用,你能将每个代理部署为独立服务,代理间用gRPC通信,融合传统分布式系统。

Agents的概念强调自主性,单代理处理线性任务,多代理应对并行或冲突场景。Semantic Kernel的更新让多代理更易构建,支持低代码方式,通过YAML定义代理角色。 在实际项目中,这意味着你能在Blazor应用中嵌入代理,用户交互时代理后台协作,提供实时建议,减少前端逻辑复杂度。

多代理的协作还能模拟人类团队,比如一个代理提出想法、另一个验证,这优化决策过程。在企业应用中,用它自动化审批流:一个代理审合规、另一个算风险,整体提升效率。

2 实时集成与多模态

实时集成是Agents的关键,让它们处理流式数据和即时响应,多模态支持则扩展到语音、视频和文本结合。Semantic Kernel添加了实时API集成,支持WebSocket-like连接,让代理在对话中实时更新。 这与传统实时Web如SignalR类似,你能将代理嵌入ASP.NET Core的Hub中。

语音集成用Azure Speech服务,代理监听输入、生成响应:

using Microsoft.SemanticKernel.Connectors.Azure; using Microsoft.CognitiveServices.Speech; var speechConfig = SpeechConfig.FromSubscription("key", "region"); var synthesizer = new SpeechSynthesizer(speechConfig); var agent = new ChatCompletionAgent(kernel, "VoiceAgent"); agent.Instructions = "处理语音查询,转为文本处理,再合成语音输出。"; // 集成实时:监听语音,代理响应 var recognizer = new SpeechRecognizer(speechConfig); var result = await recognizer.RecognizeOnceAsync(); var query = result.Text; var response = await agent.InvokeAsync(query); await synthesizer.SpeakTextAsync(response.Content);

这让代理多模态,处理语音查询,适合客服App。视频支持则用多模态模型如gpt-4o,代理分析帧:

var prompt = "分析视频{{$videoUrl}}中的动作,并描述。"; var arguments = new KernelArguments { ["videoUrl"] = "https://example.com/video.mp4" }; var result = await kernel.InvokePromptAsync(prompt, arguments);

Semantic Kernel的实时框架支持实验性集成,让代理在Python和.NET间协作。 在实际落地中,这能在MAUI移动App中实现,代理实时处理相机输入,提供AR指导,结合传统UI事件。

多代理的多模态协作更强大,比如一个代理处理语音、另一个分析视频,编排器融合输出。这在监控系统中实用,代理实时检测异常,通知团队,优化响应时间。

实时API支持让代理集成外部服务,如股票API,代理监控变化自动决策。这桥接AI与传统事件驱动架构,提升系统响应性。

3 安全与观测性

Agents的安全和观测性是企业部署的核心,Semantic Kernel提供钩子、过滤器和遥测日志,确保系统可控、可审计。钩子像中间件,拦截事件:

kernel.FunctionInvoking += (sender, e) => { if (e.Function.Name == "SensitiveOp") { // 安全检查 if (!Authorize(e.Arguments["user"])) e.Cancel = true; } };

这防止未授权调用,类似传统认证过滤器。过滤器扩展钩子,支持输入输出清洗:

kernel.PromptFilter += (sender, e) => { e.RenderedPrompt = SanitizeInput(e.RenderedPrompt); // 移除敏感词 };

观测性用OpenTelemetry标准,Semantic Kernel内置日志、度量和追踪。 配置:

using Microsoft.Extensions.Logging; using OpenTelemetry.Trace; var loggerFactory = LoggerFactory.Create(builder => builder.AddConsole()); kernel.Services.AddSingleton<ILoggerFactory>(loggerFactory); TracerProviderBuilder builder = Sdk.CreateTracerProviderBuilder() .AddSemanticKernelInstrumentation() .AddConsoleExporter();

这让代理行为透明,你能在Azure Monitor中追踪调用链,诊断瓶颈。过滤器还能监控偏见,代理输出前检查,确保合规。

在多代理系统中,观测性更重要,编排器日志代理间交互,便于调试协作问题。这在生产环境中落地,用AppInsights收集遥测,设置警报,避免安全漏洞。

安全钩子支持自定义,如集成Azure AD验证代理访问。整体,这些功能让Agents从原型到企业级,开发者能在项目中自信部署,减少风险。

4 部署与扩展

部署Agents需考虑扩展性,Semantic Kernel支持Azure Functions和容器化,让代理无服务器运行或Kubernetes扩展。到2025年,Azure Functions强化容器支持,你能将代理打包为Docker镜像。

Azure Functions部署:创建函数项目,注入Kernel:

[Function("AgentFunction")] public async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Function, "post")] HttpRequest req) { var kernel = _kernel; // 从DI注入 var agent = new ChatCompletionAgent(kernel); var input = await req.ReadAsStringAsync(); var response = await agent.InvokeAsync(input); return new OkObjectResult(response.Content); }

这让代理作为API端点,自动缩放。容器化用Dockerfile:

FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build WORKDIR /app COPY . . RUN dotnet publish -c Release -o out FROM mcr.microsoft.com/dotnet/aspnet:9.0 WORKDIR /app COPY --from=build /app/out . ENTRYPOINT ["dotnet", "AgentApp.dll"]

部署到Azure Container Apps,支持多代理扩展,每个代理独立容器,编排器协调。 在实际项目中,这优化成本,高峰时自动扩容,结合传统CI/CD管道如GitHub Actions,实现零停机更新。

扩展还包括负载均衡,多代理系统用Service Fabric集群,代理间通信优化延迟。这在电商平台中落地,代理处理峰值订单,容器确保高可用。

Semantic Kernel的内核设计让部署轻量,你能AOT编译代理App,提升启动速,适合Serverless。

5 未来趋势

Semantic Kernel与.NET 9+的演进正加速AI代理的普及,.NET 10 Preview 7引入Microsoft.Extensions.AI抽象,让代理集成更原生。 这意味着未来,代理像扩展服务一样注入,简化开发。

.NET 9的Blazor改进支持了Agent UI渲染,代理实时更新组件。 而.NET 10 预览版中强化AOT和云原生,让代理在边缘运行。

Semantic Kernel的路标聚焦代理创新,与.NET合作移功能到基础库。 趋势是多代理模式改变.NET,从单体到代理生态。在项目中,这鼓励开发者探索代理模式,构建自适应系统,如智能DevOps工具,代理自动化测试和部署。未来还包括更强多模态,代理处理AR/VR输入,集成.NET的XR支持。整体上,Semantic Kernel将持续演进。

引入地址

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/28 4:26:49

2025冬至继上

如果把生活类比成可迭代的对象&#xff0c;我的生活又到哪个版本了&#xff1f;还有什么可优化的地方吗&#xff1f;客观的事物不以人的意志为转移&#xff0c;怎么才能使自己的生活贴近事物发展的自然规律&#xff0c;使自己更贴近 按规律办事&#xff1f;古人云&#xff0c;头…

作者头像 李华
网站建设 2026/8/26 21:10:49

5.A.swift 使用指南

家好&#xff0c;我是K哥。一名独立开发者&#xff0c;同时也是Swift开发框架【Aquarius】的作者&#xff0c;悦记和爱寻车app的开发者。Aquarius开发框架旨在帮助独立开发者和中小型团队&#xff0c;完成iOS App的快速实现与迭代。使用框架开发将给你带来简单、高效、易维护的…

作者头像 李华
网站建设 2026/8/27 17:51:14

3个常见的降AI率工具大汇总(含免费降AI额度),AI率降到20以内!

临近毕业&#xff0c;好多学弟学妹都在问&#xff1a;有没有免费的降AI率工具&#xff1f; 一篇论文动不动10000、20000字&#xff0c;查重、查AI率、降重、降AIGC率&#xff0c;再查一次AIGC率。从写好论文到最后通过查重&#xff0c;最起码得好几百。 对学生来说&#xff0…

作者头像 李华
网站建设 2026/8/26 18:49:38

生产事故-Caffeine缓存误用之临下班的救赎

0x01 事故背景2025年7月9日17时有余&#xff0c;笔者正准备结束疲惫的一天&#xff0c;关机走人之时&#xff0c;桌面右下角安静了一天的内部通讯软件图标突然亮起&#xff0c;内心顿感不妙……打开一看&#xff0c;原来是运维小哥找过来了&#xff0c;说是某接口服务连续多次调…

作者头像 李华
网站建设 2026/8/26 18:40:44

大模型RL后训练扩展定律:66组实验揭示的幂律关系与效率饱和现象

中国科学技术大学与上海人工智能实验室联合研究基于Qwen2.5全系列模型(0.5B-72B)进行66组控制变量实验&#xff0c;首次系统探究RL后训练扩展定律。研究发现测试损失与计算量、数据量呈对数线性关系&#xff0c;可总结为幂律公式&#xff1b;同时定量揭示强化学习效率随参数量增…

作者头像 李华
网站建设 2026/8/27 16:42:14

大模型面试经验汇总:22家大厂面试实录+高频考点解析

本文详细记录了作者2023年参加的22家科技公司大模型岗位面试经验&#xff0c;包括面试流程、问题及感悟。文章总结了高频考点&#xff1a;多头注意力机制、框架并行方式、主流模型细节、大模型训练技巧、数据预处理和模型评估等。作者指出大模型领域竞争激烈&#xff0c;岗位对…

作者头像 李华