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

发布时间:2026/11/5 15:40:28

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/11/1 23:53:57

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

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

2026/11/2 2:55:55

SpringBoot集成Freemarker工程化实践指南

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

2026/11/4 12:25:22

ESP32-P4:RISC-V双核如何重塑AIoT边缘计算架构

1. 项目概述:为什么ESP32-P4不是“又一款ESP芯片”,而是AIoT开发范式的切换点 我第一次拿到ESP32-P4的工程样片时,没急着烧录固件,而是把它放在显微镜下看了十分钟——不是看封装,是看它引脚定义里那个被标为“AI Core…

2026/11/5 15:00:49

基于Hadoop+Spark的民宿智能推荐系统设计与实现

1. 项目概述:大数据时代的民宿智能推荐这个毕业设计项目融合了当前大数据领域最主流的技术栈,构建了一个完整的民宿推荐系统解决方案。作为一名长期从事大数据系统开发的工程师,我认为这个选题非常贴合实际应用场景——随着旅游业的复苏和共享…

2026/11/5 14:10:30

ADS122U04IPWR+STM32F427ZI工业级温度测量信号链设计

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

2026/11/5 14:10:30

UART接口24位ADC搭配RS485,解决远距离温度监控难题

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

2026/11/5 14:10:30

UART接口24位ADC搭配PIC18F46K22的RTD与热电偶测温实践

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

2026/11/5 13:55:19

GD32E10x官方例程入门:从GPIO点灯到串口调试

简介:这份GD32E10x系列官方例程面向嵌入式硬件与单片机开发者,基于ARM Cortex-M3内核,汇集兆易创新GD32E10x的示例代码,适合工业控制、消费电子、通信设备等场景的学习、验证与二次开发。压缩包共935个文件,约11.16MB&…

2026/11/5 13:50:18

基于Django的运维平台实战:资产、发布、巡检、告警一体化

简介:这份资源是一套基于Django框架开发的运维平台源码,面向具备Python基础、希望了解Web运维系统实现思路的开发者与运维人员,可用于学习主机管理、服务监控、日志查看、任务调度、权限控制、资源统计、脚本执行与故障告警等常见运维模块的落…

2026/11/5 15:39:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

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

2026/11/5 0:02:07

多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中…

2026/11/5 0:02:07

大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#…

2026/11/5 0:02:07

鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的…

2026/11/5 15:39:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

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

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

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

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