tRPC-Agent-Go
面向 Go 服务的生产级智能体与图工作流框架。
按维度查看评分与理由
证据显示框架提供工具调用、代码执行、文件操作等能力,但未明确最小权限原则;有用户确认机制(如human-in-the-loop示例)但未系统化;数据流透明度有部分文档(如telemetry)但未全面;敏感数据处理未明确;依赖安全有go.mod但未审计;外部影响有安全控制(如allowlist)但未全面;回滚机制未明确;来源归属有CLA和贡献指南但未验证。扣分:缺乏系统性的安全设计文档和权限控制。
框架内部一致性较好,文档与代码示例匹配;依赖可用性有go.mod和CI,但未验证;失败消息有错误处理示例但未全面。扣分:未提供故障恢复和错误处理的最佳实践。
目标受众明确(Go开发者),场景覆盖广泛;能力边界有文档说明;触发精度有示例但未全面;环境适配有Go版本和依赖说明。扣分:未提供详细的配置指南和平台兼容性说明。
信息架构清晰,有文档和示例;安装说明有快速开始;命名稳定;示例丰富;已知限制未明确;许可证为Apache-2.0;版本控制有release但无changelog;维护责任有贡献指南。扣分:缺少已知限制和changelog。
输出可用性有示例和文档;边际价值高,提供多种功能;成本效益有提示缓存等优化。扣分:未提供性能基准和成本分析。
声明有文档和示例支持,但未提供独立验证;跨来源佐证有限;事实与推断未明确区分。扣分:缺乏测试结果和独立验证。
- 未验证的发布者身份,需谨慎评估供应链风险。
- 依赖较多,需进行安全审计。
- 代码执行和文件操作工具可能带来安全风险,需严格配置权限。
这个 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 可用评测集和可插拔指标运行重复评测。
- Go 后端团队需要为客服服务加入多轮会话、工具调用和长期记忆时,可用 Runner 与 LLMAgent 管理每位用户的 session。
- 需要将分析、处理、报告拆为多个步骤的业务自动化团队,可用 ChainAgent 串行组合子智能体,或用 ParallelAgent 并发执行独立任务。
- 构建需要条件分流、扇出并发和状态合并的审批或研究流程时,可用 GraphAgent 与 StateGraph 定义工作流。
- 为现有聊天前端提供流式智能体体验的团队,可通过 AG-UI 服务和 SSE 向客户端发送执行事件。
- 需要将文档知识接入问答服务的开发者,可参考 knowledge 示例加载资料、嵌入向量存储并进行检索。
- 需要持续衡量智能体质量的团队,可用 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 为开源灵感来源,但未提供基准测试或逐项功能对比。