SuperAPI AI 工具集

gtm-workflow

办公与效率

查看项目

更新于 10-15 16:29

技能介绍

用途

GTM Workflow 技能用于管理“已保存工作流”的完整生命周期。当用户请求创建、修改、运行、测试、调度、部署、升级、检查、打开查看界面或删除一个已保存工作流,或涉及它的表、运行记录、图表时,应应用此技能。

主要能力

  • 创建:首次在个人电脑上使用时,运行共享本地设置,创建空注册表并准备本地数据库。从 example-scores.ts 或 example-research.ts(含 agent 阶段时)编写 workflows/<slug>.ts,在 db/tables/<name>.ts 中定义表,并在 workflows/index.ts 和 db/tables/index.ts 中注册。运行 npm run db:generate -- --name <name>,运行 npm run viewer:register 分配工作流身份,重建并打开其 Diagram 页面。
  • 更新:同时修改工作流、viewer.businessGraph 和 viewer.description,保留 viewer.id,用 node scripts/build-viewer.mjs 验证元数据,保留现有数据。
  • 运行:默认在个人电脑上本地运行;用户要求或主机声明无本地运行时,针对部署副本运行。运行前检查行数、成本估算与上限、连接情况。通过路由启动,轮询读取路由,以纯文字报告结果。遇到待审批时停止轮询并询问用户,通过 approve 路由决定后恢复轮询。
  • 打开界面:对于“Open GTM Workflows UI”或明确的链接请求,解析已验证的查看器 URL 并立即返回。本地按需启动 npm run dev,其 Connections 标签即 Keys 页面。打开界面不会执行工作流、运行迁移或部署。
  • 分享:仅限托管环境。读取授权,显示选中的标签和当前允许的数据摘要,通过 POST saveLink 保存,POST revokeGrant 撤销。默认是 Diagram 且无过期时间。
  • 部署:部署即推送。遵循 deploy.md 进行一次性连接和就绪检查。推送不会影响已在运行中的运行。托管副本始终通过 Gateway 运行每个 agent 阶段。
  • 升级:先运行 node scripts/upgrade-package.mjs <workflows> 预览。比较 workflows/ 与已安装的 templates/,更新模板拥有的目录和文件,合并依赖和启动脚本,重新生成索引文件,保留工作流 ID,验证本地和托管构建。
  • 删除:移除工作流文件、注册表条目和 vercel.json 中的 cron,保留表及其数据并说明。

使用方式

  • 触发条件:当请求涉及已保存工作流的创建、更改、运行、调度、部署、升级、检查、打开 UI 或删除,或其表、运行、图表时。
  • 仅当用户整个请求就是 /gtm-workflow 或 /gtm-workflows,没有动作或其他词时,才显示意图菜单,提供三个选项:Open GTM Workflows、Create a workflow、Manage a workflow,并等待。
  • 创建或更改工作流时,检查 recipes(如 network enrichment)是否有匹配的,并遵循它;此技能仍拥有生命周期。未更改工作流的普通运行不需要 recipe。
  • 工作流 slug 遵循契约的 slug 规则;显示名称是文档注释的第一行。
  • 行来源:defaultInput(内联)、"use step" 函数中的 provider 或 API 调用、另一个工作流填充的表,或入站 webhook(通过 lib/intake.ts 的 defineIntake 定义,在 workflows/index.ts 中注册为 intake)。
  • 输入是 lib/rows.ts 中的 RowsInput,{ rows?, maxRows?, maxSpendUsd? },每行是一个对象,具有必需的字符串键(表的主键)。
  • runRows 是循环,step(row) 是工作流作用域中的普通异步函数,按顺序等待 "use step" 函数。

适用场景

  • 需要创建、管理、运行和部署 GTM 相关工作流的团队或个人。
  • 需要将工作流与 Slack 通知、审批流程、数据表、分享链接等集成的场景。
  • 需要在本地和托管环境之间切换运行工作流的场景。

限制

  • 此技能拥有 <workspace>/workflows/ 目录,工作区中 workflows/ 之外的其余文件属于其他 gtm 技能。
  • 在声明无本地运行的主机上,回复中只能包含部署副本的链接路由在就绪等待后返回的已验证 viewerUrl;localhost 永远不会出现在回复中。
  • 密钥通过受保护的工作流传输读取,绝不在聊天中收集密钥。
  • 升级时,如果此技能的模板比工作区旧,则拒绝升级,并提示先更新技能。
  • 工作区来自 Postgres 运行时之前(有 db/tables/cache.ts)的,不由升级任务处理,需按 updates 所述迁移。
  • 缺失的事实:具体收费、价格、平台支持细节、效果数据等暂未提供。