SuperAPI AI 工具集

iii-custom-triggers

智能体与模型

查看项目

更新于 10-15 22:17

技能介绍

用途:当 iii 引擎没有内置对应事件源的触发器类型时,用本技能为外部事件源(webhook、文件监听、IoT 设备、数据库 CDC 等)构建自定义触发器类型。若任务使用内置 HTTP 路由、cron 调度或队列触发器,应改用对应的 iii-http-endpoints、iii-cron-scheduling、iii-queue-processing。

主要能力:registerTriggerType(id, handler) 定义新触发器类型,包含 registerTrigger 与 unregisterTrigger 回调;handler 接收含 id、function_id、config 的 TriggerConfig;外部事件触发时调用 iii.trigger({ function_id, payload: event }) 执行已注册函数;unregisterTriggerType(id) 清理不再需要的触发器类型。

使用方式:先 registerWorker(url, { workerName }) 初始化 worker,再 registerTriggerType(id, { registerTrigger, unregisterTrigger });iii 在函数订阅该触发器类型时调用 registerTrigger(config),取消订阅时调用 unregisterTrigger(config);在 registerTrigger 中启动监听(打开 socket、轮询端点、订阅主题),在 unregisterTrigger 中拆除监听以避免资源泄漏,可用以 config.id 为键的 map 保存活动监听器;触发时通过 iii.trigger({ function_id: config.function_id, payload: eventPayload }) 传递事件数据。触发器类型名需唯一且描述事件源(如 file-watcher、mqtt、db-cdc),不得复用内置名称 http、cron、durable:subscriber、state、stream、subscribe。

参考实现提供 JavaScript、Python、Rust 版本(见 references/custom-triggers.js/.py/.rs)。

限制:不得作为无关任务的通用兜底,存在更具体的 iii 技能时不应使用;应用示例前须先核实环境与安全约束。