返回市场
代理FX-MCP-微软学习

代理FX-MCP-微软学习

作者:ppiova2 星标更新:2025-11-05

项目介绍

使用Microsoft Learn MCP的Agent Framework

两个.NET控制台应用程序演示了如何将Microsoft Agent Framework与**模型上下文协议(MCP)**集成,以访问Microsoft Learn文档。

� 项目

1. AgentFrameworkWithLearnMcp

简单的示例,仅执行单个问题。非常适合学习基础知识。

2. AgentFrameworkCopilot ⭐

具有对话历史记录、命令和增强UI的交互式ChatGPT风格体验。使用AgentThread在多个交互中维护对话上下文和状态。推荐用于交互式使用。

✨ 主要功能

  • 🔌 连接到Microsoft Learn MCP服务器
  • 🔍 动态工具发现(搜索、获取、代码示例)
  • 🤖 由Azure OpenAI驱动的AI代理
  • 🧵 AgentThread 用于维护对话上下文和状态
  • 🧠 记忆存储用于持久用户上下文和个人化
  • 💬 带有对话历史记录的交互式聊天循环
  • 📊 实时指标和彩色UI
  • 💾 将对话保存到文件

📋 先决条件

  • .NET 9.0 SDK
  • 配置了部署的Azure OpenAI服务
  • Azure CLI (az login)

⚙️ 快速设置

  1. 使用Azure进行身份验证:
az login
  1. 配置您的Azure OpenAI设置:

编辑每个项目Properties文件夹中的launchSettings.json

{
  "profiles": {
    "AgentFrameworkCopilot": {
      "commandName": "Project",
      "environmentVariables": {
        "AZURE_OPENAI_ENDPOINT": "https://your-resource.openai.azure.com/",
        "AZURE_OPENAI_DEPLOYMENT_NAME": "gpt-5-mini"
      }
    }
  }
}
  1. 运行项目:
# 简单示例
### 选项2:PowerShell中的环境变量

```powershell
$env:AZURE_OPENAI_ENDPOINT = "https://your-resource.openai.azure.com/"
$env:AZURE_OPENAI_DEPLOYMENT_NAME = "gpt-5-mini"

选项3:永久环境变量

[System.Environment]::SetEnvironmentVariable('AZURE_OPENAI_ENDPOINT', 'https://your-resource.openai.azure.com/', 'User')
[System.Environment]::SetEnvironmentVariable('AZURE_OPENAI_DEPLOYMENT_NAME', 'gpt-5-mini', 'User')

🏃 运行

cd AgentFrameworkWithLearnMcp
dotnet run

# 交互式聊天(推荐)
cd AgentFrameworkCopilot
dotnet run

💬 交互式命令

运行AgentFrameworkCopilot后:

命令描述
/help显示可用命令
/clear开始新的对话
/history查看对话历史
/memory显示所有存储的记忆
/profile显示用户个人资料信息
/save将对话保存到文件
/exit退出应用

📦 依赖项

  • Azure.AI.OpenAI (2.5.0-beta.1)
  • Azure.Identity (1.17.0)
  • Microsoft.Agents.AI.OpenAI (1.0.0-preview.251028.1)
  • ModelContextProtocol (0.4.0-preview.3)

🔄 工作原理

  1. 连接到Microsoft Learn MCP服务器(https://learn.microsoft.com/api/mcp)
  2. 发现可用工具(文档搜索、代码示例等)
  3. 创建一个使用Azure OpenAI(gpt-5-mini)的AI代理
  4. 初始化一个AgentThread来维护对话状态
  5. 代理自动使用MCP工具获取官方文档
  6. AgentThread跟踪整个对话中的所有消息和上下文
  7. 返回带有官方Microsoft Learn引用的答案

🧵 关于AgentThreads

AgentThread是Microsoft Agent Framework的关键组件,它:

  • 在多个用户交互中维护对话上下文
  • 自动跟踪所有消息(用户查询和代理响应)
  • 在代理运行之间保留状态
  • 支持具有记忆的多轮对话
  • 可以通过/clear命令重置,开始新的对话

🧠 关于记忆存储

记忆存储提供持久上下文和个人化能力:

  • 用户个人资料:存储个人信息(姓名、头衔、兴趣、位置)
  • 情境感知:代理记住用户的偏好和细节,跨越对话
  • 自定义记忆:可扩展的键值存储,用于任何特定用户的数据
  • 与系统提示集成:记忆上下文会自动注入到代理指令中
  • 命令
    • /memory - 查看所有存储的记忆
    • /profile - 显示格式化的用户个人资料

默认用户个人资料

应用程序加载默认个人资料用于演示:

姓名: Pablo Piovano
昵称: Pablito Piova
头衔: Microsoft MVP
兴趣: 咖啡、烹饪阿根廷烧烤、旅行
位置: 圣克鲁斯省,圣菲
国家: 阿根廷

您可以通过编辑Program.cs中的LoadDefaultUserProfile()方法来自定义个人资料。

🔐 认证

使用AzureCliCredential进行Azure认证。确保您已:

  • 安装Azure CLI
  • 通过az login进行身份验证
  • 对Azure OpenAI资源具有适当的权限

祝编程愉快! 🎉