workflow-devkit について
workflow-devkitは、再試行、状態の永続化、可観測性を備えたワークフローを構築するための開発スキルです。DurableAgentを使うAIワークフローも扱います。
主な機能
- 01永続的なワークフローの調整
- 02再試行可能な原子的ステップ
- 03Webhookコールバック
- 04イベント駆動型アクター
- 05ストリーミング更新
- 06永続的なAIワークフロー
活用シーン
- 01長時間処理のオーケストレーション
- 02一時的なタスク失敗の再試行
- 03人によるコールバックの処理
- 04イベント駆動プロセスの構築
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ johnlindquist/ claude --skill workflow-devkitインストール後、Claude Code で/workflow-devkitを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
ai-integration.mdapi-reference.mdpatterns.mdtemplates/actor-workflow.tsai-agent-workflow.tsapi-routes.tsbasic-workflow.ts詳細
Workflow DevKit
自動再試行、状態の永続化、可観測性を備えた信頼性の高い長時間実行プロセスを構築できます。
クイックリファレンス
| パターン | ユースケース | 主要な API |
|---|---|---|
| ワークフロー | 永続性のある操作をオーケストレーションする | "use workflow" ディレクティブ |
| ステップ | アトミックで再試行可能な単位 | "use step" ディレクティブ |
| Webhook | 人間参加型の処理、コールバック | createWebhook() |
| アクター | イベント駆動型のステートマシン | defineHook() + for await |
| ストリーミング | フロントエンドへのリアルタイム更新 | getWritable() / run.readable |
| AI エージェント | 永続性のある LLM ワークフロー | DurableAgent + globalThis.fetch = fetch |
| AI Gateway | 複数プロバイダー間でのモデル切り替え | "provider/model" 文字列、@ai-sdk/gateway |
前提条件
pnpm add workflow @workflow/ai ai @ai-sdk/gateway zod
コアコンセプト
ワークフロー("use workflow")
import { sleep } from "workflow";
export async function myWorkflow(input: string) {
"use workflow";
const result = await step1(input);
await sleep("5s");
return result;
}
ステップ("use step") - ワークフローと同じファイル内に記述する必要があります
async function step1(input: string) {
"use step";
return await fetch(`/api/data?q=${input}`).then(r => r.json());
}
エラーの種類
import { FatalError, RetryableError } from "workflow";
// Auto-retried
throw new Error("Transient failure");
// No retry - stops workflow
throw new FatalError("Invalid credentials");
// Custom retry timing
throw new RetryableError("Rate limited", { retryAfter: "60s" });
詳細ドキュメント
- patterns.md - ワークフローのパターン(逐次、並列、ルーティング、アクター)
- api-reference.md - API リファレンス全体
- ai-integration.md - AI SDK と DurableAgent のパターン
インポート早見表
// Core workflow
import {
sleep, fetch, FatalError, RetryableError,
createWebhook, createHook, defineHook,
getWritable, getWorkflowMetadata, getStepMetadata,
} from "workflow";
// API routes
import { start, getRun } from "workflow/api";
// AI integration
import { DurableAgent } from "@workflow/ai/agent";
import { generateText, generateObject } from "ai";
import { createUIMessageStreamResponse } from "ai";
Examples ディレクトリ
参考実装:~/dev/workflow-examples/
| 例 | パターン |
|---|---|
nextjs/ | 基本的なユーザー登録ワークフロー |
kitchen-sink/ | あらゆるパターンのリファレンス |
actors/ | イベント駆動型アクターパターン |
ai-sdk-workflow-patterns/ | AI エージェントのパターン |
flight-booking-app/ | ツールを備えた DurableAgent |
rag-agent/ | PostgreSQL + 埋め込みを用いた RAG |
birthday-card-generator/ | Webhook + スケジュール設定 |
コメント
Markdown 対応