当前位置: 首页 > news >正文

Executor TypeScript SDK实战:用createExecutor在代码中嵌入AI Agent集成层

Executor TypeScript SDK实战:用createExecutor在代码中嵌入AI Agent集成层

【免费下载链接】executorThe missing integration layer for AI agents. Let them call any OpenAPI / MCP / GraphQL / custom js functions in secure environment.项目地址: https://gitcode.com/gh_mirrors/executor14/executor

Executor 是面向 AI Agent 的开源集成层(Integration Layer),而它的 TypeScript SDK@executor-js/sdk让你可以用几行代码,在自己的 Node.js 应用中直接创建 Executor 实例:通过createExecutor一次性接入 MCP 服务器、OpenAPI 接口、GraphQL API,统一管理密钥与工具策略,并让 AI Agent 在沙箱中安全地调用它们。

为什么需要 Executor 集成层 🧩

大多数 MCP 客户端(Claude Code、Cursor、ChatGPT 等)都要各自重复配置同一套集成:同样的 API Key 粘贴三遍、同一个 MCP 服务器反复接线,而且没有任何共享的权限概念。

Executor 解决的就是这个问题:集成加一次、凭证配一次、策略设一次,所有 Agent 共享同一个工具目录

它的核心能力:

  • 任意集成类型:一等支持 MCP、OpenAPI、GraphQL、Google Discovery
  • 策略治理:每个工具可以"总是允许 / 需审批 / 禁用"
  • 嵌入即用:通过 TypeScript SDK 直接跑在你自己的代码里,无需依赖任何服务

如何安装 Executor TypeScript SDK

SDK 包名为@executor-js/sdk,支持 npm / bun / pnpm 任选:

npm install @executor-js/sdk # 按需搭配插件 npm install @executor-js/plugin-mcp @executor-js/plugin-openapi @executor-js/plugin-graphql

源码位于 monorepo 的packages/core/sdk/,快速上手示例见examples/promise-sdk/src/main.ts,完整说明见packages/core/sdk/README.md

💡 SDK 提供两个入口:@executor-js/sdk(Promise 风格,面向使用者)和@executor-js/sdk/core(Effect 风格,面向插件作者)。普通用户只需要前者。

createExecutor:5 行代码创建 AI 集成层

核心 API 只有一个函数:createExecutor。它返回一个基于内存存储的 executor 实例(默认 scope 为default-scope):

import { createExecutor } from "@executor-js/sdk"; const executor = await createExecutor({ // 工具执行中需要用户输入时如何响应; // "accept-all" 表示自动通过,适合脚本与自动化场景 onElicitation: "accept-all", }); const tools = await executor.tools.list(); console.log(`scope=${executor.scopes[0]!.id} tools=${tools.length}`); await executor.close();

不传插件时,它没有任何工具——但整套 API 面(tools / connections / secrets / scopes)都在,装上插件后即自动生效。

调用工具同样简单:

const target = (await executor.tools.list())[0]; if (target) { const result = await executor.tools.invoke(target.id, { /* 参数 */ }); }

接入 MCP / OpenAPI / GraphQL 三类集成

以官方示例examples/promise-sdk/src/main.ts为蓝本,一个 executor 可以同时挂载三类集成:

import { createExecutor } from "@executor-js/sdk/promise"; import { mcpPlugin } from "@executor-js/plugin-mcp/promise"; import { openApiPlugin } from "@executor-js/plugin-openapi/promise"; import { graphqlPlugin } from "@executor-js/plugin-graphql/promise"; const executor = await createExecutor({ plugins: [mcpPlugin(), openApiPlugin(), graphqlPlugin()], onElicitation: "accept-all", });

MCP 远程服务器——注册后建立连接即可:

await executor.mcp.addServer({ transport: "remote", name: "Context7", endpoint: "https://mcp.context7.com/mcp", slug: "context7", });

OpenAPI 规范——直接通过 URL 加载,凭证按请求时注入而非写死在 spec 里:

await executor.openapi.addSpec({ spec: { kind: "url", url: "https://petstore3.swagger.io/api/v3/openapi.json" }, slug: "petstore", baseUrl: "https://petstore3.swagger.io/api/v3", });

GraphQL——自动完成 schema 内省:

await executor.graphql.addIntegration({ endpoint: "https://graphql.anilist.co", name: "AniList", slug: "anilist", });

三类插件的工具最终汇入同一个目录,用统一的tools.list()/execute()接口访问,工具地址形如tools.<集成>.<工具名>——调用方完全不用关心工具来自哪个协议。

沙箱执行:让 AI 生成的代码安全调用工具

把 executor 交给 LLM 时,最稳妥的方式不是让它直接调用宿主 API,而是把生成的代码丢进沙箱。这正是@executor-js/execution干的事:

import { createExecutionEngine } from "@executor-js/execution"; import { makeQuickJsExecutor } from "@executor-js/runtime-quickjs"; const engine = createExecutionEngine({ executor, codeExecutor: makeQuickJsExecutor({ timeoutMs: 2_000, memoryLimitBytes: 32 * 1024 * 1024, }), }); const result = await engine.execute(` const pets = await tools.petstore.findPetsByStatus({ status: "available" }); return pets.length; `); // { result: 12, logs: [...] }

沙箱内拿到的是一个tools.<命名空间>.<工具名>(...)代理,支持超时与内存限制;遇到 OAuth、审批等需要用户输入的工具时还能暂停(executeWithPause)后恢复。源码在packages/core/execution/,QuickJS 运行时在packages/kernel/runtime-quickjs/

密钥管理:选一个 Secrets 插件

集成需要 API Token 时,不要让密钥出现在配置文件里——把它存进 Secret Provider,插件按 ID 解析:

插件适合场景
plugin-file-secrets本地 JSON 文件,开发最简单
plugin-keychain操作系统钥匙串
plugin-onepassword1Password 团队库

用法(以内存/文件方案为例,详见packages/plugins/file-secrets/README.md):

await executor.secrets.set({ id: "github-token", name: "GitHub Token", value: "ghp_...", scope: executor.scopes[0]!.id, });

下一步:去哪里看更多资料

  • SDK 完整 API 说明:packages/core/sdk/README.md
  • 端到端可运行示例:examples/promise-sdk/src/main.ts(配合examples/promise-sdk/package.json一键跑通)
  • 沙箱执行引擎:packages/core/execution/README.md
  • 官方文档站点源码:apps/docs/

Executor SDK 目前处于 pre-1.0 阶段(MIT 协议),API 可能随版本演进。但createExecutor+ 插件化 + 沙箱执行的这套骨架已经非常清晰——想在自己的产品里嵌入一个"AI Agent 集成层",现在动手正是好时机。🚀

【免费下载链接】executorThe missing integration layer for AI agents. Let them call any OpenAPI / MCP / GraphQL / custom js functions in secure environment.项目地址: https://gitcode.com/gh_mirrors/executor14/executor

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.cnnetsun.cn/news/4197963.html

相关文章:

  • 搞定依赖冲突:Uv2nix对conflicts冲突依赖组的深度支持
  • 100-刻意练习的未来
  • 数学建模竞赛高阶备赛指南:从系统化训练到72小时实战全流程
  • notepad-- 在 macOS 上怎么跑起来:编码、查找、对比一次讲清
  • 如何流畅绘制10万张以上图片:PixPlot的cell_size参数调优完整教程
  • Kubetap 集群内运行完整指南:以 Pod 或 Docker 注入 Kubernetes Service 代理的最佳实践
  • IDEA框架:通过效果对齐解决多智能体仿真到现实迁移的动力学不匹配难题
  • 知网二代AI率大面积标红用什么工具,BunnyScholar与清降AI对比
  • 为什么你下载的“Avast破解版“很可能是木马:拆解 Avast-Cracked-Software-Free-Download 仓库的 5 个危险信号
  • JAR如何自动识别当前平台?wasmer-java原生库自加载机制完整剖析
  • 一键备份QQ空间历史说说:GetQzonehistory 完整使用教程
  • 基于SpringBoot的仓库租赁管理系统(源代码+文档+PPT+调试+讲解)
  • G-Helper 调校指南:华硕笔记本 5 分钟上手,彻底告别 Armoury Crate
  • Fillinger随机填充脚本快速上手:5分钟把上百个元素自动铺满任意形状
  • MarkItDown 文档转换实战指南:把 PDF、Word、Excel 变成大模型能读的 Markdown
  • awesome-buggy-erc20-tokens 完全入门指南:一站看懂 32 类 ERC20 合约漏洞与上千个问题代币
  • SwiftOpenAI Response API实战:比Chat Completions更强大的新一代API
  • 暗黑破坏神2角色存档编辑器 Diablo Edit2:免费保姆级教程,从编译到改档全流程
  • 法律AI应用实战:构建安全可靠的合同审查辅助系统
  • nvim-lspconfig Vue 语言服务器完整配置指南:vue_ls 与 vtsls 双服务器 3 场景实战
  • Hedge-Bench:金融智能体的硬核推理基准与实战构建指南
  • go-patterns责任链与中介者模式实战:解耦请求处理与组件通信的2个技巧
  • Lumi原理剖析:Python内省机制如何让函数自动映射为API参数?
  • Chatbox 启动教程:3 分钟搞定 npm 配置与桌面端运行
  • 3步搞定手柄键盘映射:AntiMicroX快速上手指南
  • 从树叶分类到特征工程:经典数学建模案例中的图像识别实战
  • SpaceFM|给 Linux 桌面装上一套多面板文件引擎
  • Arnis 实操教程:把真实城市搬进 Minecraft
  • Llama 3 权重下载完整指南:官方脚本与 Hugging Face 双渠道实操
  • QModMaster:免费完整的Modbus调试工具,新手5分钟连上第一台设备