使用Microsoft Learn MCP的代理框架
两个。NET控制台应用程序演示了 Microsoft代理框架 随着 模型上下文协议(MCP) 访问Microsoft学习文档。
� 项目
1.LearnMcp代理框架
简单演示,只需执行一个问题。非常适合学习基础知识。
2.代理框架副驾驶⭐
具有对话历史、命令和增强UI的交互式ChatGPT风格体验。用途 代理线程 以在多个交互中维护对话上下文和状态。 建议交互式使用。
✨ 主要特点
- 🔌 连接到Microsoft Learn MCP服务器
- 🔍 动态工具发现(搜索、获取、代码示例)
- 🤖 由Azure OpenAI支持的AI代理
- 🧵 代理线程 用于维护对话上下文和状态
- 🧠 记忆存储 用于持久用户上下文和个性化
- 💬 带有对话历史记录的交互式聊天循环
- 📊 实时指标和彩色UI
- 💾 将对话保存到文件
📋 先决条件
- .NET 9.0 SDK
- 带有部署的Azure OpenAI服务
- Azure命令行界面(
az login)
⚙️ 快速设置
- 使用Azure进行身份验证:
az login- 配置您的Azure OpenAI设置:
编辑 launchSettings.json 在每个项目的 Properties 文件夹:
{
"profiles": {
"AgentFrameworkCopilot": {
"commandName": "Project",
"environmentVariables": {
"AZURE_OPENAI_ENDPOINT": "https://your-resource.openai.azure.com/",
"AZURE_OPENAI_DEPLOYMENT_NAME": "gpt-5-mini"
}
}
}
}- 运行项目:
# Simple demo
### Option 2: Environment variables in 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
Interactive chat (recommended)
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-预览.251028.1)
- `ModelContextProtocol` (0.4.0-复习。3)
## 🔄 运作原理
1. 连接到Microsoft Learn MCP服务器(https://learn.microsoft.com/api/mcp)
1. 发现可用工具(文档搜索、代码示例等)
1. 使用Azure OpenAI创建AI代理(`gpt-5-mini`)
1. 初始化 **代理线程** 保持对话状态
1. 代理自动使用MCP工具获取官方文档
1. AgentThread跟踪整个对话中的所有消息和上下文
1. 返回带有官方Microsoft Learn参考的答案
### 🧵 关于代理线程
**代理线程** 是Microsoft代理框架的关键组件,它:
- 在多个用户交互中维护对话上下文
- 自动跟踪所有消息(用户查询和代理响应)
- 在代理运行之间保留状态
- 使用内存实现多回合对话
- 可以用重置 `/clear` 命令开始新的对话
### 🧠 关于内存存储
这 **记忆存储** 提供持久的上下文和个性化功能:
- **用户档案**:存储个人信息(姓名、职务、兴趣、位置)
- **情境意识**:代理在对话中记住用户偏好和详细信息
- **自定义记忆**:任何用户特定数据的可扩展键值存储
- **与系统提示集成**:内存上下文会自动注入代理指令中
- **命令**:
- `/memory` -查看所有存储的记忆
- `/profile` -显示格式化的用户配置文件
#### 默认用户配置文件
应用程序加载默认配置文件进行演示:
Name: Pablo Piovano Nickname: Pablito Piova Title: Microsoft MVP Interests: Café, Cocinar Asados Argentinos, Viajar Location: Sunchales, Santa Fe Country: Argentina
您可以通过编辑来自定义配置文件 `LoadDefaultUserProfile()` 方法in `Program.cs`.
## 🔐 认证
用途 `AzureCliCredential` 用于Azure身份验证。确保您拥有:
- 已安装Azure CLI
- 通过身份验证 `az login`
- Azure OpenAI资源的适当权限
______________________________________________________________________
**编码愉快!** 🎉