模型提供程序

模型提供程序提供代理框架代理使用的推理客户端。 应用程序拥有代理定义、说明、工具、中间件和会话策略,而提供程序提供模型推理和提供程序托管的功能。

有关拥有代理定义、权限或服务端执行的远程或托管运行时,请参阅 代理服务。 有关自定义框架代理实现,请参阅 自定义代理。

提供程序比较

Provider 函数工具 结构化输出 代码解释器 文件搜索 MCP 工具 后台响应
Azure OpenAI ✅ ✅ ✅ ✅ ✅ ✅
OpenAI ✅ ✅ ✅ ✅ ✅ ✅
Microsoft Foundry ✅ ✅ ✅ ✅ ✅ ✅
Anthropic ✅ ✅ ✅ ❌ ✅ ❌
Ollama ✅ ✅ ❌ ❌ ❌ ❌
Foundry Local ✅ ❌ ❌ ❌ ❌ ❌
亚马逊基岩版 ✅ 多种多样 ❌ ❌ ❌ ❌
谷歌双子座 ✅ ✅ ✅ ✅ ✅ ❌
ONNX ❌ ❌ ❌ ❌ ❌ ❌
Dapr 多种多样 多种多样 多种多样 多种多样 多种多样 多种多样
Mistral ✅ ✅ ❌ ❌ ❌ ❌
TypeSafe AI (Python) 受到约束 TypeSafe 问题 ❌ ❌ 受到约束 ❌

注释

TypeSafe AI 是类型化决策的 alpha Python 集成,而不是自由格式生成。 它支持封闭式设置的本地和 MCP 工具架构,其结构化结果是 TypeSafe Questions 映射,其 SystemOneResponse输出不是普通的 JSON 架构输出。

重要

如果使用Microsoft代理框架生成使用任何第三方服务器、代理、代码或非Azure直接模型(“第三方系统”)运行的应用程序,则自行承担风险。 第三方系统是Microsoft产品条款下的非Microsoft产品,受其自己的第三方许可条款的约束。 你需对任何使用及相关成本负责。

建议查看与第三方系统共享和接收的所有数据,并识别第三方处理、共享、保留和位置数据的做法。 由你负责管理数据是否会流出组织的Azure合规性和地理边界以及任何相关影响,以及预配适当的权限、边界和审批。

你负责仔细查看和测试使用特定用例上下文中的 Microsoft Agent Framework 生成的应用程序,并做出所有适当的决策和自定义。 这包括实施自己的负责任的 AI 缓解措施,例如元系统、内容筛选器或其他安全系统,并确保应用程序满足适当的质量、可靠性、安全性和可信度标准。 另请参阅: 透明度常见问题解答

可用提供者

提供 Microsoft.Extensions.AI.IChatClient 实现的任何推理服务都可以支持 ChatClientAgent。

  • Azure OpenAI — Azure托管的 OpenAI 推理与Azure标识支持。
  • OpenAI — OpenAI 聊天完成和响应 API。
  • Microsoft Foundry — 通过 Microsoft Foundry 项目进行模型推理。
  • Anthropic — Claude 模型推理通过Anthropic和支持的托管终结点。
  • Ollama — 本地开源模型推理。
  • Amazon Bedrock - AWS 托管的基础模型推理。
  • Google Gemini — Gemini 开发人员 API 或顶点 AI 推理。
  • ONNX - 本地 ONNX 运行时 GenAI 推理。
  • Dapr - 推理通过 Dapr 对话构建基块路由。

对话历史记录支持

所选 API 确定远程服务是否可以拥有聊天历史记录,以及代理是否可以改用内存中或自定义 ChatHistoryProvider。

代理连接 服务管理的历史记录 内存中或自定义历史记录
Microsoft Foundry 提示符或托管代理 ✅ ❌
Microsoft Foundry 响应 ✅ ✅
Azure OpenAI 响应 ✅ ✅
Azure OpenAI 聊天完成 ❌ ✅
OpenAI 响应 ✅ ✅
OpenAI 聊天完成 ❌ ✅
Anthropic ❌ ✅
任何其他 IChatClient 多种多样 多种多样

服务管理的历史记录可用性也可以取决于所选的服务选项。 有关配置详细信息,请参阅提供程序页。

SDK 和终结点选择

多个.NET SDK 可以连接到 Microsoft Foundry、Azure OpenAI、OpenAI 或 Anthropic。 选择与服务终结点和身份验证模型匹配的 SDK。

AI 服务 客户端 SDK NuGet 包 终结点或标识符
Microsoft Foundry 项目 Azure AI 项目 Azure.AI.Projects、Microsoft.Agents.AI.Foundry https://<resource>.services.ai.azure.com/api/projects/<project>
通过 OpenAI v1 Microsoft Foundry 模型 OpenAI OpenAI、Microsoft.Agents.AI.OpenAI https://<resource>.services.ai.azure.com/openai/v1/
Azure OpenAI Azure OpenAI Azure.AI.OpenAI、Microsoft.Agents.AI.OpenAI https://<resource>.openai.azure.com/
通过 OpenAI v1 Azure OpenAI OpenAI OpenAI、Microsoft.Agents.AI.OpenAI https://<resource>.openai.azure.com/openai/v1/
OpenAI OpenAI OpenAI、Microsoft.Agents.AI.OpenAI 默认 OpenAI 终结点
Microsoft Foundry 上的Anthropic Anthropic Foundry Anthropic.Foundry、Microsoft.Agents.AI.Anthropic Foundry 资源名称
Anthropic Anthropic Anthropic、Microsoft.Agents.AI.Anthropic 默认Anthropic终结点

使用 Microsoft Foundry、Azure OpenAI、OpenAI 或 Anthropic 页进行客户端构造和身份验证示例。

可用提供者

代理框架Python公开公共代理接口后面的提供程序特定的聊天客户端。

可用提供者

Go SDK 通过提供程序特定的构造函数创建标准 *agent.Agent 。

Provider Package 导入路径
Microsoft Foundry foundryprovider github.com/microsoft/agent-framework-go/provider/foundryprovider
OpenAI 聊天完成 openaiprovider github.com/microsoft/agent-framework-go/provider/openaiprovider
OpenAI 响应 openaiprovider github.com/microsoft/agent-framework-go/provider/openaiprovider
Anthropic anthropicprovider github.com/microsoft/agent-framework-go/provider/anthropicprovider
谷歌双子座 geminiprovider github.com/microsoft/agent-framework-go/provider/geminiprovider

例如,从项目终结点、凭据和模型部署创建由 Foundry 支持的代理:

a := foundryprovider.NewAgent(endpoint, token, foundryprovider.ModelDeployment(model), foundryprovider.AgentConfig{
    Instructions: "You are a helpful assistant.",
    Config: agent.Config{
        Name: "MyAgent",
    },
})

后续步骤