开发与工程 go-frameworkgraph-workflowsmulti-agent-orchestrationmodel-context-protocola2a-protocolag-uiopentelemetryrag

tRPC-Agent-Go

面向 Go 服务的生产级智能体与图工作流框架。

FollowAgents 评估 · FARS-2.1
不推荐
53/ 100 五分制 2.7 / 5
1 2 3 4 5 6
按维度查看评分与理由
1信任安全10 / 29 · 1.7/5

证据显示框架提供工具调用、代码执行、文件操作等能力,但未明确最小权限原则;有用户确认机制(如human-in-the-loop示例)但未系统化;数据流透明度有部分文档(如telemetry)但未全面;敏感数据处理未明确;依赖安全有go.mod但未审计;外部影响有安全控制(如allowlist)但未全面;回滚机制未明确;来源归属有CLA和贡献指南但未验证。扣分:缺乏系统性的安全设计文档和权限控制。

2可靠稳定9 / 14 · 3.2/5

框架内部一致性较好,文档与代码示例匹配;依赖可用性有go.mod和CI,但未验证;失败消息有错误处理示例但未全面。扣分:未提供故障恢复和错误处理的最佳实践。

3适用触发12 / 18 · 3.3/5

目标受众明确(Go开发者),场景覆盖广泛;能力边界有文档说明;触发精度有示例但未全面;环境适配有Go版本和依赖说明。扣分:未提供详细的配置指南和平台兼容性说明。

4规范维护10 / 18 · 2.8/5

信息架构清晰,有文档和示例;安装说明有快速开始;命名稳定;示例丰富;已知限制未明确;许可证为Apache-2.0;版本控制有release但无changelog;维护责任有贡献指南。扣分:缺少已知限制和changelog。

5有效结果9 / 13 · 3.5/5

输出可用性有示例和文档;边际价值高,提供多种功能;成本效益有提示缓存等优化。扣分:未提供性能基准和成本分析。

6证据核验3 / 8 · 1.9/5

声明有文档和示例支持,但未提供独立验证;跨来源佐证有限;事实与推断未明确区分。扣分:缺乏测试结果和独立验证。

证据充分度: 评估于 2026年8月9日 审查版本 c6988c7ef0d5
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
使用前请注意
  • 未验证的发布者身份,需谨慎评估供应链风险。
  • 依赖较多,需进行安全审计。
  • 代码执行和文件操作工具可能带来安全风险,需严格配置权限。
评估证据 [1][2][3][4][5]
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

tRPC-Agent-Go 是一个用于构建生产级智能体系统的 Go 框架,核心执行边界由 Runner、Agent 和事件流组成。它提供 LLMAgent、ChainAgent、ParallelAgent、CycleAgent 及 GraphAgent,用于模型驱动任务、顺序或并发协作,以及带条件路由的图工作流。Runner 负责会话管理和执行编排,并以 event.Event 流输出运行过程;会话、记忆、知识检索、制品和评估服务可接入该流程。框架还提供函数工具、MCP 工具、A2A、AG-UI HTTP/SSE 服务、OpenTelemetry 追踪,以及将 SKILL.md 工作流加载和执行为技能的能力。它适合需要将智能体功能嵌入 Go 后端服务、并希望自行集成模型和基础设施的团队。

应用通过 runner.NewRunner 创建执行器,再以 Runner.Run(ctx, userID, sessionID, message) 提交 model.NewUserMessage;返回的 events 通道持续产出 event.Event,可读取 chat.completion.chunk 的增量内容。LLMAgent 可调用 function.NewFunctionTool 创建的 Go 函数工具,也可接入 MCP 工具;工具能够执行计算、Web 搜索、文件操作或自定义服务,具体取决于应用配置。GraphAgent 使用 graph.NewStateGraph、AddNode 和 AddMultiConditionalEdges 构建节点、状态更新和分支并发执行。memory 服务可提供持久化搜索和工具接口,knowledge 示例展示加载来源、写入向量存储并检索 RAG 上下文;artifact 可保存和读取版本化文件。server 层可通过 AG-UI 暴露 Runner 并以 SSE 推送事件,也有 A2A 互操作示例;evaluation.New 可用评测集和可插拔指标运行重复评测。

  1. Go 后端团队需要为客服服务加入多轮会话、工具调用和长期记忆时,可用 Runner 与 LLMAgent 管理每位用户的 session。
  2. 需要将分析、处理、报告拆为多个步骤的业务自动化团队,可用 ChainAgent 串行组合子智能体,或用 ParallelAgent 并发执行独立任务。
  3. 构建需要条件分流、扇出并发和状态合并的审批或研究流程时,可用 GraphAgent 与 StateGraph 定义工作流。
  4. 为现有聊天前端提供流式智能体体验的团队,可通过 AG-UI 服务和 SSE 向客户端发送执行事件。
  5. 需要将文档知识接入问答服务的开发者,可参考 knowledge 示例加载资料、嵌入向量存储并进行检索。
  6. 需要持续衡量智能体质量的团队,可用 evaluation.New 对评测集执行多次运行并保存结果。

这个 Agent 有哪些优点和局限?

优点
  • 以 Go 原生 Runner、context 取消和流式事件模型组织智能体执行,适合接入 Go 服务。
  • GraphAgent 支持类型安全的状态图、多条件路由和并行扇出;同时提供串行、并行、循环三类多智能体组合。
  • 一个框架中覆盖会话、记忆、RAG、制品、评测、OpenTelemetry、MCP、A2A 与 AG-UI 集成。
  • 技能以 SKILL.md 目录组织,可从本地、HTTP(S) 归档或多个根目录加载,并支持刷新仓库。
局限
  • 运行首个示例需要 Go 1.21+ 和 LLM 提供商 API 密钥;README 的快速启动以 OpenAI 环境变量和模型参数为例。
  • 框架是库和服务集成组件,不是现成托管产品;应用仍需自行选择模型、实现工具、配置存储与部署边界。
  • 启用技能执行或代码执行会引入本地执行风险;文档特别提示在 skill_run 场景关闭代码执行响应处理器,以避免 Markdown 代码块自动执行。
  • README 说明 Redis、S3、COS、OTLP、Langfuse 等后端或导出路径,但未给出统一生产部署架构、托管服务或成本信息。

如何安装或部署这个 Agent?

前提是 Go 1.21 或更高版本,以及一个 LLM 提供商的 API 密钥。执行:

git clone https://github.com/trpc-group/trpc-agent-go.git
cd trpc-agent-go
export OPENAI_API_KEY="your-api-key-here"

export OPENAI_BASE_URL="your-base-url-here"(可选)
随后执行:

cd examples/runner
go run . -model="gpt-4o-mini" -streaming=true

如何使用这个 Agent?

最小集成流程是:用 openai.New 创建模型;用 llmagent.New 配置模型、工具和 model.GenerationConfig{Stream: true};用 runner.NewRunner 创建 Runner;调用 Run 并遍历返回事件。若需取消正在运行的请求,应取消传入 Runner.Run 的 context,并继续消费 events 直到通道关闭;服务器或后台任务也可通过 agent.WithRequestID 设置请求 ID,再调用 runner.ManagedRunner 的 Cancel(requestID)。需要按请求创建不同提示词、模型、工具或沙箱时,可改用 runner.NewRunnerWithAgentFactory。

这个 Agent 与同类方案有什么区别?

README 将 GraphAgent 描述为在 Go 中与 LangGraph 功能等价;它还列出 ADK、Agno、CrewAI 和 AutoGen 为开源灵感来源,但未提供基准测试或逐项功能对比。

常见问题

它是否只能使用 OpenAI?
不是。README 的基础示例使用 openai.New 和 OPENAI_API_KEY,但架构说明称 model 包支持 OpenAI、DeepSeek 等多个 LLM 模型;具体可用提供商和配置应由应用集成决定。
如何安全停止一次流式运行?
取消传给 Runner.Run 的 context,并继续读取 events,直到通道关闭。README 明确不建议仅跳出事件循环,否则智能体 goroutine 仍可能运行并阻塞在通道写入上。
是否支持前端流式界面?
支持。AG-UI 示例将 Runner 暴露为 AG-UI 协议服务,并内置 SSE 服务器;README 还提到 CopilotKit 和 TDesign Chat 客户端示例。
技能会自动执行模型回复中的代码吗?
技能可通过 skill_run 执行所选技能文档要求的命令。若 LLMAgent 仅为 skill_run 配置 WithCodeExecutor,README 建议设置 WithEnableCodeExecutionResponseProcessor(false),避免助手文本中的 Markdown 围栏代码自动执行。

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents