MAF快速入门(15)Agent调试利器:DevUI

大家好,我是Edison。

最近我一直在跟着圣杰的《.NET+AI智能体开发进阶》课程学习MAF开发多智能体工作流,我强烈推荐你也上车跟我一起出发!

上一篇,我们学习了MAF中快速集成A2A (Agent to Agent)。本篇,我们来了解下在MAF提供的调试利器:DevUI。

1 什么是DevUI

DevUI 是一个开箱即用的交互式 Web 调试界面 ,无需额外开发,启用后就能可视化测试、调试 AI 代理,从 Agent 列表查看、工具调用验证到工作流流转,全流程可视化,让 AI 智能体开发从 "盲调" 变 "明调"。

DevUI 允许开发者:

  • 🧪 在浏览器中测试 Agent :无需编写客户端代码即可与 Agent 对话。

  • 📊 查看对话历史 :清晰展示 User 和 Agent 之间的消息交互。

  • 🔍 调试多 Agent 系统 :支持切换不同的 Agent 和 Workflow 进行测试。

  • 🛠️ 零配置启动 :只需简单的配置即可集成到 ASP.NET Core 应用中。

综上所述,DevUI 就像是 Agent 的**"浏览器开发者工具"**,让你能够直观看到 Agent 的 "一举一动",快速调试和定位问题。

画外音:DevUI 即 Developer UI, it's For Developers!

2 快速开始:创建一个DevUI示例

在MAF中提供了一个内置的DevUI组件,我们可以非常方便地创建集成DevUI的Agent应用。

接下来,我们就一步一步完成一个DevUI示例。

首先,我们创建一个ASP.NET Web应用,安装以下NuGet包:

复制代码
<PackageReference Include="Microsoft.Agents.AI.OpenAI" Version="1.0.0-preview.260128.1" />
<PackageReference Include="Microsoft.Agents.AI.Workflows" Version="1.0.0-preview.260128.1" />
<PackageReference Include="Microsoft.Agents.AI.DevUI" Version="1.0.0-preview.260128.1" />
<PackageReference Include="Microsoft.Agents.AI.Hosting" Version="1.0.0-preview.260128.1" />
<PackageReference Include="Microsoft.Agents.AI.Hosting.OpenAI" Version="1.0.0-alpha.260128.1" />
<PackageReference Include="Microsoft.Extensions.AI.OpenAI" Version="10.2.0-preview.1.26063.2" />

然后,就是整个示例的核心部分,我们一块一块来说:

(1)创建并注册ChatClient

复制代码
var builder = WebApplication.CreateBuilder(args);
// Step0. Load Configuration
var config = new ConfigurationBuilder()
    .AddJsonFile($"appsettings.json", optional: false, reloadOnChange: true)
    .Build();
var openAIProvider = config.GetSection("OpenAI").Get<OpenAIProvider>();
// Step1. Register one ChatClient
var chatClient = new OpenAIClient(
        new ApiKeyCredential(openAIProvider.ApiKey),
        new OpenAIClientOptions { Endpoint = new Uri(openAIProvider.Endpoint) })
    .GetChatClient(openAIProvider.ModelId)
    .AsIChatClient();
builder.Services.AddChatClient(chatClient);

(2)创建并注册一些示例Agents:

复制代码
// Step2. Register some Agents
builder.AddAIAgent("Assistant", "你是一位乐于助人的助手。回答问题简洁准确。");
builder.AddAIAgent("Poet", "你是一位富有创造力的诗人。使用优美的诗篇回答所有的请求");
builder.AddAIAgent("Coder", "你是一位资深的程序员。请协助用户解决编程问题,并提供代码示例。");

(3)创建并注册一个Workflow:

复制代码
// Step3. Register one Workflow
var writerAgent = builder.AddAIAgent("Writer", "你是一位乐于助人的助手,善于回答用户提出的各种问题。");
var reviewerAgent = builder.AddAIAgent("Reviewer", "你是一位专业审阅者,请协助审阅并评价之前的回复。");
builder.AddWorkflow("TestWorkflow", (sp, key) =>
{
    var aiAgents = new List<IHostedAgentBuilder>()
    {
        writerAgent,
        reviewerAgent
    }
    .Select(hab => sp.GetRequiredKeyedService<AIAgent>(hab.Name));
    return AgentWorkflowBuilder.BuildSequential(
        workflowName: key,
        agents: aiAgents);
}).AddAsAIAgent();

(4)注册DevUI相关服务:

复制代码
// Step4. Register DevUI related services
builder.Services.AddOpenAIResponses();
builder.Services.AddOpenAIConversations();

(5)映射DevUI相关端点:

复制代码
var app = builder.Build();
// Step5. Mapping DevUI related endpoints
app.MapOpenAIResponses();
app.MapOpenAIConversations();
if (app.Environment.IsDevelopment())
{
    app.MapDevUI();
}
......
app.Run();

可以看到,我们仅用一行代码 app.MapDevUI() 就启用了DevUI,无需开发任何前端代码。

综上所述,我们创建了一些示例Agent 和 一个Workflow 作为后续演示。

3 开启调试:友好体验

这里我们启动起来,就会看到如下所示的界面:

整个DevUI界面氛围两部分:

(1)左边是调试区 和 展示区,可以看到对话记录 和 Workflow节点状态;

(2)右边是跟踪区,展示Trace 和 Event 等执行记录,以便快速定位问题;

我们可以通过点击左上角的下拉框,看到我们注册的所有Agent 和 Workflow:

这就意味着,我们可以对所有注册的Agent对象进行调试!

3.1 调试单个Agent

这里我们测试Poet 和 Coder两个Agent:

首先是Poet,我们让它作一首诗。

其次是Coder,我们让它写一段代码。

可以看到,它的输出是流式的,且针对像代码这块输出做了代码块的展示,总之显示地很友好,看起来很舒服。

3.2 调试一个Workflow

这里我们测试一下注册的Workflow,这是一个 Editor -> Reviewer 的典型顺序工作流,首先由创作者编写初稿,然后由审阅者进行审阅,最终输出给用户。

下图展示切换到Workflow的展示:

可以看到,它清晰地展示了工作流的节点和顺序。

然后,点击Run按钮即可输入启动内容:

随后,可以看到它执行的全过程,通过右边的区域可以看到每个执行步骤的过程:

最终,整个工作流节点都变成了绿色的完成状态,我们可以在右边点击执行过程看到中间输出内容 和 最终输出内容。

此外,如果涉及工具调用的话,还可以点击 Tools 区域查看调用工具的记录,实在不要太方便!

4 注意事项

DevUI 虽好,但是其本身只是用来服务开发阶段的,因此建议:

  • 仅在开发环境启用DevUI,生产环境请关闭DevUI。
  • 如需在测试环境启用DevUI,建议添加访问权限控制,避免暴露敏感信息。

5 小结

本文介绍了DevUI是什么,它有什么样的优势,随后介绍了如何在MAF中快速集成DevUI用于开发调试获得友好的开发调试体验,希望本文的案例对你有所帮助。

示例源码

GitHub: https://github.com/EdisonTalk/MAFD

参考资料

圣杰,《.NET + AI 智能体开发进阶》(推荐指数:★★★★★)

Microsoft Learn,《Agent Framework Tutorials


作者:爱迪生

出处:https://edisontalk.cnblogs.com

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

相关推荐
Nicolas8933 小时前
【大模型应用篇】用 OpenClaw + 飞书打造 7x24 小时服务器运维机器人
agent·智能体·openclaw·ai智能体网关·飞书智能体通信·智能化运维
玄同7653 小时前
Python Random 模块深度解析:从基础 API 到 AI / 大模型工程化实践
人工智能·笔记·python·学习·算法·语言模型·llm
大模型真好玩3 小时前
中美大模型“内战”都怎么打!一文详解Claude Opus 4.6和GPT-5.3 CodeX核心特性
人工智能·agent·deepseek
种时光的人3 小时前
CANN 生态 ×AIGC 合规:cann-compliance 让大模型落地既安全又合规
安全·aigc
多恩Stone4 小时前
【3D AICG 系列-8】PartUV 流程图详解
人工智能·算法·3d·aigc·流程图
计算机小手4 小时前
Docker 部署 OpenClaw 汉化版,畅玩个人 AI 智能代理
经验分享·docker·aigc·开源软件
种时光的人4 小时前
CANN生态自动调优:cann-auto-tune 让AIGC大模型性能优化自动化、极致化
性能优化·自动化·aigc
想用offer打牌11 小时前
MCP (Model Context Protocol) 技术理解 - 第二篇
后端·aigc·mcp