GitHub user Alanxtl edited a discussion: Dubbo-Go-Pixiu 1.1.0 Release doc 发版文档
# Apache Dubbo-Go-Pixiu 1.1.0 Released ## Toward a Next-Generation AI Gateway and Cloud-Native Application Gateway > **A production-ready API & AI Gateway for the AI era** The **Apache Dubbo-Go-Pixiu 1.1.0** release is now officially available 🎉 This is a **major milestone release** that marks Pixiu’s evolution from a traditional API Gateway into: > **A Next-Generation AI Gateway + Kubernetes Application Gateway** If you are working on **LLM integration, AI gateways, streaming inference, MCP, or cloud-native traffic governance**, Pixiu 1.1.0 is designed for you. --- ## What’s New in Pixiu 1.1.0 — At a Glance Pixiu 1.1.0 focuses on three major capability pillars: * **AI Gateway** @Alanxtl Milestones: https://github.com/apache/dubbo-go-pixiu/discussions/696 * Unified LLM access and governance * Native streaming inference (HTTP / SSE) * Retry, fallback, and token-based cost governance * **MCP Gateway** @Similarityoung Milestones: https://github.com/apache/dubbo-go-pixiu/discussions/703 * Native Model Context Protocol (MCP) Server * Tool-based service exposure for AI Agents * **Cloud-Native Application Gateway** @mfordjody * Re-architected Kubernetes Ingress & routing model * Modern Application Gateway design --- ## Pixiu as a Production-Ready AI Gateway With 1.1.0, Pixiu becomes a **first-class AI Gateway**, with a clear goal: > **Enable enterprises to access, govern, and observe all AI capabilities > through a single gateway** ### Key AI Gateway Capabilities * Unified LLM Proxy (OpenAI-compatible, private models, self-hosted models) * Native HTTP / SSE streaming inference * Model-level retry and fallback strategies * Token counting, logging, and billing extensions * API key management, health checks, and observability --- ## AI Gateway Usage Example (LLM Proxy) The following example shows how to use Pixiu as an **LLM Gateway**, exposing a unified `/chat/completions` endpoint while forwarding requests to upstream model providers. ### Example Configuration ```yaml static_resources: listeners: - name: "llm_proxy" protocol_type: "HTTP" address: socket_address: address: "0.0.0.0" port: 8888 filter_chains: filters: - name: dgp.filter.httpconnectionmanager config: route_config: routes: - match: prefix: "/chat/completions" route: cluster: "chat" cluster_not_found_response_code: 505 http_filters: - name: dgp.filter.llm.proxy config: maxIdleConns: 100 maxIdleConnsPerHost: 100 maxConnsPerHost: 100 scheme: "https" - name: dgp.filter.llm.tokenizer config: log_to_console: true config: idle_timeout: 5s read_timeout: 50s write_timeout: 50s clusters: - name: "chat" lb_policy: "lb" endpoints: - id: 1 socket_address: domains: - "api.deepseek.com" llm_meta: retry_policy: name: "CountBased" times: 3 metric: enable: true prometheus_port: 2222 ``` ### Request Example ```bash curl -X POST http://127.0.0.1:8888/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "deepseek-chat", "messages": [ { "role": "user", "content": "Hello Pixiu AI Gateway" } ], "stream": false }' ``` ### Notes * Pixiu exposes a **single unified AI endpoint**, hiding upstream vendor differences. * Retry policies are defined at the **model (cluster) level**. * Native support for streaming (HTTP / SSE) is available for chat and agent scenarios. * Tokenizer filters can be extended for billing, quotas, or auditing. For more information, refer to https://github.com/apache/dubbo-go-pixiu-samples/blob/main/llm --- ## Native Model Context Protocol (MCP) Support Pixiu 1.1.0 introduces **first-class MCP support**, allowing Pixiu to run directly as an **MCP Server**. This enables a new integration model: > **Business services can be exposed as MCP tools and invoked directly by AI > Agents** ### MCP Gateway Capabilities * MCP Server Filter * Tool-based service definitions * Path / query / body parameter injection and validation * Streaming invocation support * Optional integration with service registries (e.g., Nacos) --- ## MCP Gateway Usage Example (MCP Server) The following example shows how to expose HTTP APIs as **MCP Tools**. ```yaml static_resources: listeners: - name: "net/http" protocol_type: "HTTP" address: socket_address: address: "0.0.0.0" port: 8888 filter_chains: filters: - name: "dgp.filter.httpconnectionmanager" config: route_config: routes: # MCP endpoint route - match: prefix: "/mcp" route: cluster: "mock-server" cluster_not_found_response_code: 505 # API routes for server testing - match: prefix: "/api" route: cluster: "mock-server" cluster_not_found_response_code: 404 # Root route - match: prefix: "/" route: cluster: "mock-server" cluster_not_found_response_code: 404 http_filters: # MCP Server Filter - Tools Testing Configuration - name: "dgp.filter.mcp.mcpserver" config: server_info: name: "MCP Tools Test Server" version: "1.0.0" description: "MCP Server for testing all tools functionality" instructions: "Use these tools to interact with the mock server API. Test all CRUD operations and search functionality." # Tools Configuration - Testing all server endpoints tools: # Tool 1: Get User by ID - name: "get_user" description: "Get user information by ID with optional profile details" cluster: "mock-server" request: method: "GET" path: "/api/users/{id}" timeout: "10s" args: - name: "id" type: "integer" in: "path" description: "User ID to retrieve" required: true - name: "include_profile" type: "boolean" in: "query" description: "Include user profile information" required: false default: false # Tool 2: Search Users - name: "search_users" description: "Search users by name or email with pagination" cluster: "mock-server" request: method: "GET" path: "/api/users/search" timeout: "10s" args: - name: "q" type: "string" in: "query" description: "Search query (name or email)" required: true - name: "page" type: "integer" in: "query" description: "Page number for pagination" required: false default: 1 - name: "limit" type: "integer" in: "query" description: "Number of results per page (1-100)" required: false default: 10 # Tool 3: Create User - name: "create_user" description: "Create a new user account" cluster: "mock-server" request: method: "POST" path: "/api/users" timeout: "10s" headers: Content-Type: "application/json" args: - name: "name" type: "string" in: "body" description: "User's full name" required: true - name: "email" type: "string" in: "body" description: "User's email address" required: true - name: "age" type: "integer" in: "body" description: "User's age" required: false # Tool 4: Get User Posts - name: "get_user_posts" description: "Get all posts by a specific user with status filtering" cluster: "mock-server" request: method: "GET" path: "/api/users/{user_id}/posts" timeout: "10s" args: - name: "user_id" type: "integer" in: "path" description: "User ID to get posts for" required: true - name: "status" type: "string" in: "query" description: "Filter posts by status" required: false default: "published" enum: ["published", "draft", "all"] # Tool 5: Health Check - name: "health_check" description: "Check the health and status of the server service" cluster: "mock-server" request: method: "GET" path: "/api/health" timeout: "5s" # Tool 6: Get Server Info - name: "get_server_info" description: "Get basic server information and available endpoints" cluster: "mock-server" request: method: "GET" path: "/" timeout: "5s" # HTTP Proxy Filter - name: "dgp.filter.http.httpproxy" clusters: - name: "mock-server" type: "STATIC" lb_policy: "ROUND_ROBIN" endpoints: - socket_address: address: "127.0.0.1" port: 8081 ``` ### How It Works * Each tool maps to a backend HTTP API. * Pixiu handles parameter binding, validation, and request forwarding. * AI Agents interact with Pixiu using standard MCP semantics. For more information, refer to https://github.com/apache/dubbo-go-pixiu-samples/blob/main/mcp --- ## Kubernetes Ingress & Application Gateway Upgrade Pixiu 1.1.0 includes a **significant re-architecture** of its Ingress and routing system: * Redesigned routing mechanism * Modern Application Gateway architecture * Support for a new Ingress Controller * Fine-grained policy and traffic governance Pixiu is not just a gateway—it is the **cloud-native traffic entry point and control plane**. ### Ingress Usage Pixiu recommends using **Gateway API Extensions** for Kubernetes integration: 👉 [https://cn.dubbo.apache.org/zh-cn/overview/reference/pixiu/overview/gatewayapi_extensions/](https://cn.dubbo.apache.org/zh-cn/overview/reference/pixiu/overview/gatewayapi_extensions/) --- ## Dynamic Governance & Engineering Improvements ### Dynamic Capabilities * Nacos-based service and AI endpoint discovery * Configuration center listening and hot reload * Dynamic route and cluster generation ### Engineering Quality * Unified error code system * Unified metrics and observability filters * Multiple concurrency, memory, and stability fixes * Go version upgraded to **1.25** --- ## Documentation & Ecosystem * Fully rewritten README (English & Chinese) * Refactored admin and governance documentation * Added MCP and OPA usage guides * Continuous improvements to the Admin Console --- ## Community & Contributors Pixiu 1.1.0 is a **community-driven release**. Special thanks to all contributors (alphabetical order): @1kasa @Alanxtl @baerwang @FoghostCn @KamToHung @ma642 @mark4z @marsevilspirit @mfordjody @mutezebra @nanjiek @No-SilverBullet @PhilYue @Similarityoung @testwill @yuluo-yx --- ## Get Started * **Project Repository** [https://github.com/apache/dubbo-go-pixiu](https://github.com/apache/dubbo-go-pixiu) * **Official Samples** [https://github.com/apache/dubbo-go-pixiu-samples](https://github.com/apache/dubbo-go-pixiu-samples) --- ## Final Words Pixiu 1.1.0 is not just a version upgrade— it is a **foundation for production-grade AI Gateway adoption**. > **One Gateway. All AI. Cloud-Native Ready.** --- # Apache Dubbo-Go-Pixiu 1.1.0 正式发布 ## 迈向下一代 AI 网关与云原生应用网关 > **面向 AI 时代的生产级 API & AI 网关** **Apache Dubbo-Go-Pixiu 1.1.0** 现已正式发布 🎉 这是一次**重要的里程碑版本**,标志着 Pixiu 从传统 API 网关正式演进为: > **下一代 AI 网关 + Kubernetes 应用网关** 如果你正在从事 **LLM 集成、AI 网关、流式推理、MCP 或云原生流量治理**,那么 Pixiu 1.1.0 正是为你而设计。 --- ## Pixiu 1.1.0 新特性一览 Pixiu 1.1.0 聚焦三大核心能力支柱: * **AI 网关** @Alanxtl Milestones: https://github.com/apache/dubbo-go-pixiu/discussions/696 * 统一的 LLM 接入与治理 * 原生流式推理支持(HTTP / SSE) * 重试、回退及基于 Token 的成本治理 * **MCP 网关** @Similarityoung Milestones: https://github.com/apache/dubbo-go-pixiu/discussions/703 * 原生 Model Context Protocol(MCP)Server * 面向 AI Agent 的工具化服务暴露 * **云原生 Ingress / Application 网关** @mfordjody * 全新重构的 Kubernetes Ingress 与路由模型 * 现代化 Application 网关架构设计 --- ## Pixiu:生产级 AI 网关 在 1.1.0 版本中,Pixiu 正式成为**生产级 AI 网关**,其核心目标是: > **让企业通过一个统一网关访问、治理并观测所有 AI 能力** ### AI 网关核心能力 * 统一 LLM 代理(兼容 OpenAI 接口,支持私有模型、自托管模型) * 原生 HTTP / SSE 流式推理 * 模型级别的重试与回退策略 * Token 统计、日志与计费扩展能力 * API Key 管理、健康检查与可观测性 --- ## AI 网关使用示例(LLM Proxy) 以下示例展示了如何使用 Pixiu 作为 **LLM 网关**,通过统一的 `/chat/completions` 接口,将请求转发至上游模型服务。 ### 示例配置 ```yaml static_resources: listeners: - name: "llm_proxy" protocol_type: "HTTP" address: socket_address: address: "0.0.0.0" port: 8888 filter_chains: filters: - name: dgp.filter.httpconnectionmanager config: route_config: routes: - match: prefix: "/chat/completions" route: cluster: "chat" cluster_not_found_response_code: 505 http_filters: - name: dgp.filter.llm.proxy config: maxIdleConns: 100 maxIdleConnsPerHost: 100 maxConnsPerHost: 100 scheme: "https" - name: dgp.filter.llm.tokenizer config: log_to_console: true config: idle_timeout: 5s read_timeout: 50s write_timeout: 50s clusters: - name: "chat" lb_policy: "lb" endpoints: - id: 1 socket_address: domains: - "api.deepseek.com" llm_meta: retry_policy: name: "CountBased" times: 3 metric: enable: true prometheus_port: 2222 ``` ### 请求示例 ```bash curl -X POST http://127.0.0.1:8888/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "deepseek-chat", "messages": [ { "role": "user", "content": "Hello Pixiu AI Gateway" } ], "stream": false }' ``` ### 说明 * Pixiu 对外暴露**统一的 AI 接口**,屏蔽上游模型厂商差异 * 重试策略在**模型(Cluster)级别**定义 * 原生支持流式(HTTP / SSE),适用于对话与 Agent 场景 * Tokenizer 过滤器可扩展用于计费、配额或审计 更多信息请参考: [https://github.com/apache/dubbo-go-pixiu-samples/blob/main/llm](https://github.com/apache/dubbo-go-pixiu-samples/blob/main/llm) --- ## 原生 Model Context Protocol(MCP)支持 Pixiu 1.1.0 引入**MCP 支持**,可直接作为 **MCP Server** 运行。 这开启了一种全新的集成模式: > **业务服务可以以 MCP 工具(Tool)的形式暴露,并被 AI Agent 直接调用** ### MCP 网关能力 * MCP Server 过滤器 * 基于工具(Tool)的服务定义 * Path / Query / Body 参数注入与校验 * 流式调用支持 * 可选服务注册中心集成(如 Nacos) --- ## MCP 网关使用示例(MCP Server) 以下示例展示了如何将 HTTP API 暴露为 **MCP 工具**。 ```yaml static_resources: listeners: - name: "net/http" protocol_type: "HTTP" address: socket_address: address: "0.0.0.0" port: 8888 filter_chains: filters: - name: "dgp.filter.httpconnectionmanager" config: route_config: routes: # MCP endpoint route - match: prefix: "/mcp" route: cluster: "mock-server" cluster_not_found_response_code: 505 # API routes for server testing - match: prefix: "/api" route: cluster: "mock-server" cluster_not_found_response_code: 404 # Root route - match: prefix: "/" route: cluster: "mock-server" cluster_not_found_response_code: 404 http_filters: # MCP Server Filter - Tools Testing Configuration - name: "dgp.filter.mcp.mcpserver" config: server_info: name: "MCP Tools Test Server" version: "1.0.0" description: "MCP Server for testing all tools functionality" instructions: "Use these tools to interact with the mock server API. Test all CRUD operations and search functionality." # Tools Configuration - Testing all server endpoints tools: # Tool 1: Get User by ID - name: "get_user" description: "Get user information by ID with optional profile details" cluster: "mock-server" request: method: "GET" path: "/api/users/{id}" timeout: "10s" args: - name: "id" type: "integer" in: "path" description: "User ID to retrieve" required: true - name: "include_profile" type: "boolean" in: "query" description: "Include user profile information" required: false default: false # Tool 2: Search Users - name: "search_users" description: "Search users by name or email with pagination" cluster: "mock-server" request: method: "GET" path: "/api/users/search" timeout: "10s" args: - name: "q" type: "string" in: "query" description: "Search query (name or email)" required: true - name: "page" type: "integer" in: "query" description: "Page number for pagination" required: false default: 1 - name: "limit" type: "integer" in: "query" description: "Number of results per page (1-100)" required: false default: 10 # Tool 3: Create User - name: "create_user" description: "Create a new user account" cluster: "mock-server" request: method: "POST" path: "/api/users" timeout: "10s" headers: Content-Type: "application/json" args: - name: "name" type: "string" in: "body" description: "User's full name" required: true - name: "email" type: "string" in: "body" description: "User's email address" required: true - name: "age" type: "integer" in: "body" description: "User's age" required: false # Tool 4: Get User Posts - name: "get_user_posts" description: "Get all posts by a specific user with status filtering" cluster: "mock-server" request: method: "GET" path: "/api/users/{user_id}/posts" timeout: "10s" args: - name: "user_id" type: "integer" in: "path" description: "User ID to get posts for" required: true - name: "status" type: "string" in: "query" description: "Filter posts by status" required: false default: "published" enum: ["published", "draft", "all"] # Tool 5: Health Check - name: "health_check" description: "Check the health and status of the server service" cluster: "mock-server" request: method: "GET" path: "/api/health" timeout: "5s" # Tool 6: Get Server Info - name: "get_server_info" description: "Get basic server information and available endpoints" cluster: "mock-server" request: method: "GET" path: "/" timeout: "5s" # HTTP Proxy Filter - name: "dgp.filter.http.httpproxy" clusters: - name: "mock-server" type: "STATIC" lb_policy: "ROUND_ROBIN" endpoints: - socket_address: address: "127.0.0.1" port: 8081 ``` ### 工作原理 * 每个 Tool 映射到一个后端 HTTP API * Pixiu 负责参数绑定、校验与请求转发 * AI Agent 通过标准 MCP 语义与 Pixiu 交互 更多信息请参考: [https://github.com/apache/dubbo-go-pixiu-samples/blob/main/mcp](https://github.com/apache/dubbo-go-pixiu-samples/blob/main/mcp) --- ## Kubernetes Ingress 与 Application 网关升级 Pixiu 1.1.0 对 Ingress 与路由系统进行了**重大重构**: * 全新路由机制设计 * 现代化 Application 网关架构 * 支持新的 Ingress Controller * 更精细的策略与流量治理能力 Pixiu 不只是一个网关—— 它是**云原生流量入口与控制平面**。 ### Ingress 使用方式 Pixiu 推荐使用 **Gateway API Extensions** 进行 Kubernetes 集成: 👉 [https://cn.dubbo.apache.org/zh-cn/overview/reference/pixiu/overview/gatewayapi_extensions/](https://cn.dubbo.apache.org/zh-cn/overview/reference/pixiu/overview/gatewayapi_extensions/) --- ## 动态治理与工程能力提升 ### 动态能力 * 基于 Nacos 的服务与 AI Endpoint 发现 * 配置中心监听与热更新 * 动态路由与集群生成 ### 工程质量 * 统一错误码体系 * 统一指标与可观测性过滤器 * 多项并发、内存与稳定性修复 * Go 版本升级至 **1.25** --- ## 文档与生态 * 全新重写的 README(中 / 英) * 重构 Admin 与治理文档 * 新增 MCP 与 OPA 使用指南 * Admin Console 持续演进 --- ## 社区与贡献者 Pixiu 1.1.0 是一次**完全由社区驱动的版本发布**。 特别感谢以下贡献者(按字母顺序): @1kasa @Alanxtl @baerwang @FoghostCn @KamToHung @ma642 @mark4z @marsevilspirit @mfordjody @mutezebra @nanjiek @No-SilverBullet @PhilYue @Similarityoung @testwill @yuluo-yx --- ## 快速开始 * **项目仓库** [https://github.com/apache/dubbo-go-pixiu](https://github.com/apache/dubbo-go-pixiu) * **官方示例** [https://github.com/apache/dubbo-go-pixiu-samples](https://github.com/apache/dubbo-go-pixiu-samples) --- ## 结语 Pixiu 1.1.0 不只是一次版本升级, 它是**生产级 AI 网关落地的基础设施**。 > **一个网关,连接所有 AI。云原生,已就绪。** GitHub link: https://github.com/apache/dubbo-go-pixiu/discussions/840 ---- 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]
