ワークフローAPI
ワークフローAPIは、Mastraの自動化されたワークフローを操作および実行するためのメソッドを提供します。
Mastraクライアントの初期化
import { MastraClient } from "@mastra/client-js";
const client = new MastraClient();
すべてのワークフローの取得
利用可能なすべてのワークフローのリストを取得します:
const workflows = await client.getWorkflows();
特定のワークフローの操作
const名で定義された特定のワークフローのインスタンスを取得します:
src/mastra/workflows/test-workflow.ts
export const testWorkflow = createWorkflow({
id: 'city-workflow'
})
const workflow = client.getWorkflow("testWorkflow");
Workflow Methods
Get Workflow Details
ワークフローの詳細情報を取得します:
const details = await workflow.details();
Start workflow run asynchronously
inputDataでワークフロー実行を開始し、完全な実行結果を待機します:
const run = await workflow.createRun();
const result = await workflow.startAsync({
runId: run.runId,
inputData: {
city: "New York",
},
});
Resume Workflow run asynchronously
中断されたワークフローステップを再開し、完全な実行結果を待機します:
const run = await workflow.createRun();
const result = await workflow.resumeAsync({
runId: run.runId,
step: "step-id",
resumeData: { key: "value" },
});
Watch Workflow
ワークフローの遷移を監視します:
try {
const workflow = client.getWorkflow("testWorkflow");
const run = await workflow.createRun();
workflow.watch({ runId: run.runId }, (record) => {
console.log(record);
});
const result = await workflow.start({
runId: run.runId,
inputData: {
city: "New York",
},
});
} catch (e) {
console.error(e);
}
Resume Workflow
ワークフロー実行を再開し、ワークフローステップの遷移を監視します:
try {
const workflow = client.getWorkflow("testWorkflow");
const run = await workflow.createRun({ runId: prevRunId });
workflow.watch({ runId: run.runId }, (record) => {
console.log(record);
});
workflow.resume({
runId: run.runId,
step: "step-id",
resumeData: { key: "value" },
});
} catch (e) {
console.error(e);
}
Get Workflow Run result
ワークフロー実行の結果を取得します:
try {
const workflow = client.getWorkflow("testWorkflow");
const run = await workflow.createRun();
// start the workflow run
const startResult = await workflow.start({
runId: run.runId,
inputData: {
city: "New York",
},
});
const result = await workflow.runExecutionResult(run.runId);
console.log(result);
} catch (e) {
console.error(e);
}
これは長時間実行されるワークフローを扱う際に便利です。ワークフロー実行の結果をポーリングするために使用できます。
Workflow run result
ワークフロー実行結果は以下を返します:
Field | Type | Description |
---|---|---|
payload | {currentStep?: {id: string, status: string, output?: Record<string, any>, payload?: Record<string, any>}, workflowState: {status: string, steps: Record<string, {status: string, output?: Record<string, any>, payload?: Record<string, any>}>}} | 実行の現在のステップとワークフロー状態 |
eventTimestamp | Date | イベントのタイムスタンプ |
runId | string | このワークフロー実行インスタンスの一意識別子 |