SuperAPI AI 工具集

effect-ts

编程与开发

查看项目

更新于 10-15 23:44

技能介绍

用途:Effect-TS 是函数式 TypeScript 库,提供类型化副作用(Effect<Success, Error, Requirements>)、结构化并发与运行时。本技能用于构建 Effect 应用,尤其是 MCP 服务器,并纠正 LLM 生成内容中的常见 API 错误。

主要能力:区分预期错误(E 通道,需处理)与缺陷(运行时 bug);Fiber 轻量虚拟线程支持中断,子 Fiber 随父级自动终止,forkDaemon 可超出父级;并发原语包括 Effect.race(先成功者胜,其余中断)、Effect.all 的 concurrency 限制;队列分 bounded(背压)、dropping、sliding;Layer 实现依赖注入,可在测试中替换实现;资源管理有 ensuring、acquireUseRelease、Scope;缓存用 Cache.make(含 timeToLive),而非 Effect.cachedWithTTL;重试用 Schedule;@effect/schema 生成 JSON Schema Draft-07;原生 OpenTelemetry 集成,FiberRef 用于 fiber 本地上下文。

用法要点:导入 Effect、Layer、Context、Fiber、Schedule、Cache、Scope 及 @effect/schema。错误处理用 Effect.catchTag、Effect.either + Either.match、catchAllDefect。MCP 工具处理器用 Effect.gen 配合 catchTag 映射错误码,请求用 Effect.scoped 隔离资源。

限制:简单 MCP 工具(<100 行)建议用 FastMCP 或原生 SDK;团队不熟悉函数式编程时学习曲线陡峭;对包体积敏感时 Effect 至少增加 15-25kb gzip;与既有 NestJS/TypeORM 类式 DI 存在阻抗失配。npm 7+ 使用 --omit=dev 而非 --only=production。