
composio/slimComposio TypeScript SDK 的轻量化构建包完整指南【免费下载链接】composioComposio powers 1000 toolkits, tool search, context management, authentication, and a sandboxed workbench to help you build AI agents that turn intent into action.项目地址: https://gitcode.com/GitHub_Trending/co/composiocomposio/slim是 Composio 为 TypeScript 核心 SDK 提供的一种轻量化发行形态它与composio/core共享同一份编译产物与类型声明API 完全一致但不再把 TypeScript 源码src/和 SDK 文档docs/打包进 npm 包从而显著缩小安装体积。本文以 ts/packages/slim/README.md 为主体结合 slim 包的 package.json、构建脚本与产物结构 以及 core 包的 README讲清楚 slim 包的来龙去脉、安装方式、API 用法、产物构成与选型建议让读者能够在生产项目中放心使用体积更小的 Composio SDK。为什么会有 slim 版本可检查性与安装体积的权衡理解composio/slim之前先要理解它的对照物composio/core的设计取舍。根据 ts/packages/core/README.md 的说明core 包有意将 TypeScript 源码和 SDK 文档一并发布到 npm 包中目的是让编码型 Agentcoding agents和人类开发者可以直接在node_modules里检查、调试 SDK 的内部实现无需额外跳转到源码仓库。这种开箱即可检查的设计会直接转化为安装体积成本源码文件、文档 Markdown 都会被下载到每个消费者的依赖目录中。从两个包的package.json的files字段可以清楚看到差异composio/corets/packages/core/package.json发布README.md、docs、dist、generated、src五个条目composio/slimts/packages/slim/package.json只发布README.md、dist、generated三个条目不含src/与docs/。因此composio/slim的定位非常明确发布与 core 相同的运行时与类型产物但去掉打包进来的源码和文档目录让安装更小、行为完全一致。它是为那些不需要在 node_modules 里读源码、只想要更小安装的消费者准备的。安装与快速上手slim包的安装方式与普通 npm 包无异官方 README 推荐使用 pnpmpnpm add composio/slim安装完成后导入路径与composio/core完全同构仅包名不同import { Composio } from composio/slim; const composio new Composio({ apiKey: process.env.COMPOSIO_API_KEY });环境要求根据 slim 包的 package.json该包有以下运行时前提type: module包以 ES Module 形式分发入口为dist/index.mjs类型声明为dist/index.d.mtsengines: { node: 22.22.3 }要求 Node.js 22.22.3 及以上版本peerDependencies声明zod: 3.25.76 5使用方项目中需要自行安装满足版本范围的zod因为 SDK 的类型与 schema 处理依赖 zod 生态内部还使用了zod-to-json-schema。一分钟验证安装是否可用slim 包在 package.json 的 scripts.test 中内置了一条极简冒烟测试命令node -e import(./dist/index.mjs).then(() console.log(composio/slim import ok))它会直接动态导入dist/index.mjs若能成功加载即打印composio/slim import ok。由于包声明为 ESM验证脚本也使用import()动态导入而非require。在 monorepo 场景下turbo.json 还声明了test任务dependsOn: [build]保证测试前先构建出dist产物。API 与composio/core完全一致slim 的公开 API 是 core 的镜像。官方 README 明确指出 The API mirrorscomposio/core因此 core 文档中的全部用法都可以原样迁移到 slim。下面结合 ts/packages/core/README.md 梳理核心使用模式方便读者在换用 slim 包后无缝衔接。1. 创建会话并获取工具Composio 的核心工作流是为某个用户创建一个 session把该 session 的工具交给 Agent让 Agent 跨 1000 应用执行操作认证由平台托管import { Composio } from composio/slim; const composio new Composio({ apiKey: process.env.COMPOSIO_API_KEY }); // 每个 session 都限定在某个终端用户范围内 const session await composio.create(user_123); const tools await session.tools();默认情况下session 只会给 Agent 一组精简的 meta tools用于在运行时发现、认证和执行应用工具因此不会一次性把数百个工具定义塞进上下文。未配置 provider 时session.tools()返回 OpenAI 函数调用格式。Session 持久化在服务端。多轮对话时应保存session.sessionId并复用而不是再次调用create()const session await composio.use(sessionId);2. 接入 Agent 框架 ProviderProvider 负责把 session 工具格式化成目标 Agent 框架所需的形状并接管执行import { Composio } from composio/slim; import { OpenAIAgentsProvider } from composio/openai-agents; const composio new Composio({ provider: new OpenAIAgentsProvider() }); const session await composio.create(user_123); const tools await session.tools(); // 可直接传给 OpenAI Agents SDKComposio 提供了 OpenAI、OpenAI Agents、Anthropic、Claude Agent SDK、Vercel AI SDK、Google GenAI、LangChain、LlamaIndex、Mastra、Cloudflare Workers AI 等适配器对应仓库 ts/packages/providers 目录下的各个子包。3. 托管 MCP 端点每个 session 还暴露一个托管的 MCP 端点传入mcp: true后即可从类型中获得该端点信息并将其配置给 Claude、Cursor 或任意 MCP 客户端const session await composio.create(user_123, { mcp: true }); console.log(session.mcp.url); console.log(session.mcp.headers);4. 使用 Modifiers 拦截与改写工具行为session.tools()接受 modifiers 来变换工具 schema 或拦截执行const tools await session.tools({ modifySchema: ({ toolSlug, toolkitSlug, schema }) ({ ...schema, description: ${schema.description} (via my-app), }), beforeExecute: ({ toolSlug, toolkitSlug, params }) params, afterExecute: ({ toolSlug, toolkitSlug, result }) result, });5. 构造参数与配置项Composio构造函数接受如下配置来源ts/packages/core/README.mdinterface ComposioConfig { apiKey?: string | null; // 默认取 COMPOSIO_API_KEY baseURL?: string | null; // 自定义 API 基地址 provider?: TProvider; // Provider 适配器默认 OpenAIProvider allowTracking?: boolean; // 是否启用遥测默认 true defaultHeaders?: ComposioRequestHeaders; // 附加请求头 disableVersionCheck?: boolean; // 跳过 SDK 版本检查默认 false dangerouslyAllowAutoUploadDownloadFiles?: boolean; // 执行期间自动上传/下载文件默认 false }6. 环境变量环境变量作用COMPOSIO_API_KEYComposio API 密钥COMPOSIO_BASE_URL自定义 API 基地址COMPOSIO_LOG_LEVEL日志级别silent、error、warn、info或debugCOMPOSIO_TOOLKIT_VERSION_TOOLKIT固定某个 toolkit 的版本例如COMPOSIO_TOOLKIT_VERSION_GITHUB20250902_007. Session 之外的资源管理Composio实例还暴露composio.toolkits、composio.triggers、composio.authConfigs、composio.connectedAccounts用于在 session 之外管理各类资源。旧的直接工具执行流程composio.tools.get与composio.tools.execute仍可用但属于 legacy 用法新代码建议优先走 session。包产物与导出结构源码级解析slim 包的内容并不复杂但它的导出设计体现了对运行时平台差异的精细处理。下面逐项拆解 package.json 中的关键字段。files 白名单只有三个条目files: [ README.md, dist, generated ]发布到 npm 的只有说明文档、编译产物目录dist、以及生成目录generated。对比 core 的files多出src与docs这正是安装更小的直接来源。exports公开子路径出口exports: { .: { types: ./dist/index.d.mts, default: ./dist/index.mjs }, ./experimental: { types: ./dist/experimental/index.d.mts, default: ./dist/experimental/index.mjs }, ./platform: { ... }, ./utils/json-schema: { types: ./dist/utils/json-schema.d.mts, default: ./dist/utils/json-schema.mjs }, ./generated: { types: ./generated/index.d.ts, default: ./generated/index.js } }主入口composio/slim指向dist/index.mjscomposio/slim/experimental提供实验性 API 子路径composio/slim/platform按运行时条件分发见下文composio/slim/utils/json-schema单独暴露 JSON Schema 工具函数composio/slim/generated指向generated/目录用于承载按需生成的 toolkit 类型。imports按运行时平台的条件映射包内通过imports字段为五个内部标识符提供条件映射覆盖workerdCloudflare Workers、edge-lightEdge Runtime与node三种环境内部标识符nodeworkerd / edge-light#platform./dist/platform/node.mjs./dist/platform/workerd.mjs#files./dist/models/Files.node.mjs./dist/models/Files.workerd.mjs#file_tool_modifier./dist/utils/modifiers/FileToolModifier.node.mjs./dist/utils/modifiers/FileToolModifier.workerd.mjs#config_defaults./dist/utils/config-defaults/ConfigDefaults.node.mjs./dist/utils/config-defaults/ConfigDefaults.workerd.mjs#ssrf_guard./dist/utils/ssrfGuard.node.mjs./dist/utils/ssrfGuard.workerd.mjs从源码结构看这些.node.mjs/.workerd.mjs双份产物说明 SDK 内部在文件模型Files、文件工具 modifier、配置默认值、SSRF 防护等模块上针对 Node 与边缘运行时提供了不同实现slim 包完整继承了这一套条件导出因此它在 Serverless / Edge 场景下的行为与 core 完全等价。generated需要按需生成的占位 stubgenerated/目录在仓库中默认只是一个占位实现。查看 ts/packages/slim/generated/index.js 可以看到const ERROR_MESSAGE composio/core/generated has not been initialized. Please run \composio ts generate\ in your project to generate the toolkit types. ; export const Toolkits new Proxy( {}, { get(_, prop) { throw new Error(ERROR_MESSAGE); }, } );也就是说generated会导出一个名为Toolkits的 Proxy 占位对象任何属性访问都会抛出提示错误。真正的 toolkit 类型需要开发者在自己的项目中执行composio ts generate才会生成slim 的generated/index.d.ts对应地只声明了export declare const Toolkits: {}。这是 slim 包使用中一个值得注意的点如果用到 toolkit 类型导出请先运行composio ts generate完成初始化。构建机制slim 是如何瘦身的slim 本身几乎不编译代码而是从 core 的构建产物直接复制而来。这从 package.json 的 build 脚本可以看得很清楚rm -rf dist generated cp -R ../core/dist ./dist rm -rf dist/docs if [ -d ../core/generated ]; then cp -R ../core/generated ./generated; fi拆解这条命令清空本包旧的dist与generated把../core/distcore 包编译产物整体复制到dist删除dist/docs——这是 slim 与 core 在产物层面最核心的差异直接移除了打包进来的 SDK 文档若 core 侧存在generated目录则一并复制。因此 slim 的构建本质上是core 产物减去 docs 目录运行时与类型文件一字不差体积却因为少了文档以及发布时不包含src/而下降。core 的构建tsdown打包、typedoc生成文档在 core 包内完成见 ts/packages/core/package.jsonslim 只做复制与裁剪这也是它体积小、构建快的另一个原因。依赖方面slim 与 core 共享几乎相同的依赖集composio/client、composio/json-schema-to-zod、openai、pusher-js、semver、undici、zod-to-json-schema等并通过composio/core: workspace:*作为开发依赖参与 monorepo 构建确保构建时能拿到最新的 core 产物。选型建议core 还是 slim结合两个包的官方说明可以给出如下判断依据选择composio/slim你的项目只关心运行时行为与类型不需要在node_modules中阅读 SDK 源码或文档希望 CI 安装更快、node_modules更小、容器镜像更精简。选择composio/core你是 SDK 的深入使用者或维护者需要随时在本地node_modules里检查src/源码与docs/文档进行调试、排查或二次开发或依赖 core 包内docs目录提供的离线查阅能力。两者在运行时层面行为一致slim 构建脚本直接复制 core 的dist并仅删除文档因此从 core 切换到 slim 通常不需要改动任何业务代码只需替换包名。唯一需要留意的是generated目录的占位 stub 特性涉及 toolkit 类型时记得先执行composio ts generate。小结composio/slim是 Composio TypeScript SDK 在可检查性 vs 安装体积这对权衡中为后者给出的答案。它以几乎零成本的复制-裁剪构建流程产出了一个与composio/coreAPI 完全兼容、平台条件导出完整、但去除了源码与文档目录的轻量包而完整的会话session、Provider、MCP、Modifiers 与配置体系全部原样继承。对于追求安装体积与加载速度的生产项目composio/slim是一个可以直接放心采用的入口。【免费下载链接】composioComposio powers 1000 toolkits, tool search, context management, authentication, and a sandboxed workbench to help you build AI agents that turn intent into action.项目地址: https://gitcode.com/GitHub_Trending/co/composio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考