大数跨境
0
0

使用Microsoft Agent Framework调用函数工具

使用Microsoft Agent Framework调用函数工具 dotNET跨平台
2025-11-21
8
导读:在现代 AI 应用场景中,Agent Framework 为开发者提供了强大的能力,能够集成多种工具,使智能

在现代 AI 应用场景中,Agent Framework 为开发者提供了强大的能力,能够集成多种工具,使智能体更智能、灵活,满足复杂业务需求。本文将围绕以下代码片段,讲解如何在 Agent Framework 中集成和调用工具,并通过具体案例分析其应用流程和核心优势。我们继续沿用中 的配置使用 Microsoft Agent Framework 构建你的第一个 Agent 应用

示例代码解析

// ... 引用与变量初始化略 ...

[Description("获取指定国家的最新新闻标题。")]
static string GetNews([Description("国家名称。")] string country)
    => $"来自 {country} 的头条新闻:AI 正在革新软件开发领域。";

// 创建 agent 并集成工具方法
AIAgent agent = new AzureOpenAIClient(
    new Uri(endpoint),
    new AzureCliCredential())
    .GetChatClient(deploymentName)
    .CreateAIAgent(instructions: "你是一个乐于助人的助手", tools: [AIFunctionFactory.Create(GetNews)]);

// 非流式调用
Console.WriteLine(await agent.RunAsync("美国的最新新闻头条有哪些?"));

// 流式调用
awaitforeach (var update in agent.RunStreamingAsync("美国的最新新闻头条有哪些?"))
{
    Console.WriteLine(update);
}
运行效果如下:

定义工具函数

在 Agent Framework 中,所谓“工具”就是可被 AI 智能体调用的外部函数。例如上述以 [Description] 注解的 GetNews 方法,通过标签描述其用途和参数,为后续自动文档和可用性提供便利。

[Description("获取指定国家的最新新闻标题。")]
static string GetNews([Description("国家名称。")] string country)
    => $"来自 {country} 的头条新闻:AI 正在革新软件开发领域。";

2. 创建 Agent 并集成工具

利用 AzureOpenAIClient 快速创建 Agent,并将工具方法通过 AIFunctionFactory.Create 包裹后传递给智能体。instructions 参数为智能体设定行为准则,例如“你是一个乐于助人的助手”,有利于模型更好理解上下文。

AIAgent agent = new AzureOpenAIClient(
    new Uri(endpoint),
    new AzureCliCredential())
    .GetChatClient(deploymentName)
    .CreateAIAgent(instructions: "你是一个乐于助人的助手", tools: [AIFunctionFactory.Create(GetNews)]);

3. 智能体交互方式

Agent Framework 支持两种交互模式:

  • 非流式调用:一次性返回完整答案,适合简单场景。
  • 流式调用:以迭代方式返回智能体生成内容,适合实时反馈或生成较大文本片段的场景。
// 非流式
Console.WriteLine(await agent.RunAsync("美国的最新新闻头条有哪些?"));
// 流式
await foreach (var update in agent.RunStreamingAsync("美国的最新新闻头条有哪些?"))
{
    Console.WriteLine(update);
}

优势与应用场景

  1. 工具函数自动集成:只需简单定义和注册,即可被智能体自动识别和调用,无需冗杂配置。
  2. 自然语言驱动:用户只需用自然语言与智能体对话,工具方法可自动补齐响应,极大简化开发流程。
  3. 灵活扩展:可动态添加多种工具,例如菜单推荐、设备控制等,充分释放智能体能力。
  4. 多交互模式:满足实时流式反馈、分步推理等高级需求,提升用户体验。

总结

Agent Framework 为 AI 智能体集成多种功能工具提供了标准化、易扩展的架构。只需简单步骤,即可实现让 AI 智能体通过自然语言自动调用工具方法,大幅提升企业智能助手、自动化流程的开发效率与智能化水平。未来,随着 Agent Framework 持续迭代,更多行业和业务场景都能够充分受益于智能体与工具的结合与协同。

源代码地址

https://github.com/bingbing-gui/aspnetcore-developer/tree/master/src/09-AI-Agent/Agent-Framework/Agent_Framework_Function_Tools


【声明】内容源于网络
0
0
dotNET跨平台
专注于.NET Core的技术传播。在这里你可以谈微软.NET,Mono的跨平台开发技术。在这里可以让你的.NET项目有新的思路,不局限于微软的技术栈,横跨Windows,
内容 908
粉丝 0
dotNET跨平台 专注于.NET Core的技术传播。在这里你可以谈微软.NET,Mono的跨平台开发技术。在这里可以让你的.NET项目有新的思路,不局限于微软的技术栈,横跨Windows,
总阅读14.8k
粉丝0
内容908