tRPC-Agent-Go 深度解读
“Agent 就是微服务,微服务的治理能力 Agent 天然就需要”
一句话定位
tRPC-Agent-Go 是腾讯基于 tRPC 微服务框架构建的 Go 语言 Agent 框架,用 4 个接口方法定义 Agent,零成本继承服务注册发现、负载均衡、熔断限流、链路追踪等生产级治理能力,是 Go 语言 Agent 赛道几乎唯一的竞品。
设计哲学上最精彩的地方
tRPC-Agent-Go 的核心信念是:Agent 本质上就是一个微服务。既然如此,为什么要额外造一套”Agent 通信协议”“Agent 服务发现”“Agent 负载均衡”?直接复用已有的微服务基础设施就好。
日常类比:公司组织架构。每个部门(Agent)是独立运作的团队,通过公司 OA 系统(tRPC 框架)互相发工单协作。部门间不需要私下建微信群沟通——OA 系统已经有审批流、权限管理、消息追踪。tRPC-Agent 说的就是”别造新 OA 了,现有的够用”。
最精彩的是 4-Method Interface 的极简设计。Run(执行)、Tools(工具)、Info(自描述)、SubAgents(子 Agent)——四个方法覆盖了 Agent 的全部能力。对比 LangChain 的 Runnable 需要 5 个方法加一堆 Mixin,tRPC-Agent 的接口更干净。少即是多,接口越小实现越自由。
双引擎架构:Team + StateGraph
tRPC-Agent-Go 提供了两套编排引擎,开发者可以按需选择:
Team(高层抽象)支持 Coordinator 和 Swarm 两种模式。Coordinator 模式有中心调度者分配任务,适合需要全局视野的场景;Swarm 模式去中心化,Agent 间直接握手转交,灵活低延迟。
StateGraph(底层控制)是一个 6192 行的有向图引擎,功能等价于 LangGraph。支持节点、条件边、循环边,可以构建任意复杂的工作流拓扑。
两套引擎可以混用——把 Team 作为 StateGraph 的一个节点嵌入,或者在 Team 内部用 StateGraph 实现某个复杂 Agent 的内部逻辑。这种灵活性在其他框架中看不到。
四协议全覆盖:互操作性最强
tRPC-Agent-Go 完整实现了四大 Agent 协议:A2A(Agent 间通信)、AG-UI(Agent 与前端交互)、MCP(工具标准接入)、OpenAI API(兼容 OpenAI 生态)。四协议全覆盖意味着它构建的 Agent 可以被任何人调用、接入任何前端、使用任何工具。
其他框架在协议支持上多少有缺口——LangChain 没有 AG-UI,CrewAI 没有 A2A,Agno 也没有 A2A。tRPC-Agent-Go 在互操作性维度是无可争议的第一。
局限性:新框架的成长烦恼
Star 数不到 1K,社区生态远未成熟。文档和教程相比 LangChain 差距明显,新用户的上手路径不够清晰。
Go 语言在 AI/ML 领域的生态天然弱于 Python——模型推理、数据处理、科学计算的第三方库远不如 Python 丰富。tRPC-Agent-Go 更适合”Agent 逻辑编排 + 微服务部署”场景,而非”模型训练 + 数据分析”场景。
StateGraph 6192 行集中在少数文件中,维护门槛高,且当前缺少 Checkpoint 持久化的多后端支持,这是一个明确的贡献机会。
本地代码结构
trpc-agent-go/
├── agent/
│ ├── agent.go # 4-Method Agent Interface
│ ├── runner.go # Runner 执行引擎(3971 行)
│ └── invocation.go # Invocation 上下文(2339 行)
├── team/
│ ├── coordinator.go # Coordinator 模式
│ └── swarm.go # Swarm 模式
├── stategraph/
│ └── stategraph.go # StateGraph 图引擎(6192 行)
├── memory/
│ ├── fact.go # Fact Memory(提炼知识)
│ └── episode.go # Episode Memory(原始对话)
├── protocol/
│ ├── a2a/ # Agent-to-Agent 协议
│ ├── agui/ # AG-UI 前端协议
│ ├── mcp/ # Model Context Protocol
│ └── openai/ # OpenAI API 兼容
├── observability/
│ ├── otel.go # OpenTelemetry 集成
│ └── langfuse.go # Langfuse 可视化
└── examples/ # 使用示例
本地关键文件
| 文件 | 用途 |
|---|---|
agent/agent.go |
4-Method Agent Interface 定义 |
agent/runner.go |
Runner 执行引擎,ReAct 循环核心(3971 行) |
agent/invocation.go |
Invocation 上下文对象(2339 行) |
stategraph/stategraph.go |
StateGraph 图引擎(6192 行) |
team/coordinator.go |
Coordinator 模式多 Agent 协作 |
team/swarm.go |
Swarm 模式去中心化协作 |
memory/fact.go |
Fact Memory 接口(提炼后知识) |