)
Monid连接器教程6步把你自己的API发布成Agent工具附exa参考实现【免费下载链接】monidMonid - OpenRouter for agent tools. Join our community at https://discord.gg/rQzztcgJV8项目地址: https://gitcode.com/gh_mirrors/mo/monidMonid 是一个面向 AI Agent 的工具聚合平台OpenRouter for agent tools一个地址、一把密钥Agent 就能调用 2000 工具。而本仓库 monid 就是它的连接器Connector层你用声明式 TypeScript 描述自己的 API它就能被所有 Agent 发现和调用。本教程以官方参考实现 exa 连接器为样板手把手教你 6 步完成发布。一、先搞懂Monid 连接器是什么 一句话连接器 一份声明式的 API 说明书描述“怎么调用、接受什么输入、返回什么、如何计费”。它不是传统意义的客户端代码没有适配器、没有执行分支。Agent 使用平台只需三个动词前两个免费动词含义费用discover按“任务是什么”在全目录中检索端点免费inspect查看输入 schema、价格与文档免费run执行并结算用量按次计费你要写的每一个端点都会进入discover的检索范围被平台上的每个 Agent 看到。二、6 步发布你自己的 API第 1 步准备环境并克隆仓库只需 Denogit clone https://gitcode.com/gh_mirrors/mo/monid cd monid deno task check deno task test # 类型检查 188 个回放测试零网络仓库目录约定非常简单详见 README.md 的 Quickstartconnectors/你的项目名/ ├── provider.ts # 声明身份、鉴权、计费 ├── schema/ # 多端点共享的 zod 片段可选 └── endpoints/端点名/ ├── endpoint.ts # 声明请求与输入 schema ├── schema/inputs.ts # 仅本端点使用的请求 schema ├── endpoint.test.ts # 回放测试 受门控的 live 测试 └── fixtures/*.json # 录制下来的真实响应第 2 步精读 exa 参考实现 官方指定的参考实现是 connectors/exa/ —— 一个“AI 原生网页搜索”API 的完整连接器建议按顺序读四个文件connectors/exa/provider.ts —— 声明name、meta展示名、摘要、描述、分类、authpresets.auth.header(x-api-key)一行搞定请求头注入、request.baseUrl、超时和计费模型connectors/exa/endpoints/search/schema/inputs.ts —— 用 zod 逐字段镜像 Exa 官方文档query、type、numResults等每个字段带describe()说明connectors/exa/endpoints/search/endpoint.ts —— 声明meta.description、requestPOST /search、输入默认值和usage基础费 超量结果的组合计费connectors/exa/endpoints/search/endpoint.test.ts —— 基于 fixture 的回放测试CI 不需要任何厂商密钥。 官方建议把 AGENT.md、你自己的 API 文档和connectors/exa/一起交给编码 Agent它可以直接产出 provider、schema 和测试。第 3 步写 provider.ts 声明你的服务商骨架只有 10 行左右核心字段如下export default defineProvider({ name: myapi, meta: { displayName: MyAPI, summary: ..., categories: [web-search] }, auth: { inject: presets.auth.header(X-API-Key) }, request: { baseUrl: https://api.myapi.com }, usage: { model: { kind: UsageModelKind.PER_CALL } }, // 免费/按次/按量 });三个关键决策分类必须来自 connectors/categories.ts 的封闭词表web-search、web-scraping、company-enrichment等未知 id 会直接编译失败鉴权用presets.auth预设header/bearer无需手写计费模型usage.model声明“怎么算钱”FREE永不计费、PER_CALL固定按次、PER_UNIT按量每千字符、每秒视频……。第 4 步写 endpoint.ts 定义端点 ⚡端点 id 由路径推断provider#endpoint你需要声明request方法 路径如POST /searchinput.schema绑定第 3 步风格的 zod 请求体可在此处补上厂商默认值timeouts请求与整体运行的超时。最重要的一条写作建议来自 README.md把meta.description写得像产品文案因为对 Agent 来说它就是产品。它决定了discover如何为你排序、inspect返回什么。exa 的做法值得抄不仅说明“能做什么”还写明“不做什么”、以及“什么场景该去用哪个端点”。第 5 步录制 fixture 并通过本地测试 ✅export MYAPI_CREDENTIALS_API_KEY... # 环境变量约定PROVIDER_CREDENTIALS_FIELD deno task record myapi#search ... # 录制真实响应为 fixture自动脱敏裁剪 deno task check deno task test # 必须零网络通过 deno task engine:run myapi#search --body {...} # 用你自己的密钥真实跑一次测试全部从 fixture回放所以 CI 不需要厂商密钥live 测试只在环境变量中存在凭据时运行否则自动跳过。exa 的 connectors/exa/endpoints/search/fixtures/ 里只有两个文件happy.jsonprovider-error.json就覆盖了成功与 401 两条链路——fixture 保持精简是硬要求。第 6 步提交 Pull Request 提交前自查清单deno task check deno task test无网络通过分类 id 在 connectors/categories.ts 词表内fixture 已裁剪体积有 lint 上限32 KiB 警告 / 128 KiB 失败若需新增分类在同一 PR 里修改词表文件。合并后你的端点立即进入discover成为平台上所有 Agent 的候选工具。三、幕后原理从你的文件到一次调用选读你写的 TypeScript 定义会被编译器编译成纯 JSON 的EndpointDoc函数替换为内容哈希引用再链接成“密封单元”交给引擎执行。同一条流水线同一份产物跑三种方式本地你自己的密钥、CIfixture 回放零网络、托管平台凭据在传输层内部注入永不进入引擎进程。每次调用的固定管线校验输入 → 构造请求 → 传输层注入凭据 →在原始响应上先结算用量账单锚定在网络上真实返回的数据→ 映射输出。厂商的 4xx/5xx 被视为“数据”而非异常——运行完成、结算为 0 用量。更多细节见 DEVELOPMENT.mdhooks、编译器、计费、CLI 参考与 openspec/changes/ 下的决策记录。四、新手常见问题 Q我完全没写过连接器工作量有多大Aexa 连接器 1 个 provider.ts 每个端点约 4 个文件。声明式格式意味着没有客户端、没有适配层编码 Agent 可以代写你负责审阅“它是否如实描述了我的 API”。Q多密钥的 API 怎么配A每个凭据字段对应一个环境变量如两把密钥的写法参照 connectors/contactout/CONTACTOUT_CREDENTIALS_WORK_API_KEY/..._PERSONAL_API_KEY。Q异步任务型 API提交后轮询怎么办A平台有 async run 协议用lifecycle.start/poll/stop三个 hook 描述提交、轮询、停止参考 connectors/firecrawl/ 等带lifecycle.test.ts的实现设计文档见 openspec/changes/add-async-run-protocol/design.md。Q如何验证自己的端点写对了Adeno task catalog inspect myapi#search打印该端点的完整契约deno task engine:estimate直接输出预估用量。写在最后从你的 API 文档到全平台 Agent 可调用路径就是这 6 步克隆 → 读 exa → 写 provider → 写 endpoint → 录 fixture 过测试 → 提 PR。整个契约写在 README.md 与 DEVELOPMENT.md参考实现在 connectors/exa/。今天就动手让你的 API 成为 Agent 的下一个工具。【免费下载链接】monidMonid - OpenRouter for agent tools. Join our community at https://discord.gg/rQzztcgJV8项目地址: https://gitcode.com/gh_mirrors/mo/monid创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考