tRPC 是腾讯内部覆盖最广的 RPC 开发框架,覆盖了腾讯大多数微服务,服务了如 QQ ,腾讯视频,腾讯音乐,QQ 浏览器,腾讯新闻,元宝,电脑、手机管家,腾讯云等业务。其中 tRPC-Go 是使用最广的,累计覆盖将近 200w+节点,5w+服务。
2023 年起,LLM 发展迅速,而 Agent 开发框架成为连接 AI 能力与业务应用的重要基础设施。为了便于用户更好的开发 Agent 应用,并方便和 tRPC 微服务结合提供高性能,高可用的服务,tRPC-Go 在 25 年持续深耕 Agent 能力建设,本文将为你全面解读 trpc-agent-go(
https://github.com/trpc-group/trpc-agent-go )如何构建智能 AI 应用。
tRPC-Agent-Go 框架总览
tRPC-Agent-Go (
https://github.com/trpc-group/trpc-agent-go ) 框架集成了 LLM 、智能规划器、会话管理、可观测性和丰富的工具生态系统。支持创建自主 Agent 和半自主 Agent ,具备推理能力、工具调用、子 Agent 协作和长期状态保持能力,为开发者提供构建智能应用的完整技术栈。
●Agent: 核心执行单元,负责处理用户输入并生成响应,提供智能推理引擎和任务编排能力,tRPC Agent 支持单 Agent ( GraphAgent ,LLMAgent )和 Multi-Agent ( ChainAgent ,ParallelAgent ,CycleAgent ),并支持基于 muti-agent-system 进行串联。
●Runner: Agent 的执行器,负责管理 Agent 的生命周期管理、会话状态维护和事件流处理,串联 Session/Memory Service 等能力
●Model: Model 模块提供了统一的 LLM 接口抽象,支持 OpenAI 兼容的 API 调用。通过标准化的接口设计,开发者可以灵活切换不同的模型提供商,实现模型的无缝集成和调用。该模块主要支持了 OpenAI like 接口的兼容性,已验证公司内外大多数接口。
●Tool:Tool 模块提供了标准化的工具定义、注册和执行机制,使 Agent 能够与外部世界进行交互。支持同步调用( CallableTool )和流式调用( StreamableTool )两种模式,满足不同场景的技术需求, 提供各种工具能力 FunctionTool 、MCP 、DuckDuckGo 等
●Session: Session 模块提供了会话管理功能,用于维护 Agent 与用户交互过程中的对话历史和上下文信息。会话管理模块支持多种存储后端,包括内存存储和 Redis 存储
●Memory: 记录用户的长期记忆和个性化信息
●Knowledge: 知识管理核心组件,它实现了完整的 RAG (检索增强生成)能力。该模块不仅提供了基础的知识存储和检索功能,还支持多种高级特性:
●知识源管理:支持本地文件( Markdown 、PDF 、TXT 等)、目录批量导入、网页抓取,智能识别输入类型。向量存储:提供内存存储(开发测试)、PostgreSQL 、pgvector 、ElasticSearch 。Embedding:集成 OpenAI Embedding 、Gemini Embedding ,支持自定义模型,优化异步批处理性能。智能检索:语义相似度搜索,支持多轮对话上下文,结果重排序提升相关性。
●Planner: Planner 模块为 Agent 提供智能规划能力,通过不同的规划策略增强 Agent 的推理和决策能力。支持内置思考模型、React 结构化规划和自定义显式规划指导三种模式,使 Agent 能够更好地分解复杂任务和制定执行计划
●CodeExecutor:CodeExecutor 模块为 Agent 提供代码执行能力,支持在本地环境或 Docker 容器中执行 Python 、Bash 代码,使 Agent 具备数据分析、科学计算、脚本自动化等实际工作能力。
●Observability:集成 OpenTelemetry 标准,在 Agent 执行过程中自动记录详细的 telemetry 数据,支持全链路追踪和性能监控,内置诸多指标。
整个 tRPC Agent 框架采用分层设计实现:
● Runner 模块是 Agent 的执行器和运行环境,负责 Agent 的生命周期管理、会话状态维护和事件流处理,对接外部 web 服务
● Event 模块负责 Agent 执行过程中的状态传递和实时通信。通过统一的事件模型,实现 Agent 间解耦通信和透明执行监控。
●tRPC Agent 沿用 tRPC 的插件化设计,所有组件都能做插件化集成,tRPC Agent 有内置的组件,也做了各种生态组件的集成。
●tRPC Agent 的 Callbacks 模块还提供了一套完整的回调机制,允许在 Agent 执行、模型推理和工具调用的关键节点进行拦截和处理。通过回调机制,可以实现日志记录、性能监控、内容审核等功能。