模型提供程序提供代理框架代理使用的推理客户端。 应用程序拥有代理定义、说明、工具、中间件和会话策略,而提供程序提供模型推理和提供程序托管的功能。
有关拥有代理定义、权限或服务端执行的远程或托管运行时,请参阅 代理服务。 有关自定义框架代理实现,请参阅 自定义代理。
提供程序比较
| Provider | 函数工具 | 结构化输出 | 代码解释器 | 文件搜索 | MCP 工具 | 后台响应 |
|---|---|---|---|---|---|---|
| Azure OpenAI | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| OpenAI | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Microsoft Foundry | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Anthropic | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ |
| Ollama | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Foundry Local | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 亚马逊基岩版 | ✅ | 多种多样 | ❌ | ❌ | ❌ | ❌ |
| 谷歌双子座 | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| ONNX | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Dapr | 多种多样 | 多种多样 | 多种多样 | 多种多样 | 多种多样 | 多种多样 |
| Mistral | 不适用 | 不适用 | 不适用 | 不适用 | 不适用 | 不适用 |
Important
如果使用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公开公共代理接口后面的提供程序特定的聊天客户端。
- Azure OpenAI — Azure托管的 OpenAI 推理与Azure标识支持。
- OpenAI — OpenAI 聊天完成和响应 API。
- Microsoft Foundry — 通过 Microsoft Foundry 项目进行模型推理。
- Foundry Local - 在本地运行支持的 Foundry 模型。
- Anthropic — Claude 推理通过 Anthropic、Foundry、Amazon Bedrock 或顶点 AI 进行推理。
- Ollama — 本地开源模型推理。
- Amazon Bedrock - AWS 托管的基础模型推理。
- Google Gemini — Gemini 开发人员 API 或顶点 AI 推理。
- Mistral - Mistral AI 嵌入代系。
可用提供者
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",
},
})