Agentic `@agentic/platform` SDK 详解:从 `defineConfig` 到配置解析流水线,写一份类型安全的 `agentic.config.ts`

发布时间:2026/9/13 16:42:53

Agentic `@agentic/platform` SDK 详解:从 `defineConfig` 到配置解析流水线,写一份类型安全的 `agentic.config.ts` Agenticagentic/platformSDK 详解从defineConfig到配置解析流水线写一份类型安全的agentic.config.ts【免费下载链接】agenticYour API ⇒ Paid MCP. Instantly.项目地址: https://gitcode.com/GitHub_Trending/ag/agenticagentic/platform是 Agentic 平台面向开发者的公开 SDK其核心职责是让你以完全类型安全、可自动补全的方式定义项目配置agentic.config.ts并在加载、校验与解析阶段把一份原始配置变成可供 API 网关使用的已解析配置。读完本文你将掌握该 SDK 的完整导出 API、agenticProjectConfigSchema中每个配置项的取值约束与默认值、mcp/openapi/raw三种 origin 适配器的差异以及配置从文件加载到解析落地的完整内部流水线。一、包定位与安装根据 packages/platform/readme.md该包定位是 Public SDK for developers building on top of the Agentic platform在 Agentic 平台上构建应用的公开 SDK安装方式npm i agentic/platform从 packages/platform/package.json 可以确认几个工程事实与适用前提当前版本8.4.4运行时要求node 18包类型为 ESMtype: modulesideEffects: false许可证为 AGPL-3.0它依赖同仓库内的四个包agentic/platform-core、agentic/platform-openapi-utils、agentic/platform-types、agentic/platform-validators以及modelcontextprotocol/sdk用于连接 MCP 源服务器、unconfig用于多格式配置文件加载、mrmime、semver。入口文件 的公共导出只有六行也就是全部 API 表面export * from ./define-config export * from ./load-agentic-config export * from ./resolve-agentic-project-config export type * from ./types export * from ./validate-agentic-project-config export { defaultFreePricingPlan } from agentic/platform-types即defineConfig、loadAgenticConfig、resolveAgenticProjectConfig、validateAgenticProjectConfig四个函数加上UploadFileUrlToStorageFn类型与重新导出的defaultFreePricingPlan常量。二、defineConfig定义一份类型安全的项目配置readme 中给出的核心用法是agentic/platform的主导出是defineConfig(...)用于在agentic.config.ts中以完整类型安全和自动补全的方式配置 Agentic 项目。官方示例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 } })仓库内的实际 fixture 与之一致见 fixtures/valid/basic-mcp/agentic.config.tsimport { defineConfig } from agentic/platform export default defineConfig({ name: Test Basic MCP, origin: { type: mcp, url: https://agentic-basic-mcp-test.onrender.com/mcp } })defineConfig的 实现 本身很薄export function defineConfig( config: AgenticProjectConfigInput ): AgenticProjectConfig { return parseAgenticProjectConfig(config) }它接收AgenticProjectConfigInput类型获得完整补全并调用parseAgenticProjectConfig做基础校验后返回。也就是说defineConfig在模块加载时就会用 Zod schema 对配置做一次即时校验——配置写错会在导入agentic.config.ts时立即失败而不是拖到部署时。2.1 配置项完整参考所有字段的约束与默认值定义在 packages/types/src/agentic-project-config.ts 的agenticProjectConfigSchema第 36–251 行中字段类型必填默认值 / 约束说明namestring是最长 1024 字符项目显示名称slugstring否缺省时由nameslugify 得到仅小写 ASCII、kebab-case、1–256 字符项目全限定标识为namespace/slugnamespace 来自作者的 username 或 team slugversionstring否—语义化版本semver字符串如1.0.0descriptionstring否—简短描述建议不超过几行readmestring否—Markdown 文档支持 GitHub-Flavored Markdown取值可以是远程 URL、本地文件路径或>export function parseAgenticProjectConfig( inputConfig: unknown, { strip false, strict false }: { strip?: boolean; strict?: boolean } {} ): AgenticProjectConfig默认对agenticProjectConfigSchema做普通解析该 schema 本身已调用.strip()未知字段会被静默丢弃传strip: true时显式使用.strip()传strict: true时使用.strict()出现未知字段即报错解析前经过pruneUndefined来自agentic/platform-core剥离undefined字段解析失败抛出带statusCode: 400的错误。同文件还导出parseResolvedAgenticProjectConfig用于解析已解析配置见第五节。三、origin三种源服务器适配器origin是配置中唯一的必填核心字段用于声明 Agentic API 网关下游的源 API 服务器它既指定源服务器是自托管还是托管在 Agentic 基础设施内也指定源工具的格式MCP 服务器或 OpenAPI 规范。从 schema 注释可以推断当前仅支持外部源服务器——若想托管在 Agentic 基础设施内需要联系其官方支持。分派逻辑在 resolveOriginAdapter先调用validateOriginUrl校验origin.url为合法的 https URL按origin.type分派openapi→resolveOpenAPIOriginAdapter实现文件借助agentic/platform-openapi-utils从 OpenAPI 规范推导工具列表mcp→resolveMCPOriginAdapter实现文件以slug作为 server name、version缺省0.0.0连接远程 MCP 服务器获取工具raw→ 不做工具推导原样返回 origin 配置其他值直接以 400 报错。仓库中fixtures/valid/下的样例覆盖了这些分支basic-mcpMCP 源、basic-openapiOpenAPI 源附带jsonplaceholder.json规范文件、basic-raw-free-json/basic-raw-free-tsraw 源、everything-openapi完整 OpenAPI 规范推导工具。非法场景也各有对应用例如fixtures/invalid/invalid-origin-url-0至invalid-origin-url-3验证 URL 校验规则。官方发布文档中各指南与源码分支一一对应MCP 服务器、OpenAPI 服务 等完整的端到端流程见 Quick Start。四、配置加载loadAgenticConfig与校验流水线当 CLI 或平台侧需要从磁盘读取配置时使用 loadAgenticConfigexport async function loadAgenticConfig({ cwd }: { cwd?: string } {}) { const { config } await loadConfig({ cwd, sources: [ { files: agentic.config, extensions: [ts, mts, cts, js, mjs, cjs, json] } ] }) return validateAgenticProjectConfig(config, { cwd }) }两点值得注意文件定位由unconfig完成文件名固定为agentic.config扩展名支持.ts/.mts/.cts/.js/.mjs/.cjs/.json——这解释了仓库中为什么同时存在agentic.config.ts多数 fixture与agentic.config.json如 fixtures/valid/basic-raw-free-json、fixtures/invalid/invalid-origin-url-2/agentic.config.json两种写法加载到对象后直接交给validateAgenticProjectConfig因此加载与校验是同一条链路。validateAgenticProjectConfig 的内部顺序是parseAgenticProjectConfig(inputConfig, { strip, strict: !strip })——默认非 strip 模式即严格模式未知字段报错resolveMetadata(config)得到slug与versionslug 缺省时从 name 推导version 缺省时回退默认值validatePricing(config)校验定价配置规则在 validate-pricing.tsvalidateMetadataFiles(config, opts)解析并校验 readme / icon 文件支持本地路径、远程 URL、data-uri实现见 validate-metadata-file.tsvalidateOriginAdapter(...)校验源适配器配置最后把slug、version、readme、icon、origin合并回配置再做一次 schema 解析返回最终的AgenticProjectConfig。单测与快照见 load-agentic-config.test.ts 及其 快照文件。五、配置解析resolveAgenticProjectConfig与 Resolved 配置校验产出的是合法的项目配置而真正供网关消费的是已解析配置Resolved 配置resolveAgenticProjectConfig 在parseAgenticProjectConfig之后依次执行resolveMetadata→ 得到slug、versionvalidatePricingresolveMetadataFiles→ 把本地 readme / icon 实际读入并上传得到readme字符串与iconUrlresolveOriginAdapter→ 得到最终的origin对象与推导出的tools数组用parseResolvedAgenticProjectConfig组装ResolvedAgenticProjectConfigvalidateTools交叉校验tools与toolConfigs的一致性。Resolved 配置与原始配置的差异体现在 resolvedAgenticProjectConfigSchemaslug变为必填、icon被移除并替换为iconUrl已上传后的 URL、origin换为解析后的originAdapterSchema、并新增tools数组默认[]。resolveAgenticProjectConfig的opts中需要传入uploadFileUrlToStorage即UploadFileUrlToStorageFn签名(source: string) Promisestring定义在 packages/platform/src/types.ts用于把本地文件上传为存储 URL——这也解释了为什么该函数只在具备存储能力的环境中如 CLI 发布流程、API 服务端被调用而不是在本地defineConfig阶段。六、开发、测试与许可在 packages/platform 目录下脚本与行为对应关系为buildtsup构建发布产物只包含dist/test串联test:*即先tsc --noEmit类型检查再vitest run跑单测本地开发直接暴露./src/index.ts作为 entryexports: { .: ./src/index.ts }无需先构建即可被 workspace 内其他包引用。该包以 AGPL-3.0 许可发布readme 与 license 说明 一致。七、小结agentic/platform的 API 面很小但链路完整defineConfig导入期类型安全定义 即时校验→loadAgenticConfigunconfig 多格式加载 严格校验→resolveAgenticProjectConfig元数据推导、定价校验、文件上传、origin 适配与工具推导。对使用者而言日常只需要defineConfig与agentic.config.ts需要深入排错时上文各节给出的 schema 定义、校验函数与 fixture 目录fixtures/valid、fixtures/invalid就是逐层定位问题的准确入口。【免费下载链接】agenticYour API ⇒ Paid MCP. Instantly.项目地址: https://gitcode.com/GitHub_Trending/ag/agentic创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/13 16:42:53

大数据需求挖掘与数据服务优化实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/13 16:42:53

SpringBoot集成Freemarker工程化实践指南

简介:本资源是一套完整的SpringBoot集成Freemarker实战项目源码包,面向Java Web开发初学者与中级工程师,解决模板引擎在现代Spring生态中快速落地与深度配置的常见痛点。压缩包共275个文件,涵盖82个Freemarker模板(.ft…

2026/9/13 16:42:53

MATLAB图像解密与程序保护实战指南

简介:本资源是一套面向MATLAB初学者及进阶开发者的图像解密与程序加密实践项目,聚焦信息安全基础场景中的算法实现与代码保护需求,适用于课程设计、毕业设计或密码学入门实验。压缩包共3个文件(2个核心M函数脚本 1张说明性JPG图&…

2026/9/13 17:27:55

Qt和SQL开发教室管理系统:项目实现与部署指南

简介:基于QT与SQL数据库开发的教室管理系统源码包,面向计算机相关专业学生及有Qt开发基础的学习者,适合作为课程大作业、毕业设计或数据库课程综合项目的参考样板。系统围绕教室资源管理设计,涵盖教室信息维护、空教室查询、预约与…

2026/9/13 17:27:55

油藏数值模拟中的IMPES方法原理与MATLAB实现

1. 油藏数值模拟中的两相流动问题本质 在地下油气藏开发过程中,流体流动行为直接影响着采收率预测和开发方案制定。两相流动(通常指油水两相或油气两相)的模拟计算,需要同时考虑质量守恒方程、动量守恒方程以及相间相互作用力。这…

2026/9/13 17:22:55

卡尔曼滤波动态价差追踪:gs-quant 十分钟回测指南

卡尔曼滤波动态价差追踪:gs-quant 十分钟回测指南 【免费下载链接】gs-quant Python toolkit for quantitative finance 项目地址: https://gitcode.com/GitHub_Trending/gs/gs-quant 2024年5月13日,豆粕-菜粕价差一周内从 287 元/吨跳到 412 元&…

2026/9/13 0:01:16

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/13 0:01:16

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/12 6:29:36

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/12 14:32:17

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/13 11:18:28

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码