Microsoft Agent Framework 集成
将 Copilot 作为框架代理提供商,核对当前包接口与权限处理差异。
This page has not been translated into English yet. The original Chinese version is shown below.
Microsoft Agent Framework 可把 Copilot SDK 包装成框架中的代理,与其他提供商组成顺序或并行工作流。只使用 Copilot 会话、工具和子代理的应用也可直接使用 SDK,无需为了这些功能单独引入框架。
先核对语言与文档版本
GitHub 集成专题列出 .NET、Python 专用集成包,其他语言使用普通 SDK;同页的 Java 示例也明确是原生 SDK 调用。Microsoft 当前提供商文档另外列出 Go provider,所以不能把 GitHub 页面的列表视为所有当前框架版本的完整限制。
.NET 包名为 Microsoft.Agents.AI.GitHub.Copilot,Python 为 agent-framework-github-copilot。GitHub 示例安装 .NET 包时带 --prerelease,而 Microsoft 当前命令不带;按所选发布版本的官方安装说明执行,不把某个示例固定为唯一渠道。
从基本代理开始
.NET 先创建并启动 CopilotClient,再用 AsAIAgent 接入 AIAgent 接口,使用 RunAsync 或 RunStreamingAsync。Python 通过 agent_framework.github.GitHubCopilotAgent 包装,在异步上下文管理器内调用。
Microsoft 当前 Python 基本接口示例为:
from agent_framework.github import GitHubCopilotAgent
async def main():
async with GitHubCopilotAgent(instructions="Explain code clearly.") as agent:
result = await agent.run("Explain dependency injection.")
print(result)这是供宿主调用的异步函数。GitHub 页将 instructions 放在 default_options,并使用 run_streaming;Microsoft 当前说明采用顶层 instructions,流式调用为 agent.run(..., stream=True)。不要把两个页面的写法拼成一个已验证兼容所有版本的完整例子。
工具与权限仍由 SDK 参与执行
GitHub 集成专题说明可以合并框架工具与 SDK 自定义工具,保留 MCP、子代理、模型选择和流式能力。包装不意味着绕过底层权限,具体配置应通过所用包装器支持的会话选项传递,不把所有 SessionConfig 字段直接塞进客户端构造器。
Microsoft 的专门权限说明指出,需要批准的函数通过 SDK pre-tool Hook 返回 ask,再交给权限 handler。若应用提供自己的 pre-tool Hook,就会替代框架的默认批准 Hook,应用需自行维持这些批准要求。未配置批准处理时不能假设工具自动可执行。
组合工作流
顺序工作流适合前一代理分析后,下一代理根据结果生成文档;并行工作流适合互不依赖的安全与性能分析。为每个代理写不同职责,明确传递哪些结果,在协调层处理失败。
GitHub 页面的编排类和选项示例随框架版本变化,先核对当前官方框架文档再采用。原生 Copilot 多代理机制见自定义代理和Fleet;它们不等同于跨提供商的框架编排器。