把 AI Agent 真正接进生产系统,难点往往在“接线”而非“模型”:Agent 要调用服务、要被暴露成 API、要接 MCP、要管理服务发现与消息队列。纯用大模型 SDK 写这些,等于每次都重造分布式系统的轮子。
Go Micro 的视角是:把 Agent 当作“能用服务当工具”的参与者,框架提供 RPC、服务发现、消息、存储与配置等基础设施,再用网关把服务通过 HTTP 与 MCP 暴露给其它应用和 Agent。

项目基本信息

信息项详情
项目名称go-micro
GitHub地址https://github.com/micro/go-micro
项目描述面向智能体、工具与分布式系统开发的 Go 框架
作者micro
开源协议Apache License 2.0
开源状态公开
LanguagesGo
支持平台Windows / macOS / Linux
最后更新2026-10-29

一、项目介绍

micro/go-micro 是一个用 Go 编写的分布式系统开发框架,Apache-2.0 协议,如今明确把“智能体(agents)、工具(tools)与服务(services)”作为一等公民。它提供 RPC(含流式)、消息编码、服务发现、配置与存储等能力;Agent 可以把服务当作工具来完成工作,网关则把服务通过 HTTP 与 MCP 暴露出去,方便 Claude Code 等 agent 接入。每个组件都是可替换的 Go 接口,默认实现可替换。

二、核心优势

  1. Agent 一等公民:agent 通过调用服务作为工具来完成工作,天然契合工具调用范式。
  2. 基础设施齐全:RPC、服务发现、消息、存储、配置开箱即用。
  3. MCP 暴露:网关把服务通过 HTTP/MCP 暴露,便于现有 agent 接入。
  4. 可插拔:组件均为 Go 接口,默认实现可替换,扩展灵活。
  5. 跨平台:Go 编译单一产物,Windows / macOS / Linux 一致部署。

三、适用场景

  • 构建需要服务编排与工具调用的 AI Agent 系统。
  • 把既有 Go 微服务通过 MCP 暴露给 Claude Code 等 agent。
  • 开发对可靠性、可替换性有要求的分布式应用。
  • 团队统一一套 Go 基础设施来承载 agent 与业务服务。

四、安装教程

引入框架(v6 为例):

go get go-micro.dev/v6@latest

常见报错:go get 失败多为 GOPROXY/网络问题,配置国内或官方代理;从旧版升级注意 API 有破坏性变更,先读迁移文档。

五、使用示例

构建并运行一个服务(官方快速开始):

// 用 go-micro 定义服务、注册 handler,再 Run() 启动
// 网关可通过 MCP 把该服务暴露给 agent 调用

真实流程:你写一个 Go 服务实现某业务能力,go-micro 负责 RPC 与发现;随后配一个网关,把该服务以 MCP 形式暴露,Claude Code 等 agent 就能直接把它当工具调用——把“业务系统”和“AI agent”用标准接口连起来。

六、常见问题

Q:Go Micro 和 LangChain 类框架一样吗?
A:定位不同:Go Micro 是分布式系统与 agent 基础设施(RPC/发现/MCP 网关),而非纯 LLM 编排库。
Q:一定要用 Go 写 agent 吗?
A:框架是 Go 的,但你的 agent 可通过 MCP/HTTP 网关调用这里暴露的服务,不限语言。
Q:和 Kubernetes 冲突吗?
A:不冲突,Go Micro 解决服务间通信与 agent 接线,K8s 解决部署编排,可叠加使用。

七、总结

Go Micro 把“智能体、工具、服务”统一进一套 Go 分布式框架,并用 MCP 网关把业务系统暴露给 agent。对已经在 Go 栈、又想把 agent 接进生产服务的团队,它提供了一条不重造轮子的基础设施路径;Apache-2.0 协议,组件可插拔。