tRPC-Agent-Go

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

Star 数
★ 1.9k
最近更新
1 天前
License
Apache-2.0
主语言
Go

30 秒速览

运行形态
代码库 / SDK开发框架自托管服务
可在哪里用
通用 · 跨平台OpenAI API
费用
软件免费,模型调用费用自付
上手难度
中 · 需要几步配置
开始前需要
Go 1.21 或更高版本LLM 提供商 API 密钥Shell / 命令行网络访问本地文件系统MCP Server
典型场景
Go 后端团队需要为客服服务加入多轮会话、工具调用和长期记忆时,可用 Runner 与 LLMAgent 管理每位用户的 session。
不适合
  • 需要开箱即用托管服务、不愿自行选模型和部署的团队
  • 非 Go 技术栈、希望用 Python 或 TypeScript 构建 Agent 的团队

这个 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 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 有哪些优点和局限?

优点
  • 以 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 与同类方案有什么区别?

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

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
tRPC-Agent-Go 当前 53 · 缺口较多 代码库 / SDK免费 + 模型费 ★ 1.9k 1 天前 Go OpenAI API
Spring AI Alibaba 53 · 缺口较多 开发框架免费 + 模型费 ★ 11k 1 个月前 Java —
MCP Memory Service 68 · 存在缺口 MCP 服务器免费 ★ 2.1k 1 天前 Python ChatGPT · Codex · Claude Code · Claude.ai
MassGen 多智能体协作系统 51 · 缺口较多 命令行工具免费 + 模型费 ★ 1.1k 4 个月前 Python Codex · Claude Code · OpenAI API · Claude API

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
53/ 100 五分制 2.7 / 5
本评测基于 2026年8月9日 的源码;此后该项目发布了 3 个正式版本,尚未复审。分数与结论只代表评测时的版本。 最近版本 ↓
信任安全 10/29
可靠稳定 9/14
适用触发 12/18
规范维护 10/18
有效结果 9/13
证据核验 3/8
查看各维度的扣分理由
信任安全10 / 29 · 1.7/5

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

可靠稳定9 / 14 · 3.2/5

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

适用触发12 / 18 · 3.3/5

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

规范维护10 / 18 · 2.8/5

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

有效结果9 / 13 · 3.5/5

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

证据核验3 / 8 · 1.9/5

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

风险与缓解建议
  • 未验证的发布者身份,需谨慎评估供应链风险。
  • 依赖较多,需进行安全审计。
  • 代码执行和文件操作工具可能带来安全风险,需严格配置权限。
证据充分度:低 评估于 2026年8月9日 审查版本 c6988c7ef0d5 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v1.12.0
    发布说明摘录
    What's Changed * {codeexecutor, internal/workspaceprep, tool/workspaceexec}: scope prepared state per generation by @liuzengh in https://github.com/trpc-group/trpc-agent-go/pull/2423 * knowledge/chunking: preserve whitespace-sensitive content by @hr-chang in https://github.com/trpc-group/trpc-agent-go/pull/2434 * tool/function: allow disabling automatic output schema by @hyprh in https://github.com/trpc-group/trpc-agent-go/pull/2435 * telemetry: report gen_ai.usage.total_tokens on chat spans by @liuzengh in https://github.com/trpc-group/trpc-agent-go/pull/2438 …
    在 GitHub 查看 ↗
  2. v1.11.2 Release v1.11.2
    发布说明摘录
    What's Changed * runner: deduplicate event persistence by @Rememorio in https://github.com/trpc-group/trpc-agent-go/pull/2460 * knowledge: align root module versions by @print-happy in https://github.com/trpc-group/trpc-agent-go/pull/2469 * {internal/state/summaryfork, internal/state/summaryview}: avoid cloning immutable invocation snapshots by @Rememorio in https://github.com/trpc-group/trpc-agent-go/pull/2476 * model/openai: use max_tokens for DeepSeek by @Rememorio in https://github.com/trpc-group/trpc-agent-go/pull/2480 …
    在 GitHub 查看 ↗
  3. v1.11.1 Release v1.11.1
    发布说明摘录
    What's Changed * {runner, session/summary}: make automatic summaries cancellation-safe by @Rememorio in https://github.com/trpc-group/trpc-agent-go/pull/2436 * session/summary: discard canceled summary results by @yu-xin-c in https://github.com/trpc-group/trpc-agent-go/pull/2455 * tool/agent: preserve user history for persistent streaming calls by @bytethm in https://github.com/trpc-group/trpc-agent-go/pull/2452 * internal/flow/llmflow: avoid state clones in streaming telemetry by @Rememorio in https://github.com/trpc-group/trpc-agent-go/pull/2462 …
    在 GitHub 查看 ↗

常见问题

它是否只能使用 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 围栏代码自动执行。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

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

相关 Agents