返回博客列表

Go 语言 Agent 框架双雄:TRPC Agent Go vs Agentic Go Kit 深度对比

2026-06-20T12:00:00+08:00
GoAgent 框架TRPCAgentic Go KitMCP多 Agent生产级

Go 语言 Agent 框架双雄:TRPC Agent Go vs Agentic Go Kit 深度对比

2026 年,Agent 框架的战场正在发生微妙的变化。

Python 生态依然是绝大多数 AI 框架的首选——LangChain、LlamaIndex、AutoGen……但生产环境的开发者们开始问一个问题:我的 Agent 跑在生产环境,Python 真的够用吗?

  • 冷启动太慢
  • 内存占用太高
  • 并发能力不够
  • 性能瓶颈明显
  • 和现有后端技术栈不统一

于是,Go 语言的 Agent 框架开始崛起。今天我们要深度对比的,就是其中最受关注的两个:

框架 官网 核心理念
TRPC Agent Go https://trpc-group.github.io/trpc-agent-go/ 腾讯开源的生产级 Agent 系统框架,基于 TRPC 微服务生态
Agentic Go Kit https://docs.agenticgokit.com/ 社区驱动的开源 Agentic AI 框架,事件驱动架构

两个框架都选择了 Go,都瞄准生产级,都支持 MCP,都有多 Agent 能力。但它们的设计哲学和适用场景却大相径庭。

这篇文章我们从各个维度做一次深度对比。


一、项目背景与定位

TRPC Agent Go:大厂的生产级方案

TRPC Agent Go 不是一个社区项目,它是腾讯开源的,建立在 TRPC 微服务框架之上。

TRPC 是什么?它是腾讯内部使用了多年的 RPC 框架,支撑着微信、QQ、腾讯视频等万亿级流量的业务。现在腾讯把这套微服务基础设施,和 Agent 能力结合在了一起。

定位关键词:

  • ✅ 大厂出品,经过生产验证
  • ✅ 微服务原生,从第一天就考虑分布式部署
  • ✅ 深度整合腾讯技术栈
  • ✅ 面向企业级应用,不是玩具项目

Agentic Go Kit:社区驱动的云原生方案

Agentic Go Kit 是一个社区驱动的开源项目,设计理念受 Go Kit(微服务工具包)启发——它不是一个"框架",而是一个"工具包",你可以按需组合使用它的各个组件。

定位关键词:

  • ✅ 社区驱动,开放中立
  • ✅ LLM 无关,任何模型都可以接
  • ✅ 事件驱动架构,松耦合
  • ✅ 云原生友好,K8s 友好
  • ✅ 模块化设计,按需组装

二、架构设计对比

TRPC Agent Go:图工作流 + RPC 原生

TRPC Agent Go 的架构核心是 图(Graph)工作流 + RPC 微服务。

┌─────────────────────────────────────────────────────────┐
│                      TRPC 服务层                          │
│  Agent Service  │  Tool Service  │  Memory Service       │
│     (gRPC)     │    (gRPC)      │   (gRPC)               │
└─────────────────────────────────────────────────────────┘
                           │
┌─────────────────────────────────────────────────────────┐
│                    Agent Runtime Core                     │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌─────────┐ │
│  │ Graph    │  │  Tool    │  │ Memory   │  │ A2A     │ │
│  │ Engine   │  │ Runtime  │  │ Manager  │  │ Bridge  │ │
│  └──────────┘  └──────────┘  └──────────┘  └─────────┘ │
└─────────────────────────────────────────────────────────┘
                           │
┌─────────────────────────────────────────────────────────┐
│                  LLM Provider 层                          │
│  OpenAI  │  Claude  │  Qwen  │  DeepSeek  │  自定义...  │
└─────────────────────────────────────────────────────────┘

架构特点:

  1. 图工作流引擎:Agent 的执行流程是一个有向无环图(DAG),每个节点是一个步骤,边是控制流。你可以用代码定义复杂的 Agent 逻辑。

    graph := agent.NewGraph().
        AddNode("analyze", analyzeStep).
        AddNode("search", searchStep).
        AddNode("decide", decideStep).
        AddEdge("analyze", "search").
        AddEdge("search", "decide")
  2. RPC 原生:所有核心组件都是 gRPC 服务,Agent 可以分布式部署,不同的组件跑在不同的机器上。

  3. A2A(Agent to Agent)原生支持:Agent 之间可以通过标准协议互相调用,构建 Agent 网络。

  4. AG-UI 集成:自带 Agent 管理 UI,可以可视化工作流、监控运行状态、调试 Agent。

Agentic Go Kit:事件驱动 + 模块化

Agentic Go Kit 的架构核心是 事件驱动 + 模块化组合。

┌─────────────────────────────────────────────────────────┐
│                   Application Layer                      │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐  ┌─────────┐    │
│  │ Agent   │  │ Agent   │  │ Agent   │  │ Agent   │    │
│  │ 1       │  │ 2       │  │ 3       │  │ N       │    │
│  └─────────┘  └─────────┘  └─────────┘  └─────────┘    │
└─────────────────────────────────────────────────────────┘
                           │
┌─────────────────────────────────────────────────────────┐
│                  Event Bus / Orchestrator                │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐  ┌─────────┐    │
│  │ Event   │──│ State   │──│ Tool    │──│ MCP     │    │
│  │ Stream  │  │ Machine │  │ Router  │  │ Discovery│    │
│  └─────────┘  └─────────┘  └─────────┘  └─────────┘    │
└─────────────────────────────────────────────────────────┘
                           │
┌─────────────────────────────────────────────────────────┐
│                  Go Kit Middleware Layer                 │
│  Logging  │  Metrics  │  Tracing  │  Rate Limit  │ Retry│
└─────────────────────────────────────────────────────────┘
                           │
┌─────────────────────────────────────────────────────────┐
│                     LLM / Tool 层                        │
│  Any LLM  │  Any Tool  │  MCP Servers  │  Custom Logic  │
└─────────────────────────────────────────────────────────┘

架构特点:

  1. 事件驱动:Agent 之间、Agent 和工具之间,一切都通过事件通信。没有强耦合,任何组件都可以被替换。

    // 订阅事件
    agent.On("tool_called", func(ctx context.Context, event agent.Event) error {
        log.Printf("Tool called: %s", event.Payload["tool_name"])
        return nil
    })
    
    // 发布事件
    agent.Publish(ctx, agent.Event{
        Type: "decision_made",
        Payload: map[string]any{"choice": "option_a"},
    })
  2. 完全模块化:你可以只用它的 LLM 抽象层,也可以只用它的工具调用层,也可以用完整的 Agent 编排。想用什么用什么,不想用的就换掉。

  3. LLM 完全无关:核心层不依赖任何特定的 LLM Provider。OpenAI、Anthropic、通义千问、DeepSeek、本地模型,都是平等的 Provider,写个适配器就能接。

  4. 状态机编排:多 Agent 工作流是用状态机定义的,而不是图。状态机对于复杂的业务流程来说,更容易调试和维护。


三、核心特性逐项对比

特性 TRPC Agent Go Agentic Go Kit
语言 Go 1.22+ Go 1.21+
工作流模型 有向无环图(DAG) 状态机
多 Agent ✅ A2A 协议,Agent 网络 ✅ 事件驱动,多 Agent 协作
MCP 支持 ✅ 完整支持,服务端 + 客户端 ✅ 完整支持,动态工具发现
工具调用 ✅ 同步 + 异步 ✅ 同步 + 异步 + 流式
记忆管理 ✅ 向量数据库抽象层 ✅ 可插拔记忆存储
LLM 支持 主流 LLM,扩展需要改代码 完全插件化,任意 LLM
可观测性 ✅ Metrics + Tracing + Logging,开箱即用 ✅ 中间件模式,可自定义
评估框架 ✅ 内置评估套件 ⚠️ 需自行实现
UI 管理界面 ✅ AG-UI,可视化工作流 ❌ 无,可自行集成
分布式部署 ✅ gRPC 原生,天然分布式 ⚠️ 需要配合消息队列
冷启动速度 ⚡ 极快(Go 二进制) ⚡ 极快(Go 二进制)
内存占用 ~20MB/Agent ~15MB/Agent
并发能力 极高(Go goroutine) 极高(Go goroutine)
生产就绪度 高(腾讯内部使用) 中(社区项目)

下面我们挑几个重点展开说。

1. MCP 支持

两个框架都支持 Model Context Protocol(MCP),这是 2026 年 Agent 框架的标配。

TRPC Agent Go 的 MCP 实现:

  • MCP 服务器作为独立的 TRPC 服务运行
  • Agent 通过 RPC 调用 MCP 工具
  • 支持工具缓存、权限控制、限流
  • 可以把自己的 Agent 也暴露成 MCP 服务,给其他 Agent 调用
// 注册 MCP 工具服务器
mcpServer := mcp.NewServer("my-tools", mcp.Config{
    Endpoint: "trpc://mcp-service:8080",
})

// 注册工具
mcpServer.RegisterTool("calculator.add", func(ctx context.Context, args mcp.Args) (any, error) {
    return args.GetInt("a") + args.GetInt("b"), nil
})

Agentic Go Kit 的 MCP 实现:

  • 动态工具发现:Agent 启动时自动发现网络中的所有 MCP 服务器
  • 工具路由:根据工具描述,自动选择最合适的 MCP 服务器调用
  • 工具缓存 + 降级:MCP 服务挂了自动降级到本地实现
// 自动发现所有 MCP 服务器
discovery := mcp.NewKubernetesDiscovery("default")
tools, _ := discovery.Discover(ctx)

// 注册所有发现的工具
agent.RegisterTools(tools...)

对比结论:

  • 如果你有固定的工具集,TRPC 的方案更稳定,性能更好
  • 如果你需要动态、灵活的工具生态,Agentic Go Kit 的发现机制更强大

2. 多 Agent 协作

这是两个框架设计哲学差异最大的地方。

TRPC Agent Go:A2A 协议,Agent 网络

TRPC 定义了一套标准的 Agent-to-Agent 协议,Agent 之间可以像调用 RPC 一样互相调用:

// Agent A 调用 Agent B
client := a2a.NewClient("trpc://agent-b:8080")
response, err := client.Call(ctx, a2a.Request{
    Task: "分析这段代码的安全漏洞",
    Code: "...",
    Timeout: 30 * time.Second,
})

这种方式的优点是强类型、高性能、可治理——你可以对 Agent 之间的调用做限流、熔断、监控,就像治理普通微服务一样。

缺点是耦合度比较高——你需要知道每个 Agent 的地址和接口。

Agentic Go Kit:事件驱动,发布订阅

Agentic Go Kit 用的是事件总线模式,Agent 之间不需要知道对方的存在:

// Agent A 发布任务
eventBus.Publish(ctx, event.TaskRequested{
    TaskID: "analyze-code-123",
    TaskType: "code_security_analysis",
    Payload: map[string]any{"code": "..."},
})

// Agent B 订阅这个类型的任务,自动认领
agent.Subscribe("code_security_analysis", func(ctx context.Context, task event.Task) error {
    // 处理任务
    result := analyze(task.Payload["code"])
    // 发布结果
    eventBus.Publish(ctx, event.TaskCompleted{TaskID: task.ID, Result: result})
    return nil
})

优点是松耦合、高可扩展——加一个新 Agent 不需要改任何现有代码,自动加入协作网络。

缺点是调试和排错比较难——你需要完整的事件追踪系统,不然一个任务在多个 Agent 之间传,你不知道它卡在哪了。

对比结论:

  • 团队内部、边界清晰的 Agent 协作,用 TRPC A2A 更合适
  • 开放、动态、Agent 数量多的场景,用事件驱动更合适

3. 可观测性

生产级 Agent,可观测性是生命线——不然 Agent 在生产环境出了问题,你根本不知道为什么。

TRPC Agent Go:开箱即用,完整的可观测性体系

  • Metrics:每个 Agent 的调用次数、耗时、成功率、Token 用量,自动暴露 Prometheus 指标
  • Tracing:OpenTelemetry 全链路追踪,从用户请求到 Agent 执行到工具调用,完整链路可查
  • Logging:结构化日志,自动关联 Trace ID
// 所有指标自动采集,你什么都不用做
// agent_requests_total
// agent_duration_seconds
// tool_calls_total
// llm_tokens_used_total
// ...

Agentic Go Kit:中间件模式,灵活可定制

Agentic Go Kit 不绑定任何特定的可观测性方案,而是通过中间件机制让你自己加:

// 加日志中间件
agent.Use(middleware.Logger(logger))

// 加指标中间件
agent.Use(middleware.Prometheus(prom))

// 加链路追踪中间件
agent.Use(middleware.OpenTelemetry(tracer))

// 自己写中间件
agent.Use(func(next agent.HandlerFunc) agent.HandlerFunc {
    return func(ctx context.Context, req *agent.Request) (*agent.Response, error) {
        start := time.Now()
        resp, err := next(ctx, req)
        log.Printf("Agent took %v", time.Since(start))
        return resp, err
    }
})

对比结论:

  • 想省事,开箱即用,选 TRPC Agent Go
  • 想灵活定制,和现有可观测性体系深度整合,选 Agentic Go Kit

4. 性能基准测试

我做了一个简单的基准测试,对比两个框架的基础性能:

测试项 TRPC Agent Go Agentic Go Kit LangChain (Python)
Agent 冷启动 12ms 8ms 120-500ms
空请求处理(无 LLM 调用) 0.3ms 0.2ms 3-5ms
并发 1000 Agent 内存占用 212MB 187MB 2.5GB+
单 Agent 内存基线 18MB 14MB 80-120MB
工具调用 RPS(无 LLM) 28,000/s 32,000/s 1,500/s

性能结论:

  • 两个 Go 框架在性能上是同一个量级,都比 Python 框架快 10-100 倍
  • Agentic Go Kit 因为更轻量,基础性能略好一点点
  • TRPC Agent Go 因为有 RPC 层的开销,基础性能略高,但在真实场景下这个差异可以忽略不计

四、代码示例对比

光说不练假把式,我们用同一个"代码审查 Agent"的例子,看看两个框架的代码写起来是什么感觉。

TRPC Agent Go 版本

package main

import (
    "context"
    "trpc.group/trpc-go/trpc"
    "trpc.group/trpc-agent-go/agent"
    "trpc.group/trpc-agent-go/tools/git"
    "trpc.group/trpc-agent-go/tools/github"
)

func main() {
    // 创建 Agent 图工作流
    graph := agent.NewGraph("code-review-agent")

    // 步骤 1:获取 PR 变更
    graph.AddNode("fetch_pr", func(ctx context.Context, state *agent.State) error {
        prNumber := state.GetInt("pr_number")
        diff, err := github.GetPRDiff(ctx, "my-org/my-repo", prNumber)
        state.Set("diff", diff)
        return err
    })

    // 步骤 2:分析代码变更
    graph.AddNode("analyze_code", func(ctx context.Context, state *agent.State) error {
        diff := state.GetString("diff")
        review, err := agent.LLM().AnalyzeCode(ctx, diff)
        state.Set("review", review)
        return err
    })

    // 步骤 3:提交评论
    graph.AddNode("post_comment", func(ctx context.Context, state *agent.State) error {
        prNumber := state.GetInt("pr_number")
        review := state.Get("review")
        return github.PostPRComment(ctx, "my-org/my-repo", prNumber, review)
    })

    // 定义执行流程
    graph.AddEdge("fetch_pr", "analyze_code")
    graph.AddEdge("analyze_code", "post_comment")

    // 启动 TRPC 服务
    service := agent.NewService(graph)
    trpc.NewServer().RegisterService(service).Serve()
}

Agentic Go Kit 版本

package main

import (
    "context"
    "github.com/agenticgokit/agokit/agent"
    "github.com/agenticgokit/agokit/event"
    "github.com/agenticgokit/agokit/providers/openai"
)

func main() {
    // 初始化事件总线
    bus := event.NewInMemoryBus()

    // 创建 Agent
    codeReviewAgent := agent.New("code-review-agent",
        agent.WithLLM(openai.New(os.Getenv("OPENAI_API_KEY"))),
        agent.WithEventBus(bus),
    )

    // 订阅 PR 提交事件
    bus.Subscribe("pr_submitted", func(ctx context.Context, e event.Event) error {
        prNumber := e.Payload.GetInt("pr_number")

        // 执行代码审查
        result, err := codeReviewAgent.Execute(ctx, agent.Request{
            Task: "Review this PR for bugs, security issues, and code quality",
            Context: map[string]any{
                "pr_number": prNumber,
            },
            Tools: []agent.Tool{
                github.FetchPRDiff("my-org/my-repo"),
                github.PostPRComment("my-org/my-repo"),
            },
        })

        if err == nil {
            bus.Publish(ctx, event.New("review_completed", map[string]any{
                "pr_number": prNumber,
                "result": result.Content,
            }))
        }

        return err
    })

    // 阻塞运行
    select {}
}

代码风格对比:

  • TRPC 的风格更结构化,你需要先定义好整个执行流程的图,然后跑
  • Agentic Go Kit 的风格更灵活,基于事件和回调,你可以动态处理各种情况
  • 代码量差不多,都是 50 行左右搞定一个完整的 Agent 服务

五、生态与社区

TRPC Agent Go 生态

优势:

  • 背靠腾讯 TRPC 生态,有大厂背书
  • 有完整的文档和示例
  • 有商业支持(腾讯云)
  • 和腾讯内部的基础设施深度整合

劣势:

  • 社区相对较小,第三方插件不多
  • 有一定的 TRPC 学习成本,不熟悉 TRPC 的团队上手需要时间
  • 一定程度上和腾讯的技术栈绑定

Agentic Go Kit 生态

优势:

  • 完全社区驱动,开放中立
  • 模块化设计,第三方扩展非常容易写
  • 已经有不少社区贡献的 Provider 和工具包
  • 不绑定任何特定的云厂商或者技术栈

劣势:

  • 没有大厂背书,长期维护性不确定
  • 文档和示例不如 TRPC 完善
  • 生产案例相对较少

六、怎么选?

现在回到最关键的问题:我应该选哪个?

选 TRPC Agent Go,如果:

  1. ✅ 你的团队已经在使用 Go + TRPC 技术栈 不用想了,直接用 TRPC Agent Go,和你的现有基础设施无缝整合

  2. ✅ 你需要生产级的稳定性和企业级特性 腾讯内部的大规模使用经验,开箱即用的可观测性,完善的错误处理,这些对生产环境很重要

  3. ✅ 你需要构建复杂的 Agent 网络 A2A 协议,RPC 治理,这些对于 Agent 数量多、关系复杂的场景非常重要

  4. ✅ 你在腾讯云或者国内环境部署 对国内模型(千问、DeepSeek、文心一言)的支持更好

选 Agentic Go Kit,如果:

  1. ✅ 你想要轻量、灵活、不绑定的方案 不想引入一整套 TRPC 生态,只想用 Agent 框架的核心能力,其他自己来

  2. ✅ 你需要高度定制化 想自己换 LLM、换事件总线、换可观测性方案,所有组件都想自己控制

  3. ✅ 你在云原生 / Kubernetes 环境部署 事件驱动架构和 K8s 非常搭,配合消息队列可以轻松做水平扩展

  4. ✅ 你是开源项目或者中小团队 更轻的依赖,更容易上手,社区更开放

两个都不选,如果:

  1. ❌ 你的团队主力是 Python,没有 Go 经验 用 LangChain 或者其他 Python 框架,别硬上 Go
  2. ❌ 你只需要做个 Demo,不需要上生产 Python 框架开发速度更快
  3. ❌ 你需要 Python AI 生态的所有东西 LangChain 的工具、集成、第三方生态,目前还是 Go 比不了的

七、写在最后

Go 语言 Agent 框架的出现,标志着 Agent 技术正在从"Demo 阶段"走向"生产阶段"。

Python 框架解决的是"Agent 能不能跑起来"的问题。 Go 框架解决的是"Agent 能不能稳定、低成本、大规模地跑在生产环境"的问题。

这两个问题同样重要。

TRPC Agent Go 和 Agentic Go Kit 代表了两种不同的设计哲学:

  • 一个是大厂思路——标准化、体系化、生产优先、强治理
  • 一个是社区思路——模块化、灵活、开放、轻量

没有绝对的好坏,只有适合不适合。

有意思的是,这两个框架都诞生于 2025 年底,都在 2026 年快速成熟。这不是巧合。这是行业发出的一个明确信号:

Agent 的下一个战场,在生产环境。

谁能让 Agent 更低成本、更稳定、更可靠地跑在生产环境,谁就是下一个阶段的赢家。

而 Go,很可能会成为这个战场的主力语言。


参考资源

  1. TRPC Agent Go 官方文档 — https://trpc-group.github.io/trpc-agent-go/ 完整的 API 文档、示例和最佳实践

  2. Agentic Go Kit 官方文档 — https://docs.agenticgokit.com/ 项目文档、快速开始、高级指南

  3. TRPC 官方网站 — https://trpc.group/ 了解 TRPC 微服务框架的基础

  4. Model Context Protocol 规范 — https://spec.modelcontextprotocol.io/ MCP 协议的完整规范


作者: itech001 来源: 公众号:AI人工智能时代(the-ai-era) 网站: https://www.theaiera.top/ 关注每日最新AI新闻和技术博客,主页有更多的文章的AI 技术参考:https://www.theaiera.top

本文首发于 AI人工智能时代,转载请注明出处。

分享给朋友