SuperAPI AI 工具集

iii-effect-system

智能体与模型

查看项目

更新于 10-15 22:17

技能介绍

用途:在 iii 引擎上构建可组合、可管道化的函数链,适用于函数式流水线、效果系统或类型化组合层,每个效果承担单一职责(如解析、丰富、持久化、通知)。

主要能力:效果通过 trigger 相互调用实现组合;整条流水线可经 OpenTelemetry 端到端追踪;错误自然传播,失败的效果会中断链条;HTTP 触发器提供入口,效果由此串联。

核心原语:registerWorker 初始化 worker 并连接 iii;registerFunction 定义每个效果;trigger({ function_id, payload }) 同步组合效果;trigger({ ..., action: TriggerAction.Void() }) 用于即发即弃的副作用;trigger state::set、state::get 在效果间持久化数据;registerTrigger({ type: 'http' }) 作为入口点。

典型架构:HTTP 请求 → fx::parse-user-input(校验与规范化)→ fx::enrich(补充元数据、查询外部数据)→ fx::persist(写入状态)→ fx::notify(即发即弃副作用),组合结果返回调用方。

常见模式:registerWorker(url, { workerName }) 初始化;trigger({ function_id, payload }) 同步组合;每个效果用带 fx:: 前缀 ID 的独立 registerFunction;校验失败时抛错以向上传播;非关键副作用用 TriggerAction.Void();每个效果用 new Logger() 做结构化日志。

适配方式:将模拟逻辑替换为真实工作(API 调用、数据库查询、ML 推理);通过注册函数并经 trigger 调用新增效果;对不可靠步骤改用 TriggerAction.Enqueue({ queue }) 而非同步 trigger;尽量保持效果纯净;函数 ID 使用领域前缀(如 fx::validate-email、fx::geocode-address)。

边界:若涉及带重试与死信队列的持久化多步工作流,应优先 iii-workflow-orchestration;若涉及多个独立智能体交接工作,应优先 iii-agentic-backend;仅当核心关注点是可组合、可追踪的同步链式函数流水线时使用本技能。不得将其作为无关任务的通用兜底,也不应在更具体的 iii 技能更合适时使用。应用示例前须先核实环境与安全约束。参考实现见 ../references/effect-system.js。