ヒューマンインザループ・ワークフロー
ヒューマンインザループのワークフローを使うと、特定のステップで処理を一時停止し、人による入力や意思決定、あるいは自動化では対処しきれない判断を伴うタスクを実施できます。
ワークフローの一時停止
この例では、ユーザーの入力があるまでワークフローが停止します。実行は特定のステップで保留され、必要な確認が行われた時点でのみ再開されます。
src/mastra/workflows/example-human-in-loop.ts
import { createWorkflow, createStep } from "@mastra/core/workflows";
import { z } from "zod";
const step1 = createStep({
id: "step-1",
description: "入力の値をそのまま出力に渡す",
inputSchema: z.object({
value: z.number()
}),
outputSchema: z.object({
value: z.number()
}),
execute: async ({ inputData }) => {
const { value } = inputData;
return {
value
};
}
});
const step2 = createStep({
id: "step-2",
description: "ユーザーの確認があるまで一時停止する",
inputSchema: z.object({
value: z.number()
}),
resumeSchema: z.object({
confirm: z.boolean()
}),
outputSchema: z.object({
value: z.number(),
confirmed: z.boolean().optional()
}),
execute: async ({ inputData, resumeData, suspend }) => {
const { value } = inputData;
const { confirm } = resumeData ?? {};
if (!confirm) {
return await suspend({});
}
return { value: value, confirmed: confirm };
}
});
export const humanInLoopWorkflow = createWorkflow({
id: "human-in-loop-workflow",
inputSchema: z.object({
value: z.number()
}),
outputSchema: z.object({
value: z.number()
})
})
.then(step1)
.then(step2)
.commit();
関連項目
ワークフロー(レガシー)
以下のリンクでは、レガシーワークフローのドキュメント例を確認できます。