Microsoft Agent Framework 集成
将 Copilot 作为框架代理提供商,核对当前包接口与权限处理差异。
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;它们不等同于跨提供商的框架编排器。