行业新闻

Milan Jovanović 使用.NET Core创建 PDF 文档——他选择的库是IronPDF。

Microsoft发布了Agent Framework作为Semantic Kernel和AutoGen的直接继承者,整合了公司在AI工具中积累的代理构建工作。 对于开发.NET库的团队,也就是我们在Iron Software所做的,这次发布值得仔细研究。 代理框架本质上关于赋予LLM使用工具的能力,而实践中代理最终调用的工具是库。

以下是我们在概述中看到的亮点,以及我们从图书作者的角度考虑它的方式。

Agent Framework是什么

该框架提供了两种主要功能。 代理是由LLM驱动的个体工作者,他们处理输入、调用工具和MCP服务器,并生成响应。 工作流是基于图形的编排,它将多个代理和函数连接在一起,提供类型安全的路由、检查点和人工参与支持。

围绕这两个界面,该框架提供企业AI工具团队所期望的构建模块:跨Azure OpenAI、OpenAI、Anthropic、Ollama和Microsoft Foundry的模型客户端; 基于会话的状态管理; 为内存提供上下文提供商; 拦截代理操作的中间件; 以及MCP客户用于工具集成。

"Semantic Kernel和AutoGen的继承者"的框架很重要。 Microsoft正在整合而不是增加另一个框架选项。 对于那些一直在等待承诺.NET代理栈的团队来说,现在有了一个更清晰的答案。

文档中的被低估的行

藏在何时使用代理与工作流的部分中的是一句比页面其余部分做了更多工作的句子:

如果可以写一个函数来处理任务,请代之以使用AI代理。

这是诚实的工程框架,它应该是关于代理采用的每次对话的起点。 代理不是魔法。 它们是可以选择调用哪个工具以及以何种顺序调用的LLMs。 当任务是确定性的时,函数更快、更便宜、更可靠。 当真正开放的路径穿过任务时,代理就获得了它的位置。

对于库的团队来说,这是绿灯。 我们的库是代理在委托工作时调用的函数。 框架不会替换库代码; 它依赖于它。

.NET库如何适应

工具是代理与用户真正想完成的工作之间的连接纽带。 当代理决定"这个用户想要从我们刚刚总结的数据生成PDF"时,它不会自己生成PDF。 它调用一个执行此操作的工具。

生产AI应用程序中最有用的工具归结为对文档、数据或外部系统的操作。 对于在文档处理领域工作的.NET团队,这直接映射到诸如IronPDFIronOCRIronXL之类的库。 一个使用包装为代理可以调用的函数的IronPDF的具体例子:

[Description("Generates a PDF from HTML content and saves it to disk")]
public static string GenerateHtmlPdf(
    [Description("The HTML content to render")] string html,
    [Description("The output file path")] string outputPath)
{
    var renderer = new ChromePdfRenderer();
    using var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs(outputPath);
    return $"PDF saved to {outputPath}";
}
[Description("Generates a PDF from HTML content and saves it to disk")]
public static string GenerateHtmlPdf(
    [Description("The HTML content to render")] string html,
    [Description("The output file path")] string outputPath)
{
    var renderer = new ChromePdfRenderer();
    using var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs(outputPath);
    return $"PDF saved to {outputPath}";
}
Imports System.ComponentModel

<Description("Generates a PDF from HTML content and saves it to disk")>
Public Shared Function GenerateHtmlPdf(
    <Description("The HTML content to render")> html As String,
    <Description("The output file path")> outputPath As String) As String

    Dim renderer = New ChromePdfRenderer()
    Using pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs(outputPath)
    End Using
    Return $"PDF saved to {outputPath}"
End Function
$vbLabelText   $csharpLabel

将此函数注册为与代理的工具,代理现在可以按需生成样式化的PDF报告。 相同的模式适用于OCR(从扫描文档中提取文本)、电子表格操作(读取或写入XLSX数据)和文件转换。 每个库暴露一种能力,并且每种能力成为一种代理工具。

文档管道的工作流

工作流界面值得单独看。 生产中的文档处理很少是一步完成的。 典型的现实世界的管道看起来像这样:OCR扫描的发票,提取结构化字段,根据业务规则验证它们,将验证后的数据写入Excel分类账,并为客户生成PDF收据。

该序列干净地映射到基于图形的工作流中,步骤之间提供类型安全的路由。 每个节点都是一个函数或代理,每个转换都有明确定义的输入和输出类型,工作流支持用于长时间运行操作的检查点和任何步骤中的人工审查。

对于那些在自定义代码中手动滚动这种编排的团队来说,工作流界面是Agent Framework中最值得研究的部分。

对于需要PDF、OCR、Excel、Word或条形码功能来支持工具调用或工作流的节点的团队,Iron Suite提供了经过生产验证的所有五个实现版本。免费试用,无需信用卡。

限制和注意事项

在承诺之前有一些值得注意的事情:

  • 框架是新的。 它整合了Semantic Kernel和AutoGen的成熟概念,但合并的API界面本身是最近的。 API将继续演变。
  • 第三方模型和工具的风险。 Microsoft自己的文档明确指出,您集成的任何第三方系统(非Azure模型、外部代理、第三方工具)在数据处理、成本和安全方面仍然是您的责任。 这是正确的框架,值得仔细阅读。
  • 生产护栏仍然是您的责任。 内容过滤器、负责的AI缓解、遥测以及针对您特定用例的质量测试不是框架提供的。 它为您提供构建模块; 围绕它们的系统由您构建。

摘要

Microsoft Agent Framework是公司在AI代理工作方面的可靠整合,正值.NET团队正在寻找一个稳定基础来构建生产AI应用程序时到来。 它最重要的框架也是最容易忽视的:当代理包裹在实际上完成工作的函数和库周围时,它们最有用。

对库的团队来说,那是我们一直在等待的位置。