在本快速入门中,逐步介绍如何使用 Agent 365 通过 Agent 365 设置工作 Python 代理框架代理,以便使用 Agents Playground 和 Teams 对代理进行工具、通知、可观测性和测试。
先决条件
如果计划使用 Visual Studio Code,则必须安装 .NET。 (建议使用 .NET 8.0。
已安装 Python 3.11+
已安装 UV 包管理器 。 使用
pip install uv.. 在终端中安装此项。Microsoft Agents Toolkit/Agent Framework 依赖项
演练中使用的示例依赖于通过 Microsoft 365 Agents Toolkit 或 ATK 提供的 Agent Framework 库。 在 VS Code 中使用 Agents Toolkit 扩展来搭建示例基架时,将自动安装这些组件,也可以使用以下命令手动安装包:
uv pip install -e . --find-links ../dist --pre访问 GitHub
现有的 AI 代理项目。 本快速入门使用 VS Code 中名为 ATK 的 Microsoft 365 代理工具包 中的代理 365 示例代理。
从 Microsoft 365 代理工具包设置代理框架 + Python 示例
若要准备好一切,请在 VS Code 中安装 Microsoft 365 Agents Toolkit,打开示例库,并在本地搭建 Agent Framework + Python 示例基架,以便稍后对其进行配置和运行。 以下屏幕截图显示了预期在去时看到的内容。
打开 Visual Studio Code,然后打开“扩展”面板 Ctrl+Shift+X。
在搜索栏中,键入“Agents Toolkit”。
应会看到以下屏幕截图中显示的结果:
Microsoft 365 智能体工具包
选择安装。
VS Code 显示类似于以下内容的扩展详细信息视图:
安装后, M365 Agents Toolkit 图标将显示在左侧导航栏中。
选择 试验将其打开。
现在应会看到“生成声明性代理”、“创建新代理/应用”和“查看示例”等选项,如下所示:
选择“ 查看示例”。
在示例列表中,滚动以查找 代理框架 + Python 代理示例。
将其选中。
你将看到两个选项: 创建 (在本地创建基架)或 GitHub 上的视图。
选择创建。
出现提示时,在应生成示例的计算机上选择一个文件夹。 例如:
C:\A365-python-sample该工具包将 Agent framework + Python 示例搭建到子文件夹(如 sample_agent),然后在 VS Code 中自动打开它。
基架完成后,计算机上现在有一个功能齐全的代理框架 + Python 代理项目
安装必需包
在运行示例之前,请打开项目中,
package.json并确认列出了所有必需的代理 365 和代理框架依赖项。 Microsoft 365 Agents Toolkit 生成的示例已包含这些条目。查看package.json后,通过运行以下命令安装所有内容:
uv pip install -e这会拉取所有代理 365 SDK 库、代理框架依赖项、托管组件以及示例中定义的任何其他依赖项。
安装后,使用以下命令启动开发服务器,验证项目生成并运行:
uv run python start_with_generic_host.py
添加Microsoft 365 工具(MCP 服务器)
可以使用 CLI 中的 a365 开发命令浏览和管理 MCP 服务器。
使用 MCP 服务器时,可以:
- 发现哪些 MCP 服务器可供使用
- 将一个或多个 MCP 服务器添加到代理的配置
- 查看当前配置的 MCP 服务器
- 删除不再需要的 MCP 服务器
添加 MCP 服务器后,代理的工具清单将展开以包含类似于以下内容的条目:
{
"mcpServers": [
{
"mcpServerName": "mcp_MailTools",
"mcpServerUniqueName": "mcp_MailTools",
"scope": "McpServers.Mail.All",
"audience": "api://00001111-aaaa-2222-bbbb-3333cccc4444"
}
]
}
通知订阅和处理
示例代理订阅所有 onAgentNotification("*") 代理 365 SDK 通知,并将它们路由到单个处理程序。 此处理程序允许代理对后台事件或系统事件做出反应,而不仅仅是直接用户消息。
以下代码演示如何在 agent.py 文件中配置通知。
if notification_type == NotificationTypes.EMAIL_NOTIFICATION:
if not hasattr(notification_activity, "email") or not notification_activity.email: return "I could not find the email notification details."
email = notification_activity.email
email_body = getattr(email, "html_body", "") or getattr(email, "body", "")
message = (
"You have received the following email. "
"Please follow any instructions in it. "
f"{email_body}"
)
result = await self.agent.run(message)
return self._extract_result(result) or "Email notification processed."
可观测性
此代码片段显示了在示例中实现可观测性所需的最小更改。 它初始化代理 365 可观测性 SDK,并将每个代理调用包装在一个 InferenceScope 中,以便可以自动捕获输入、输出和元数据。
以下代码显示了文件中简化的可观测性示例 agent.py 。
def _enable_agentframework_instrumentation(self):
"""Enable Agent Framework instrumentation."""
try:
AgentFrameworkInstrumentor().instrument()
logger.info("✅ Instrumentation enabled")
except Exception as e:
logger.warning(f"⚠️ Instrumentation failed: {e}")
此代码是 Python + 代理框架示例所需的完整可观测性设置。 详细了解可观测性
测试您的智能体
设置所需的环境变量,选择身份验证模式,并在本地启动代理。 可以使用 Agents Playground 测试所有端到端作,而无需Microsoft 365 租户,除非你想要发布代理并在 Teams 或 Outlook 等应用中使用它。
测试步骤概述
- 将 API 密钥和模型设置添加到
.env文件中,以便示例可以与 LLM 通信。 - 选择身份验证方法 对于本地开发,此示例使用从代理蓝图创建的值支持 Agentic 身份验证。
- 在本地启动代理,它将公开给代理场等工具。
- 使用 Agents Playground 测试消息、工具和通知,而无需设置租户或部署任何内容。
- 准备好进行实际行为时,请发布Microsoft 365 租户并在 Teams、Outlook 或其他Microsoft 365 图面中测试代理。
发布您的智能体
当代理准备好进行 Teams 聊天、Outlook 消息、Word @mentions等 365 次实际Microsoft体验时,可将其发布到 Microsoft 365 租户。
代理 365 CLI publish 命令处理打包:它会更新清单、捆绑所有内容并将代理上传到 Microsoft 管理中心。
在发布期间,在完成上传之前,查看并自定义代理的名称、说明、图标和版本。 发布后,代理将变为可发现并在租户中安装。
可在此处查看已发布的代理: https://admin.cloud.microsoft/#/agents/all