Go Micro — Go 智能体运行时与服务框架
将智能体运行时以 Go 代码形式提供:模型、记忆、工具、规划、委托、护栏,并通过 MCP 与 A2A 互操作。
证据显示有MaxSteps、LoopLimit、ApproveTool等护栏,但未明确默认权限最小化;有用户确认机制(ApproveTool)但未说明默认启用;数据流透明度有MCP/A2A网关和工具包装,但未详细说明日志记录;敏感数据处理有TLS和密钥管理建议,但未明确框架内处理;依赖安全有govulncheck工作流和ALLOWLIST,但存在已知漏洞未修复;外部影响有x402支付和部署功能,但未明确副作用控制;回滚有durable flows和checkpoint,但未明确回滚机制;来源归属有Apache-2.0许可证,但发布者未验证。
自一致性:README和代码示例一致,但未验证实际运行;依赖可用性:go.mod列出依赖,但未验证可用性;失败消息:有错误处理示例和CLI诊断命令,但未全面覆盖。
受众和场景:面向开发者,有快速入门和示例;能力边界:有guardrails和工具包装,但未明确限制;触发精度:有CLI命令和事件驱动流程,但未明确触发条件;环境适配:支持多种部署方式,但未明确所有环境。
信息架构:有README、docs、examples等,结构清晰;安装说明:有安装脚本和Docker选项;命名稳定性:有版本化模块路径;示例和FAQ:有大量示例和文档;已知限制:SECURITY.md提到TLS默认禁用,但未全面列出;许可证:Apache-2.0;版本和变更日志:有版本支持,但未提供CHANGELOG;维护责任:有商业支持和社区渠道。
输出可用性:有CLI和API,输出格式明确;边际价值:提供agent harness和框架,有独特功能;成本效益:开源免费,但商业支持收费。
声明可追溯:README中的功能有代码示例和文档链接;跨源佐证:有测试文件和CI工作流;事实与推断分离:文档区分了功能描述和设计意图。
- 发布者身份未验证,需谨慎评估供应链风险。
- 存在已知未修复的漏洞(如pgx相关),依赖安全需持续关注。
- TLS证书验证默认禁用,生产环境需显式启用。
- 未提供CHANGELOG,版本变更历史不透明。
这个 Agent 能做什么,适合哪些场景?
Go Micro 是一个用 Go 语言实现的智能体运行时(harness)与服务框架。它把智能体运行所需的能力——可调用的工具、持久记忆、护栏、规划、委托、依赖的服务,以及他人可达的协议——都封装为 Go 代码。智能体本身是服务,端点可自动成为 AI 可调用的工具,支持 MCP 协议,支持 A2A 协议供其他智能体发现。框架提供微服务抽象:注册、RPC、事件、存储等,均为 Go 接口,可替换。内置 9 种 LLM 提供商适配,支持 x402 付费工具调用。提供 CLI 工具 `micro`,用于脚手架、运行、调试、生成服务。
运行 micro run 时,会启动服务、自动生成网关、提供交互式控制台,并管理热重载。micro run --prompt "..." 可通过 LLM 生成新服务与智能体。智能体使用内置的 plan 和 delegate 工具进行多步规划和委托子任务。服务通过 RPC 注册并发现,端点自动暴露为 MCP 工具。micro a2a serve 启动 A2A 网关,让所有智能体可被外部智能体通过 A2A 协议调用。micro mcp serve 支持 x402 支付。流程(flows)支持持久执行,崩溃后可恢复。
- Go 开发者希望在现有微服务架构中构建 AI 智能体,并复用服务能力。
- 团队需要让 AI 智能体能够调用公司已有的后端服务,且希望不修改服务代码。
- 需要将智能体开放给其他框架,通过 A2A 协议实现跨框架智能体协作。
- 希望为智能体工具调用设置付费门槛,采用 x402 标准(如 Base 或 Solana 链)。
- 需要持久化记忆与流程执行,智能体可在重启后继续对话。
- 开发者希望用 LLM 根据提示自动生成后端服务与智能体代码。
这个 Agent 有哪些优点和局限?
- 智能体即服务:端点自动变为 AI 工具,无需额外适配。
- 内置 MCP 和 A2A 协议支持,跨框架互操作。
- 持久记忆与流程执行,崩溃后可恢复。
- 支持 9 种 LLM 提供商,可插拔。
- 提供 CLI 工具,支持热重载、模板、一键部署。
- 框架较新,生态相对较小。
- 部分高级功能(x402)需要配置第三方服务。
- 需要学习其抽象概念,如 agent harness、flow 等。
- 文档中未明确提供独立支付服务,需自行配置。
如何安装或部署这个 Agent?
安装 CLI:curl -fsSL https://go-micro.dev/install.sh | sh,或 go install go-micro.dev/v6/cmd/micro@latest。二进制安装无需 Go。
如何使用这个 Agent?
快速开始:micro new helloworld 创建服务,cd helloworld && micro run 运行,然后 curl -X POST http://localhost:8080/api/helloworld/Helloworld.Call -H 'Content-Type: application/json' -d '{"name":"World"}'。使用 micro run --prompt "a task management system" 需要设置 API 密钥,例如 export ANTHROPIC_API_KEY=...。智能体代码示例:micro.NewAgent("task-mgr", micro.AgentServices("task"), micro.AgentPrompt("..."), micro.AgentProvider("anthropic")),然后 agent.Ask(ctx, "...")。
这个 Agent 与同类方案有什么区别?
未明确提及竞品,但可与其他 Go 微服务框架(如 go-kit)或 Agent 框架(如 LangChain)比较。