mcpField
W
workflow

workflow

github.com/stahura开发24197 次安装27 周前更新
代码仓库

关于 workflow

workflow 是面向 Domo App Platform 开发者的工作流集成指南,介绍如何用 WorkflowClient 启动流程、查询状态,并按 manifest.json 中的别名调用。

主要功能

  1. 01通过别名启动工作流
  2. 02查询实例状态和模型详情
  3. 03在 manifest.json 配置工作流映射
  4. 04核对输入变量名称与类型

适用场景

  1. 01从 Domo 应用触发工作流
  2. 02查看长时间运行流程的状态
  3. 03将应用载荷匹配到流程输入参数

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/stahura/domo-ai-vibe-rules --skill workflow

安装后在 Claude Code 中输入/workflow确认已加载。

详细介绍

规则:Domo 应用平台工作流(工具包优先)

本规则工具包优先。在应用中使用 WorkflowClient 执行工作流操作。

规范客户端

yarn add @domoinc/toolkit
import { WorkflowClient } from '@domoinc/toolkit';

const startResponse = await WorkflowClient.startModel('myWorkflow', {
  inputVar: 'value',
  anotherVar: 123
});
const instance = startResponse.body;

检查状态:

const statusResponse = await WorkflowClient.getInstance('myWorkflow', instance.id);
const status = statusResponse.body.status;

正确的方法用法(别名,而非 UUID)

WorkflowClient 的工作流方法使用 manifest.json 中 workflowMapping 的工作流别名,而非 UUID。

await WorkflowClient.startModel('myWorkflow', { inputVar: 'value' });
await WorkflowClient.getAllModels();          // or getAllModels(true)
await WorkflowClient.getModelDetails('myWorkflow');
await WorkflowClient.getInstance('myWorkflow', 'instance-id');

Manifest 要求

工作流仍然需要在 manifest.json 中配置 workflowMapping 条目。

{
  "workflowMapping": [
    {
      "alias": "sendReport",
      "modelId": "d1373fa7-9df8-45d3-80ba-f931dda169b4",
      "parameters": [
        { "aliasedName": "reportType", "type": "string", "list": false, "children": null },
        { "aliasedName": "recipients", "type": "string", "list": true, "children": null }
      ]
    }
  ]
}

卡片映射与输入契约提醒

  • 在 Domo 中,通过卡片/应用配置界面将应用卡片映射到预期的工作流模型(而不仅仅是在源文件中)。
  • 确认工作流的起始节点输入参数已在工作流中配置,且与应用在 WorkflowClient.startModel(workflowAlias, variables) 中发送的载荷键一致。
  • 如果参数名称/类型/列表设置不匹配,工作流启动可能会失败或静默错误处理输入。
  • 在推荐或生成 WorkflowClient.startModel(...) 调用时,Agent 必须明确告知用户所传递的确切输入变量名称和类型。

错误处理模式

async function runWorkflow(workflowAlias: string, payload: Record<string, unknown>) {
  try {
    const response = await WorkflowClient.startModel(workflowAlias, payload);
    return response.body;
  } catch (error) {
    console.error(`WorkflowClient.startModel failed for ${workflowAlias}`, error);
    throw error;
  }
}

检查清单

  • 已配置 workflowMapping
  • 应用卡片已在 Domo UI 中映射到正确的工作流
  • 工作流起始节点输入参数与应用载荷键/类型匹配
  • 调用使用 WorkflowClient 基于别名的方法(startModel、getModelDetails、getInstance)
  • Agent 在指导中说明确切的 startModel 输入变量名称/类型
  • 代码传递工作流别名(来自 workflowMapping.alias)而非工作流 UUID
  • 响应解析使用 response.body
  • 长时间运行的工作流用户体验包含状态检查或异步用户反馈

评论

支持 Markdown