ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Agentic:从 API 到付费 MCP 网关的完整架构解析——配置发布、网关原理与 LLM SDK 集成

Agentic:从 API 到付费 MCP 网关的完整架构解析——配置发布、网关原理与 LLM SDK 集成 Agentic从 API 到付费 MCP 网关的完整架构解析——配置发布、网关原理与 LLM SDK 集成【免费下载链接】agenticYour API ⇒ Paid MCP. Instantly.项目地址: https://gitcode.com/GitHub_Trending/ag/agenticAgentic 把自己定位为RapidAPI for LLM tools它让任何远端 MCP 服务器或 OpenAPI 服务经过一条代理网关后瞬间变成一个可收费、可限流、可缓存、可版本管理的 AI 工具产品。本文以仓库根目录 README 为主干结合 monorepo 中的网关源码、发布配置包与标准库适配器完整拆解它的核心特性、发布流程agentic.config.ts全字段、网关请求处理链路以及它与主流 TypeScript LLM SDK 的一行式集成方式。读完后你可以独立理解一个 MCP 工具平台从发布到消费的端到端工程实现。需要首先说明一个关键事实根据 README 顶部的 IMPORTANT 提示该项目自 2026 年 2 月起已归档archiving不再积极开发。本文所有内容均基于当前仓库的实际代码与文档描述的是其归档时的架构与能力。一、Agentic 是什么README 用一句话概括了产品定位你可以把 Agentic 理解为LLM 工具的 RapidAPI。它由两个互补的侧面构成消费侧Marketplace市场上所有列出的工具都经过人工精选hand curated并通过一套完整的集成测试与 eval 定期验证。README 明确写着 Agentic aims for quality, not quantity追求质量而非数量。这个定期测试的说法在仓库中是有代码佐证的——apps/e2e/目录提供了针对 HTTP 和 MCP 两类网关请求的端到端测试套件入口为 http-e2e.test.ts 与 mcp-e2e.test.ts配套的示例项目部署脚本见 agentic-examples.ts。发布侧Publishing让任何开发者都能把自己的 MCP 服务器或 OpenAPI 服务发布到 Agentic 的 MCP Gateway 上即时开始对 agentic 工具使用收费。这个双向的产品形态正是本文后续两部分的骨架发布侧对应agentic/platform配置包与网关实现消费侧对应stdlib/下的各 SDK 适配器。二、核心特性逐条拆解源自 README辅以源码证据README 的 Key features 一节列出了七项特性下面逐条结合仓库源码说明其实际含义与实现位置。1. Highly Curated Tools人工精选工具公开列出的工具必须通过人工审核。从源码结构看未通过审核不能上架对应的是发布流程中的申报机制README 指出任何人都可以发布 live MCP 产品但要进入主市场必须先向官方提交审核youll need to submit your MCP to us before it can be listed on the main Agentic marketplace。2. Agentic UX为 LLM 调优的工具体验README 声称 Agentic 工具是专门为 LLM 工具调用手工打造的。这一承诺在消费侧的接入层有落地每个工具暴露给 LLM 的函数规格名称、描述、JSON Schema 参数都由网关统一整形。以 ai-sdk 适配器 为例createAISDKTools会把 Agentic 工具映射为 Vercel AI SDK 的tool()对象——description直接取自工具规格parameters则根据是否为 Zod Schema 决定走原生 Zod 还是转换为jsonSchema(...)保证参数定义对 LLM 侧严格可解析。3. First-Class MCP Support一等公民的 MCP 支持这一点是理解整个仓库的关键。MCP 不是事后加上的兼容层而是网关的一等模式。在 gateway 应用入口 中每个到达边缘的请求会先经过resolveEdgeRequest被判定为MCP或HTTP两种模式之一MCP 模式会直接把请求交给 Durable Object 承载的 MCP 服务器DurableMcpServer.serve(/*, { binding: DO_MCP_SERVER })而 HTTP 模式则走工具调用 → 响应整形的路径。两个模式共享同一套鉴权、限流、缓存基础设施。4. World-Class TypeScript DX一流的 TS 开发体验README 称其为Vercel 级 DX包括与每个主流 TS LLM SDK 的一行式集成。仓库中这一点体现为stdlib/目录下并列的适配器包ai-sdk、langchain、llamaindex、genkit、mastra另有 mcp、serpapi、serper 等工具包。所有适配器共享stdlib/core的函数规格抽象实现一个标识符 → 一套 SDK 工具的统一接入。5. Stripe Billing用量计费README 说明平台使用 Stripe 处理账单且大多数工具是 usage-based按实际用量付费。数据库模型印证了这一点contributing.md 列出的核心实体中Consumer客户订阅跟踪用量与账单与Team组织含成员与账单是两个独立实体说明用量记录与订阅/扣费是在数据层持久化的。网关侧的用量记录调用链可见于 app.ts 的finally块无论请求成功还是失败都会执行recordToolCallUsage确保计费不漏记。6. Blazing Fast MCP GatewayCloudflare 边缘网络驱动网关由 Cloudflare 全球边缘网络驱动工具自带可定制缓存与限流。仓库证据网关本身是一个 Cloudflare Workerworker.ts 导出了DurableMcpClient、DurableMcpServer、DurableRateLimiter三个 Durable Object部署配置见 wrangler.jsonc限流不是内存计数而是持久化的 Durable Objectdurable-rate-limiter 目录并会通过applyRateLimitHeaders把限流状态写回响应头缓存方面请求会先经过isRequestPubliclyCacheable判断是否可公开缓存并挂载caches.default作为边缘缓存工具级缓存策略则可通过toolConfigs中的cacheControl定制例如public, max-age3600, s-maxage3600 stale-while-revalidate180见下文 Context7 示例。7. Semver语义化版本所有 Agentic 工具按 semver 版本管理用户可以选择如何处理破坏性变更。这与消费侧的标识符设计直接对应SDK 适配器接收的是项目标识符或完全限定的部署标识符——使用前者自动解析项目的latest版本使用后者则锁定具体版本或 preview 部署见 ai-sdk.ts 的createAISDKToolsFromIdentifier注释。发布侧的部署Deployment在数据模型中是不可变immutable实体这为版本不可变、可精确引用提供了底层保证。三、Monorepo 架构总览按 contributing.md 的说明这是一个 pnpm monorepo要求node 22、pnpm 10.12.4平台由以下部分组成目录职责apps/api/平台后端 API鉴权、计费、资源管理PostgreSQL Drizzle ORM可用pnpm drizzle-kit push初始化本地库apps/gateway/Cloudflare Worker代理请求到上游 MCP/OpenAPI 服务apps/web/Next.js 站点营销站 认证后的 Web 应用apps/e2e/针对 HTTP 与 MCP 网关请求的端到端测试套件packages/公共工具类型、校验器、配置解析agentic/platform等stdlib/TS AI SDK 适配器消费侧一行式集成fixtures/发布配置的合法/非法样例集用于校验逻辑测试网关对外暴露的端点形态为HTTP 模式https://gateway.agentic.so/deploymentIdentifier/tool-nameMCP 模式https://gateway.agentic.so/deploymentIdentifier/mcp。这套 URL 形态在packages/validators中有对应的标识符解析与校验实现如 parse-deployment-identifier.ts保证发布侧的 slug 规则ascii、小写、kebab-case与消费侧的 URL 解析完全对齐。四、发布侧一条命令把 API 变成付费 MCP 产品4.1 发布流程的三步模型发布文档将整个流程概括为三步创建你的 MCP 服务器或 OpenAPI 服务——这个源服务器origin server承载你产品的独特价值可以是任意语言/框架的远端 MCP 服务器或 OpenAPI 服务托管在任何地方发布源服务器到 Agentic MCP Gateway——网关充当源服务器与客户之间的公开代理接管鉴权、计费、限流、缓存、用量跟踪、版本管理并让工具即时兼容所有主流 LLM SDK 与 MCP 客户端分享你的 MCP 产品——产品即刻可售卖客户通过 Stripe 订阅通过 Stripe Connect 向发布者打款。quickstart 页面则给出了具体的起步路径覆盖六类场景已有 MCP 服务器、已有 OpenAPI 服务以及从零新建的 TS xmcp / TS ModelFetch / TS FastMCP / TS MCP Hono / TS OpenAPI Hono / Python FastMCP对应文档分别位于 existing-mcp-server.mdx、existing-openapi-service.mdx、ts-xmcp.mdx 等文件。4.2agentic/platform与defineConfig发布侧的公共 SDK 是 agentic/platform核心导出是defineConfig(...)它提供了完整的类型安全与自动补全。最小可运行示例与 fixtures/valid/basic-mcp 中的真实配置一致import { defineConfig } from agentic/platform export default defineConfig({ name: Your Project Name, description: A brief description of your project, origin: { type: mcp, url: Your Remote MCP Server URL } })配置文件支持agentic.config.ts、agentic.config.js、agentic.config.json三种形式由 load-agentic-config.ts 负责发现与解析并经 validate-agentic-project-config.ts 校验——仓库fixtures/invalid/下的大量反例正是针对该校验的测试语料。4.3 配置字段全解依据 配置总览文档各字段及约束如下字段类型必填说明namestring是展示名最长 1024 字符slugstring是*唯一项目 slugascii、小写、kebab-case、1–256 字符未提供时由nameslugify 派生。项目全限定标识符为namespace/slugnamespace 取自作者的 username 或团队 slugdescriptionstring是简短描述建议不超过几行versionstring否semver 字符串如1.0.0、0.0.1readmestring否GitHub 风格 Markdown可为远程 URL、本地路径或>import { defineConfig } from agentic/platform export default defineConfig({ name: Context7, slug: context7, description: Up-to-date code docs for any prompt. ..., origin: { type: mcp, url: https://mcp.context7.com/mcp }, icon: https://avatars.githubusercontent.com/u/74989412?s48v4, readme: https://raw.githubusercontent.com/upstash/context7/refs/heads/master/README.md, sourceUrl: https://github.com/upstash/context7, homepageUrl: https://context7.com, toolConfigs: [ { name: resolve-library-id, cacheControl: public, max-age3600, s-maxage3600 stale-while-revalidate180, examples: [ { name: Next.js example, featured: true, prompt: Create a Next.js middleware that checks for a valid JWT in cookies and redirects unauthenticated users to /login. use context7, args: { libraryName: Next.js } } ] }, { name: get-library-docs, cacheControl: public, max-age3600, s-maxage3600 stale-while-revalidate180 } ] })其中cacheControl直接对应网关侧的边缘缓存头策略与上文isRequestPubliclyCacheable的判定配合生效而examples中的promptargs组合则用于市场页的可运行示例展示。examples/目录下还有 github、search、xmcp 等更多样例可对照阅读。五、网关侧一个请求如何被处理消费侧看到一行代码的背后是 apps/gateway 中这条精心组织的请求管线值得逐段拆解1. 中间件层app.tsonError统一错误处理 →sentry()异常上报Worker 入口 worker.ts 还负责环境校验非法环境直接返回 500→cors()跨域放行Authorization与mcp-session-id头允许 GET/POST/DELETE/OPTIONS→responseTime响应耗时统计。2. 边缘请求解析resolveEdgeRequest先把 URL 解析为部署 模式MCP 模式则继续走resolveMcpEdgeRequest把解析结果挂到executionCtx.props随后整个请求被转交给 Durable Object 上的 MCP 服务器处理——这解释了为何worker.ts需要导出DurableMcpServerMCP 的会话状态session需要被持久化对象持有而不是无状态 Worker 实例。3. HTTP 工具调用路径resolveHttpEdgeRequest解析出消费者与工具调用参数参数从请求提取的逻辑在 get-tool-args-from-request.ts→resolveOriginToolCall真正调用源服务OpenAPI 源会经 create-http-request-for-openapi-operation.ts 构造 HTTP 请求MCP 源的响应则经 transform-http-response-to-mcp-tool-call-response.ts 反向整形→ 若源是 MCP 而调用方要的是 REST 语义则由createHttpResponseFromMcpToolCallResponse把 MCP 工具调用响应转成 HTTP 响应——这正是 README 所说的HTTP 与 MCP 兼容层的具体落点。4. 后处理与计费updateResponse负责附加限流响应头、写入x-origin-response-time源服务耗时、覆写server: agentic并剥离 Cloudflare 附加头finally块中的recordToolCallUsage保证用量记录在成功与失败路径上都执行。这一整套解析 → 调用 → 整形 → 限流 → 计费的链路恰好对应发布文档中网关处理鉴权、计费、限流、缓存、用量跟踪、版本管理的承诺且每个环节都能在源码中找到对应文件而非纸面特性。六、消费侧主流 TS LLM SDK 的一行式接入README 声明 Agentic 对六大 TS LLM SDK 提供一等支持仓库stdlib/目录一一对应SDK适配器包文档Vercel AI SDKstdlib/ai-sdkdocs/marketplace/ts-sdks/ai-sdk.mdxOpenAIChat / Responses见stdlib与 examplesopenai-chat.mdx、openai-responses.mdxLangChainstdlib/langchainlangchain.mdxLlamaIndexstdlib/llamaindexllamaindex.mdxFirebase Genkitstdlib/genkitgenkit.mdxMastrastdlib/mastramastra.mdx以 AI SDK 为例接入一个托管项目只需import { createAISDKToolsFromIdentifier } from agentic/ai-sdk // 使用项目标识符自动解析 latest 版本 const tools await createAISDKToolsFromIdentifier(agentic/search) // 也可直接传入本地 AIFunctionLike 工具对象 const localTools createAISDKTools(myAgenticFn)底层机制ai-sdk.tsAgenticToolClient.fromIdentifier先按标识符解析出该项目/部署的完整工具清单含规格与鉴权createAISDKTools再将其映射为tool({ description, parameters, execute })数组——parameters优先保留 Zod Schema 原貌否则经asAgenticSchema(...).jsonSchema转换为标准 JSON Schema。除 SDK 路线外MCP 客户端路线Cursor、Claude Code、Claude Desktop、Cline、Raycast、Trae、VS Code、Warp、Windsurf 共九种的接入说明见 docs/marketplace/mcp-clients/ 目录下各文件。七、本地开发与验证由于项目 100% 开源完整本地跑通是理解这套架构的最短路径。前置条件contributing.mdnode 22、pnpm 10.12.4apps/api需要 PostgreSQL连接串存于DATABASE_URL用pnpm drizzle-kit push初始化。主要命令pnpm dev # 启动全部服务开发模式 pnpm build # 构建所有包与 app不含网站 pnpm test # build format lint typecheck unit不含 e2e pnpm test:unit # 仅跑 Vitest 单元测试 pnpm fix # 自动修复格式与 lint pnpm run docs # 本地启动 Mintlify 文档服务器 # 端到端测试在 apps/e2e 目录 pnpm e2e # 全部 E2E pnpm e2e-http # HTTP 边缘 E2E pnpm e2e-mcp # MCP 边缘 E2E运行后端还需配置 Stripe、GitHub OAuth App、Resend、Sentry 的环境变量各 app 的.env.example中有文档。数据库核心实体五件套User、Team、Project由不可变 Deployment 组成的命名空间化产品、Deployment含网关与计费配置、Consumer订阅与用量。八、适用前提与边界归档状态项目已于 2026 年 2 月归档不再积极开发。阅读其价值在于架构参考HTTP↔MCP 兼容层、TS AI 函数 stdlib、跨 LLM 库兼容方案而非寻找持续维护的托管服务源服务器硬性要求MCP 源必须支持 Streamable HTTP 传输且为 httpsOpenAPI 源仅支持 3.x 规格计费与限流的默认值未配置pricingPlans时默认为免费计划未配置defaultRateLimit时默认每客户 1000 请求/分钟——开发测试时这两个默认值会让先跑起来非常顺滑版本语义项目标识符namespace/slug解析latest部署标识符锁定具体版本/previewsemver 管理工具版本演进。综上Agentic 用一份声明式配置agentic.config.ts、一个 Cloudflare Worker 网关apps/gateway、一套共享类型与校验包packages/和一批薄 SDK 适配器stdlib/把把一个远端 API 变成可收费的 LLM 工具这件事压缩到了工程上相当紧凑的形态。其 HTTP↔MCP 双向整形、Durable Object 承载 MCP 会话与持久限流、以及项目/部署两级版本化的设计对任何想自建工具网关的团队都有直接可借鉴的实现路径。【免费下载链接】agenticYour API ⇒ Paid MCP. Instantly.项目地址: https://gitcode.com/GitHub_Trending/ag/agentic创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表