microsoft/agent-framework-go

GitHub: microsoft/agent-framework-go

微软推出的面向 Go 语言的生产级 AI Agent 框架,用于构建、编排和部署多智能体工作流系统。

Stars: 119 | Forks: 9

![Microsoft Agent Framework](https://static.pigsec.cn/wp-content/uploads/repos/cas/f6/f624224e4b00a88374952fb445b5e154697782ff5cbcba74ea9219219a19bf40.png) # 欢迎使用面向 Go 的 Microsoft Agent Framework! [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/b5zjErwbQM?style=flat)](https://discord.gg/b5zjErwbQM) [![MS Learn 文档](https://img.shields.io/badge/MS%20Learn-Documentation-blue)](https://learn.microsoft.com/en-us/agent-framework/) [![Go 参考](https://pkg.go.dev/badge/github.com/microsoft/agent-framework-go.svg)](https://pkg.go.dev/github.com/microsoft/agent-framework-go) [![GitHub stars](https://img.shields.io/github/stars/microsoft/agent-framework-go?style=social)](https://github.com/microsoft/agent-framework-go/stargazers) Microsoft Agent Framework (MAF) 是一个开放的、多语言的框架,用于构建**生产级 AI agent 和多 agent 工作流**。本仓库包含 Microsoft Agent Framework 的 Go 实现,以及帮助您入门的 Go 示例和文档。 Microsoft Agent Framework 专为希望将 agent 从原型推向生产的团队而构建。它为构建、编排和操作 agent 系统提供了一致的基础,同时随着需求的发展保持架构选择的开放性,并支持广泛的生态系统,包括 Microsoft Foundry、Azure OpenAI、OpenAI、Model Context Protocol (MCP)、Agent2Agent (A2A)、AG-UI 和 GitHub Copilot SDK。 .NET 和 Python 的实现可在[上游 Microsoft Agent Framework 仓库](https://github.com/microsoft/agent-framework)中找到。

Watch the full Agent Framework introduction (30 min)

Watch the full Agent Framework introduction (30 min)

## 这个框架适合您吗? 如果您符合以下情况,MAF 是一个很好的选择: - 正在构建期望在生产环境中运行的 agent 和工作流, - 需要超越单一 prompt 或无状态聊天循环的编排, - 想要基于图的模式,例如顺序、并发、群组协作和自定义工作流路由, - 关心 checkpointing、可重启性、可观测性、治理或 human-in-the-loop 控制, - 需要 provider 的灵活性,以便您的架构无需重大重写即可演进。 ## 核心功能 在[官方博客](https://devblogs.microsoft.com/agent-framework/)上探索 MAF 的新功能和实际实现模式。 有关 .NET 到 Go 功能的详细比较,请参阅 [.NET 和 Go SDK 功能比较](./docs/dotnet-go-sdk-feature-comparison.md)。简而言之,Go SDK 涵盖了核心 agent、工具、middleware、工作流、可观测性和互操作性集成,而 .NET 目前拥有更广泛的产品集成以及一些尚未在 Go 中实现的功能。 - **Go 支持**:用于在 Go 中构建 agent 和工作流的 Go 包、示例与 API。 - [Go 参考](https://pkg.go.dev/github.com/microsoft/agent-framework-go) | [Go 示例](./examples/) - **多 Agent Provider 支持**:支持各种 LLM 和 agent provider,并持续增加更多支持。 - [Provider 示例](./examples/02-agents/providers/) | [Provider 包](./provider/) - **Middleware**:用于请求/响应处理、日志记录、OpenTelemetry、context provider、工具审批和自动工具调用的灵活 middleware。 - [Agent middleware](./agent/middleware.go) | [Agent harness](./agent/harness/) - **编排模式与工作流**:使用基于图的工作流构建多 agent 系统,支持顺序、并发、群组协作、条件路由、subworkflow、checkpointing、流式传输、human-in-the-loop 和 time-travel 等模式。Handoff 编排尚未在 Go SDK 中实现。 - [工作流示例](./examples/03-workflows/) | [工作流包](./workflow/) - **Microsoft Foundry Agent**:构建由项目支持的 Foundry agent,调用现有的服务端 Foundry agent,传递 Foundry client 标头,捕获 served-model 元数据,并使用 Foundry memory。Foundry 托管部署尚未在 Go SDK 中实现。 - [Foundry 示例](./examples/02-agents/providers/foundry/) | [Foundry provider](./provider/foundryprovider/) - **可观测性**:集成 OpenTelemetry 以进行分布式追踪、监控和调试。 - [Agent OpenTelemetry](./provider/otelprovider/) | [工作流 OpenTelemetry](./workflow/observability/opentelemetry/) - **声明式 Agent**:尚未在 Go SDK 中实现。 - **Agent 技能**:从文件、内联定义和脚本构建特定领域的知识库,供 agent 发现和使用。 - [技能示例](./examples/02-agents/skills/) | [技能包](./agent/skills/) - **AF Labs**:尚未在 Go SDK 中实现。 - **DevUI**:尚未在 Go SDK 中实现。 ## 目录 - [欢迎使用面向 Go 的 Microsoft Agent Framework!](#welcome-to-microsoft-agent-framework-for-go) - [这个框架适合您吗?](#is-this-the-right-framework-for-you) - [核心功能](#key-features) - [目录](#table-of-contents) - [入门指南](#getting-started) - [安装说明](#installation) - [学习资源](#learning-resources) - [快速入门](#quickstart) - [基础 Agent - Go](#basic-agent---go) - [更多示例与范例](#more-examples--samples) - [Go](#go) - [社区与反馈](#community--feedback) - [故障排除](#troubleshooting) - [身份验证](#authentication) - [环境变量](#environment-variables) - [贡献者资源](#contributor-resources) - [重要说明](#important-notes) - [遥测和数据收集](#telemetry-and-data-collection) - [预览版状态](#preview-status) - [商标](#trademarks) ## 入门指南 ### 安装说明 Go ``` go get github.com/microsoft/agent-framework-go ``` ### 学习资源 - **[概述](https://learn.microsoft.com/agent-framework/overview/agent-framework-overview)** - 框架的高层级概述 - **[快速开始](https://learn.microsoft.com/agent-framework/tutorials/quick-start)** - 从一个简单的 agent 开始 - **[教程](https://learn.microsoft.com/agent-framework/tutorials/overview)** - 逐步教程 - **[用户指南](https://learn.microsoft.com/en-us/agent-framework/user-guide/overview)** - 用于构建 agent 和工作流的深度用户指南 ### 快速入门 #### 基础 Agent - Go 创建一个简单的 Microsoft Foundry agent,让它写一首关于 Microsoft Agent Framework 的俳句。 ``` package main import ( "cmp" "context" "fmt" "os" "github.com/Azure/azure-sdk-for-go/sdk/azidentity" "github.com/microsoft/agent-framework-go/provider/foundryprovider" ) func main() { endpoint := os.Getenv("FOUNDRY_PROJECT_ENDPOINT") model := cmp.Or(os.Getenv("FOUNDRY_MODEL"), "gpt-4o-mini") // Authenticate to Microsoft Foundry. token, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { panic(err) } // Create a Microsoft Foundry agent. a := foundryprovider.NewAgent(endpoint, token, foundryprovider.ModelDeployment(model), foundryprovider.AgentConfig{ Instructions: "You are a helpful assistant.", }, ) // Run the agent. ctx := context.Background() fmt.Println(a.RunText(ctx, "Write a haiku about the Microsoft Agent Framework").Collect()) } ``` ## 更多示例与范例 ### 开始 - [入门指南](./examples/01-get-started):从 hello world 到工作流的渐进式教程 - [Agent 概念](./examples/02-agents):按主题划分的深度示例,包括工具、middleware、provider、可观测性、A2A、AG-UI、MCP 和技能 - [工作流](./examples/03-workflows):多 agent 模式、路由、checkpointing、可观测性和工作流编排 - [端到端](./examples/05-end-to-end):完整的应用程序和演示 - [功能比较](./docs/dotnet-go-sdk-feature-comparison.md):.NET 和 Go SDK 的功能对等性说明 ## 故障排除 ### 身份验证 | 问题 | 原因 | 解决方案 | | --- | --- | --- | | 使用 Azure 凭据时出现身份验证错误 | 未登录 Azure CLI 或其他已配置的凭据源 | 在启动应用之前运行 `az login`,或配置您的应用使用的特定凭据 | | API 密钥错误 | API 密钥错误或缺失 | 验证密钥并确保其属于正确的资源或 provider | | Provider endpoint 错误 | endpoint、deployment、model 或 API 版本缺失或不正确 | 检查示例或 provider 使用的环境变量和构造函数选项 | ### 环境变量 有关每个示例特定的环境变量配置,请参阅 [examples](./examples/) 下示例目录中的 README 或源码。 ## 重要说明 ### 遥测和数据收集 本仓库默认不配置 Microsoft 遥测收集。一些包和示例包含可选的 OpenTelemetry 插桩或连接到 Microsoft 托管的服务。要关闭框架插桩,请不要在您的应用程序中配置 OpenTelemetry exporter 或遥测 middleware。服务遥测(如果有)受您选择调用的服务所管辖。 ### 预览版状态 面向 Go 的 Agent Framework 处于公开预览阶段。声明式 Agent、RAG、CodeAct 和功能性工作流尚不可用。请在 GitHub 上通过 https://github.com/microsoft/agent-framework-go/issues 提交 issue。 ### 商标 本项目可能包含项目、产品或服务的商标或徽标。授权使用 Microsoft 商标或徽标受 [Microsoft 商标与品牌指南](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general) 约束并必须遵循该指南。在修改版本的本项目中使用 Microsoft 商标或徽标不得引起混淆或暗示 Microsoft 的赞助。任何第三方商标或徽标的使用均受这些第三方政策的约束。
标签:AI代理, EVTX分析, Go语言, 人工智能, 多智能体, 工作流编排, 开发框架, 日志审计, 用户代理, 用户模式Hook绕过, 程序破解