GitHub user AlexStocks edited a discussion: [提案] AI 时代 apache/dubbo-go 的演进方向:聚焦 AI-ready 基础设施,而非另一个 AI 框架
# [提案] AI 时代 apache/dubbo-go 的演进方向:聚焦 AI-ready 基础设施,而非另一个 AI 框架 经过对当前 `develop` 分支的多轮内部分析,我认为 `apache/dubbo-go` 在 AI 时代最务实的方向,**不是**变成又一个 AI 应用框架。 相反,`dubbo-go` 更适合演进为**面向 AI 服务的高性能 Go RPC + 治理基础设施**。 本提案试图回答一个问题: > 在 AI 时代,`dubbo-go` 应该朝哪个方向演进,才能既有意义又与其既有优势保持一致? --- ## 1. 重要的边界:`dubbo-go` 应该成为什么,不应该成为什么 ### `dubbo-go` 应该成为什么 为 Go 生态中的 AI 服务提供坚实基础,包括: - 流式友好的 RPC - 模型/服务能力发现 - 治理感知的路由 - AI 专用的可观测性 - 向外部工具/Agent 安全暴露服务 - 策略驱动的成本/延迟/租户控制 ### `dubbo-go` **不应该**成为什么 它不应该试图将以下内容纳入核心: - Prompt 工程框架 - 记忆/对话历史管理 - RAG 编排 - Agent 工作流运行时 - 将向量数据库集成作为一等公民的核心关注点 - 特定模型提供商的 SDK 逻辑 原因很简单:这些是产品层或生态层的关注点,而 `dubbo-go` 最擅长的是通信/治理/生命周期/互操作性基础设施。 --- ## 2. 为什么这个方向比泛泛的"AI 集成"更适合当前仓库 从当前仓库的信号来看,`dubbo-go` 已经在以下方面具备坚实基础: - Triple / gRPC 兼容通信 - 泛化调用 - 服务发现/元数据/注册中心集成 - 动态配置/路由更新 - 流量治理 - OTel / 指标 / 链路追踪 - OpenAPI / 代码生成工具 因此,最好的 AI 相关演进不是从零开始,而是**针对 AI 工作负载重新诠释这些既有优势**。 换句话说: - 不要在核心中构建"AI 应用运行时" - 在现有 Dubbo-go 原语之上构建"AI 服务运行时治理" --- ## 3. 建议的优先方向 ## P0:AI-ready 的服务治理 ### 3.1 模型/服务能力发现 今天,服务发现主要回答:*实例在哪里?* 对于 AI 工作负载,消费者还需要知道: - 模型系列/模型名称 - 上下文窗口 - 模态(文本/图像/Embedding/音频/工具) - 地域/合规标签 - 延迟 SLA - 成本层级 - 租户可见性 - 版本/发布阶段 这指向一个自然的演进方向: - 扩展元数据/注册中心语义,支持 AI 能力感知的服务发现 - 让消费者能够按**能力**订阅,而不仅仅是按端点身份 这与 `dubbo-go` 非常契合。 --- ### 3.2 治理感知的模型路由 一旦能力元数据存在,下一步就是路由。 `dubbo-go` 应该能够支持针对 AI 工作负载的策略驱动路由,例如: - 按成本预算路由 - 按延迟目标路由 - 按租户/合规级别路由 - 按模型质量层级路由 - 按降级策略路由 - 按金丝雀/实验阶段路由 这里的关键点是:这应该是**规则驱动且可审计的**,而不是"让 LLM 在线决定路由"。 这样可以让系统在保持 AI 感知的同时,仍然是确定性的、可审查的。 --- ### 3.3 AI 专用的可观测性 传统 RPC 可观测性对 AI 服务来说是不够的。 对于 AI 流量,我们还关心: - TTFT(首 Token 延迟) - 流式分块间隔 - 输入 Token 数/输出 Token 数 - 会话/Prompt/模型标识符 - 降级频率 - 因模型/服务退化导致的重试 - 成本归因 `dubbo-go` 的一个有力方向是扩展其现有的可观测性栈,使 AI 工作负载成为追踪和指标中的一等公民。 这具有即时的运维价值,而且不需要将项目变成 AI 框架。 --- ## P1:工具/Agent 生态赋能,但不进入 Agent 运行时核心 ### 3.4 泛化调用 + Schema 暴露给工具 一个强有力的机会是让现有的 Dubbo 服务更容易暴露为机器可消费的工具。 由于 `dubbo-go` 已经具备泛化调用和代码生成/工具基础,它完全有能力支持: - 服务 → 工具描述符生成 - Schema 优先的服务暴露 - 结构化输入/输出约束 - 为外部工具消费者提供安全元数据 这可以让 `dubbo-go` 成为 MCP/工具调用生态的强大后端基础设施,**同时**又不必将 Agent 编排强塞进核心。 --- ### 3.5 一份契约,多个消费者 一个务实的方向是演进 IDL / OpenAPI / Triple 工具链,使一份契约可以服务于: - RPC 客户端 - OpenAPI 消费者 - AI 工具消费者 - 结构化输出验证器 这种 Schema 优先的投入,比起将快速变化的 AI 产品抽象嵌入框架核心,风险更低、更持久。 --- ## P2:面向 AI 流量的流式与长会话语义 AI 工作负载对通信的压力与传统 RPC 不同: - 更长生命周期的会话 - 流式输出 - 对取消的敏感性 - 背压处理 - 大载荷/上下文窗口 `dubbo-go` 在协议层的一个有意义的演进方向是加固和优化: - 流式语义 - 取消传播 - 会话元数据传播 - 流量控制/背压行为 - 围绕流生命周期的可观测性 这直接惠及 AI 服务,同时仍然完全处于 RPC/协议领域之内。 --- ## 4. 判断某个 AI 方向是否应纳入核心的简单原则 我建议使用以下过滤条件: 如果某个方向满足以下条件,就是好的 `dubbo-go` 核心方向: 1. 建立在现有优势之上,如协议/注册中心/路由/配置/可观测性 2. 同时服务于传统微服务和 AI 服务,或者至少干净地复用同一基础设施 3. 保持提供商中立 4. 可审计、确定性、对生产治理友好 5. 不将产品层的 Agent 逻辑强塞进框架核心 如果某个提案依赖于: - Prompt 模板 - 向量存储选型 - 模型厂商 SDK 频繁变更 - 对话记忆策略 - Agent 状态机 那么它可能更适合放在**生态项目/适配器/插件**中,而不是 `dubbo-go` 核心。 --- ## 5. 推荐的路线图形态 ### 阶段一:AI-ready 基础设施 聚焦于: - 能力元数据模型 - AI 感知的服务发现 - 路由策略扩展 - AI 可观测性指标/标签 - 流式/取消加固 ### 阶段二:AI 集成的工具链 聚焦于: - 工具 Schema 生成 - 泛化调用 → 工具暴露 - 更好地对齐 OpenAPI / Triple / AI 消费者的契约/工具链 ### 阶段三:生态孵化 在核心之外孵化: - MCP 适配器 - 服务到工具的桥接 - AI 网关集成模式 - 运维助手/诊断工具 这样可以让核心保持干净,同时仍然能够在 `dubbo-go` 周围赋能 AI 生态。 --- ## 6. 我的具体建议 如果社区想用一句话描述这个方向,我建议: > `apache/dubbo-go` 应该演进为面向 AI 服务的高性能 Go RPC 和治理基础设施,而不是又一个 AI 应用框架。 如果我们想要一个简短的优先级列表,我会这样排序: 1. **AI 能力感知的元数据和发现** 2. **治理感知的模型/服务路由** 3. **AI 专用的可观测性** 4. **面向 AI 流量的流式/取消/会话加固** 5. **基于泛化调用和代码生成的工具/Schema 暴露** 6. **将 Agent/Prompt/RAG 编排留在生态中,而非核心** --- ## 7. 给社区的问题 我认为下一步有用的工作不是立即写代码,而是对齐边界和优先级。 问题: 1. 我们是否同意 `dubbo-go` 在 AI 时代的主要角色应该是 **AI 服务基础设施**,而不是 **AI 应用框架**? 2. 在元数据/路由/可观测性/工具暴露中,哪一个应该成为第一个社区级方向? 3. AI 相关功能应该直接进入核心,还是某些部分应该先作为插件/适配器/独立项目孵化? 4. 社区是否已经有具体的生产用例可以作为锚点场景? 如果有兴趣,这个讨论后续可以按主题拆分为更小的 RFC / Issue。 GitHub link: https://github.com/apache/dubbo-go/discussions/3454 ---- This is an automatically sent email for [email protected]. To unsubscribe, please send an email to: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
