go-micro
micro/go-micro加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这样的场景:你坐在工位前,只需要对终端说一句话——「帮我创建一个任务管理系统,带分类和优先级」——系统就自动生成了一整套微服务代码、启动了它们,并给了你一个可以对话的 AI Agent 来操控这些服务。这不是科幻小说,这是 Go Micro v6 正在实现的事情。
Go Micro 是一个用 Go 语言编写的 Agent Harness(Agent 运行时框架) 和微服务开发框架。它的核心哲学是:一个 AI Agent 本质上就是一个分布式系统——它需要发现服务、调用工具、维护状态、从故障中恢复。因此,构建 Agent 和构建微服务在 Go Micro 眼中是一回事。

Go Micro 诞生于 2015 年前后,最初是 Micro 公司云原生微服务工具链的核心组件。它的设计理念深受 UNIX 哲学影响:一切皆接口,接口皆可插拔。2019 年前后,Go Micro 独立成为社区项目,获得了大量独立开发者和中小团队的青睐,GitHub stars 迅速突破 2 万,成为 Go 生态中最受欢迎的微服务框架之一。
2024 年,随着 AI Agent 浪潮的到来,Go Micro 的创始人 Asim Aslam 和团队敏锐地意识到:Agent 需要的服务编排、工具发现、状态持久化、协议互通,与微服务框架的需求高度重合。于是团队对框架进行了彻底的架构重构,从 v5 直接跳到 v6,将框架定位从「微服务框架」升级为「AI Agent Harness + 服务框架」。
2025 年,随着 MCP(Model Context Protocol,由 Anthropic 提出)和 A2A(Agent-to-Agent 协议,由 Google 提出)两大标准的发布,Go Micro v6 成为首批同时原生支持这两个协议的框架之一。微软也在 2025 年推出了自己的 Go Agent Framework,有意思的是,Go Micro 社区认为这是对 Go Micro 理念的一种「官方认可」。
在 Go Micro 中,构建一个 AI Agent 只需要几行 Go 代码:
agent := micro.NewAgent("task-mgr",
micro.AgentServices("task"),
micro.AgentPrompt("You manage tasks."),
micro.AgentProvider("anthropic"),
)
agent.Run()
这行代码背后,Go Micro 自动完成了:注册 LLM(支持 Anthropic、OpenAI、Gemini、Ollama、Mistral、Groq、MiniMax、Atlas Cloud 等)、加载 Agent 关联的微服务作为工具集、初始化对话记忆和状态存储、配置护栏(Guardrails)和委托逻辑。Agent 会被自动注册到服务发现系统,任何 MCP 兼容的客户端都可以把它当作工具来调用。
Go Micro 最具差异化的功能之一是 Prompt-to-Service:用户只需描述需求,框架就能设计服务结构、生成代码、编译并启动服务。整个过程由 AI 驱动:
$ micro run --prompt "a task management system with categories"
Services:
● task — Task management with status tracking
● project — Project organization
Generate? [Y/n]
这背后的实现非常精妙:Go Micro 内置了一个「规划 Agent」和一个「生成 Agent」,两者通过 durable flow(持久化工作流)协调运行,确保生成过程可中断、可恢复、可回滚。
在 Go Micro 中,你编写的每一个 RPC handler 都会自动出现在 MCP 工具列表中。这是一个革命性的设计:你不需要为 AI 专门编写 MCP Server,你只需要写微服务,Go Micro 会自动把它们暴露给 AI。
同时,Go Micro 还支持 x402 支付协议,这意味着你的微服务端点可以要求付费调用——一个 Agent 可以自主地用稳定币支付并调用一个付费工具,整个过程无需人工干预。
Google 提出的 A2A(Agent-to-Agent)协议解决了不同框架的 Agent 之间的互操作问题。Go Micro 的 A2A 网关能够:
这意味着一个用 LangChain Python 构建的 Agent,可以通过 A2A 协议调用一个 Go Micro Agent,反之亦然。Go Micro 既是 MCP Server,又是 A2A Gateway。
Go Micro 引入了 Flow 概念来处理 Agent 工作流中的确定性部分:
这种「确定性 + 动态」的混合模式,解决了纯 Prompt 工程中 Agent 行为不可预测的问题。
Go Micro 团队在 CONTRIBUTING.md 中透露了一个令人印象深刻的事实:Go Micro 的开发过程本身就是一个自主改进循环——一个规划 Agent 生成代码,一个评估 Agent 运行测试,CI 检查通过后合并 PR。全程不需要人工介入新功能开发。人类只负责设定方向和审核 PR。
Go Micro 的架构完全基于 Go 接口构建,每个抽象层都有标准接口和多种实现:
| 组件 | 接口 | 典型实现 |
|---|---|---|
| 服务发现 | Registry | mDNS、Consul、Etcd、Kubernetes |
| 消息传递 | Broker | NATS、RabbitMQ、Redis Pub/Sub |
| 编解码 | Codec | JSON、ProtoBuf、MsgPack |
| 负载均衡 | Selector | 随机、轮询、最少连接 |
| 传输层 | Transport | HTTP、gRPC、WebSocket |
| 认证 | Auth | JWT、BASIC |
| 配置 | Config | File、Env、Consul |
这种设计使得:切换底层实现只需要改一行配置,不需要改任何业务代码。
代码库结构清晰:
agent/ — Agent 核心抽象(Agent 接口、Memory、Tools、Guardrails、Checkpoint)client/ — 服务客户端 SDKserver/ — 服务端运行时broker/ — 消息代理抽象 + 实现registry/ — 服务发现抽象 + 实现auth/ — 认证授权config/ — 配置管理store/ — 状态存储(支持 SQLite、Postgres、MySQL、Redis、Etcd、BoltDB)gateway/a2a/ — A2A 网关实现gateway/mcp/ — MCP 网关实现flow/ — 持久化工作流model/ — 多模型支持(Anthropic、OpenAI、Gemini 等)Go Micro 使用 Go 1.25 编写,支持 Go toolchain,确保使用最新 Go 特性。依赖管理通过 go.mod,使用 goreleaser 进行多平台发布(Linux/amd64、Linux/arm64、Darwin/amd64、Darwin/arm64 等)。
go install go-micro.dev/v6/cmd/micro@latest
或者从 GitHub Release 下载预编译二进制,或用 Docker 运行:
docker run -it --rm --network=host go-micro/micro
package main
import (
"context"
"log"
"go-micro.dev/v6"
)
type Say struct{}
func (s *Say) Hello(ctx context.Context, req *Request, rsp *Response) error {
rsp.Message = "Hello " + req.Name
return nil
}
func main() {
service := micro.NewService("greeter")
service.Handle(new(Say))
if err := service.Run(); err != nil {
log.Fatal(err)
}
}
运行后,服务自动暴露为:
Go Micro 提供了多种部署路径:
--platform linux/amd64,linux/arm64),适合快速容器化部署无 docker-compose 是一个小遗憾,但 Kubernetes 部署脚本已经非常成熟,弥补了这一点。
Go Micro 要求开发者使用 Go 语言。对于已经深度投入 Python 生态的 AI 团队来说,学习曲线不可忽视。微软推出 Go Agent Framework 正是为了解决这个问题——但 Go Micro 早在 2015 年就开始了这一探索。
从 v5 到 v6 的跨越是破坏性的,大量 v5 的插件和中间件不兼容 v6。社区中存在一些对迁移成本的抱怨。但团队认为这种破坏性升级是必要的,因为 v6 的架构理念与 v5 有本质区别。
虽然 Prompt-to-Service 听起来很简单,但要真正用好 Agent Harness(配置工具集、设计 Guardrails、编写 Flow),需要开发者对 Agent 系统有较深理解。文档目前仍处于快速迭代中。
与所有 AI Agent 框架一样,Guardrails 配置不当可能导致 Agent 执行意外操作。Go Micro 提供了基础护栏机制,但企业级安全审计能力仍在建设中。
Go Micro 的战略价值在于它站在了两个重要趋势的交汇点:云原生微服务(Go 语言的天然战场)和 AI Agent(下一个平台级机会)。它证明了一个观点:Agent 和微服务不是两个东西,而是同一个东西的两面。
2025 年 MCP + A2A 两大协议的确立,标志着 AI Agent 互联互通时代的到来。Go Micro 作为首批同时支持这两个协议的生产级框架,在 Agent 互操作生态中占据了独特位置。GitHub 23,061 颗 stars 和持续活跃的社区开发(最近更新:2026 年 9 月),证明了它的生命力。
对于已经在用 Go 构建云原生服务的团队,Go Micro 是将 AI 能力集成到现有系统的最低阻力路径。对于 AI Native 的团队,它的 MCP + A2A 双协议支持让跨框架 Agent 协作成为可能。无论哪种情况,Go Micro 都值得放入你的技术雷达。