>_tech-draft
Vercelのアイコン
Vercel
動画公開日
タイトル

Community Session: Vercel Workflow

再生時間

16分 41秒

Vercel Workflowsで長時間タスクを効率化!オープンソースSDKと多様なデプロイ戦略

ポイント

  • Vercel Workflowsは、長時間タスクや複雑なバックグラウンド処理に悩む開発者向けの強力なソリューションです。
  • ステップ、フック、スリープといった基本要素、オープンソースSDK、多様なデプロイ戦略で堅牢なタスク管理を実現します。
  • AIエージェントのオーケストレーションも簡素化し、効率的で信頼性の高いアプリケーション構築を支援します。

はじめに: 長時間実行タスクの課題とVercel Workflows

現代のウェブアプリケーション開発において、バックグラウンドでの長時間実行タスクや複雑なパイプライン処理は避けられない要素です。しかし、これらのタスクを堅牢かつ効率的に管理することは容易ではありません。Vercel Workflowsは、このような課題を解決するために設計された強力なツールです。

本記事では、YouTube動画の解説を基に、Vercel Workflowsが提供する基本的なプリミティブ(基本要素)から、そのオープンソース性、多様なデプロイオプション、そしてAIエージェントのサポートに至るまで、その全貌を徹底解説します。初心者の方にも分かりやすく、丁寧な口調でご紹介いたしますので、ぜひ最後までご覧ください。

Vercel Workflowsの核となる3つの基本プリミティブ

Vercel Workflowsは、長時間実行されるコードを効率的に表現するための基本的な構成要素を提供します。これらは「プリミティブ」と呼ばれ、主に以下の3つが挙げられます。

1. ステップ (Steps)

ステップは、ワークフロー内の処理の各段階を表します。特徴的なのは、処理を一時停止(suspend)し、後で再開(resume)できる点です。これにより、外部からの入力や時間待機が必要な複雑なプロセスを、中断することなく記述できます。

2. フック (Hooks)

フックは、ワークフローが任意の外部イベントを待機できるようにする仕組みです。例えば、ユーザーからの入力、外部サービスからのコールバック、データベースの更新などを待ち受けて、そのイベントが発生したときに処理を続行するといったことが可能になります。これにより、非同期的な処理や外部システムとの連携が容易になります。

3. スリープ (Sleeps)

スリープは、ワークフローが任意の期間(数秒から数ヶ月まで)待機することを可能にします。これにより、スケジュールされたタスクや、特定の遅延を必要とする処理をシンプルに実装できます。例えば、一定期間後にユーザーにリマインダーを送信するなどの用途に利用できます。

これらのプリミティブを組み合わせることで、複雑なバックグラウンドパイプラインや、時間のかかるタスクを柔軟かつ信頼性高くモデル化することが可能になります。

Durable AgentによるAIエージェントのオーケストレーション

最近では、AIコーディングエージェントの活用が進んでいますが、これらのエージェントが長時間にわたるタスクを効率的に実行することは、しばしば複雑なオーケストレーションを必要とします。Durable Agentは、この課題を解決するためにVercel Workflowsが提供するクラスです。

AIエージェントのタスクは、多くの場合、ループ処理によって構成されます。具体的には、LLM(大規模言語モデル)の呼び出し、その結果に基づいた1つ以上のツール呼び出し、メモリへの書き込み、サンドボックスやファイルシステムの利用といった一連の操作を繰り返し実行します。このようなトークンのストリーミングとツール呼び出しの繰り返しは、自身で全てを構築しようとすると非常に強力である一方で、非常にトリッキーな作業となります。

Durable Agentクラスは、このオーケストレーションの多くを自動的に処理し、Workflows内でネイティブに機能するように設計されています。これにより、開発者は複雑なエージェントロジックの実装に集中でき、長時間実行されるAIエージェントの構築が大幅に簡素化されます。

Vercel Workflowsのオープンソース戦略と多様なデプロイオプション

Vercel Workflowsには、「Workflow SDK」というオープンソースフレームワークが存在します。このSDKは、長時間実行されるコードを記述するための共通の「Dockerファイル構文」のようなものと考えることができます。use workflowstepssleepstimersweightshooksといった要素を記述することで、ワークフローを定義します。

Vercelは、Workflowsの実行環境として「Worlds」というアダプターの概念を導入しています。これは、ワークフローの永続化層やキューイングシステムを抽象化するものです。リリース当初から、Vercelは以下の3つの「World」を公式に提供・メンテナンスしています。

1. ローカル World (Local World)

ローカル環境でワークフローを実行する際に使用されます。全てのデータはファイルシステムに保存され、開発者はこれを検査することで、本番環境と同様の可観測性をローカルで得ることができます。キューはインメモリで動作し、初日からVercelの本番環境に近い優れたローカル開発体験を提供しています。

2. Vercel World (Vercel World)

Vercelにデプロイする際に利用される公式のWorldです。Vercel環境では、ワークフローのデータはエンドツーエンドで暗号化され、高速な計算レイヤーとプライベートなネットワーク上で実行されるなど、多くの利点がすぐに利用できます。

3. PostgreSQLアダプター (Postgres Adapter)

PostgreSQLをバックエンドとして利用できるアダプターです。これにより、ユーザーはVercel上で開発したワークフローと全く同じコードを、独自のPostgreSQLバックエンドで実行することが可能になります。実際に、VercelからPostgreSQLへ、あるいはその逆への移行を容易に行っている顧客も存在します。環境変数でPostgreSQLインスタンスを指すだけで、Worldアダプターが必要なテーブルをセットアップし、信頼性の高い永続化層として機能します。

さらに、Vercelはコミュニティと連携しながら、より多くの「World」を開発中です。現在、Cloudflare WorldやAWS Worldが開発進行中であり、Workflowsがどのような環境でも実行可能となることを目指しています。これにより、Vercel Workflowsは特定のプラットフォームに依存せず、あらゆる場所でその真価を発揮できる設計となっています。

実践的な例と豊富な学習リソース

Vercel Workflowsを始めるにあたり、Vercelは理論的なコードスニペットだけでなく、実際に役立つ多様な例やリソースを提供しています。

1. workflow-examplesリポジトリ

Vercelがメンテナンスしている公式のGitHubリポジトリです。ここでは、誕生日カードジェネレーターのようなデモアプリケーションや、Durable Agentを活用したフライト予約アプリなど、実践的なワークフローの例が多数公開されています。これらの例は、PostgreSQLでの実行方法や、Vercel以外の環境へのデプロイ方法なども示されており、実際のアプリケーション開発に役立つヒントが満載です。

2. クックブック (Cookbook)

現在Vercelが力を入れているのが「クックブック」です。このページでは、Workflowsにおける一般的なパターンだけでなく、Vercel社内でのワークフローの先進的な利用方法も紹介されています。例えば、VZeroのチャット機能における「停止」ボタンの実装には、分散アボートコントローラー(Distributed Abort Controller)が使用されており、これがWorkflowsのプリミティブの上に構築された高度な応用例として紹介されています。これにより、基礎的なコードスニペットから一歩進んだ、より複雑なシナリオでのワークフローの活用方法を学ぶことができます。

これらのリソースは、単なる入門レベルの知識を超え、Vercelが実際に利用している、あるいは顧客が取り組んでいるリアルな例を提供しており、開発者がWorkflowsを実務に適用する上で非常に有益です。

AIコーディングエージェントとの親和性

現代の開発現場では、AIコーディングエージェントの活用が急速に進んでいます。Vercel Workflowsは、このようなAIエージェントが新しいワークフローの概念を容易に習得し、適用できるような高い親和性を持っています。

その理由は、AIエージェントが人間が長年行ってきたコーディング方法に基づいて訓練されているためです。AIは、私たちがプログラミングを行う方法から学習しており、Vercel Workflowsが提供する「ステップ」「フック」「スリープ」といったプリミティブや、長時間実行タスクの概念は、AIエージェントにとって直感的に理解しやすいフレームワークとなります。これにより、AIエージェントはWorkflowsを活用して、より複雑で堅牢なアプリケーションを効率的に構築できるようになります。

まとめ: Vercel Workflowsがもたらす開発の進化

Vercel Workflowsは、長時間実行タスクや複雑なバックグラウンドパイプラインの管理における課題に対し、強力で柔軟なソリューションを提供します。ステップ、フック、スリープといった基本的なプリミティブを通じて、中断可能で信頼性の高い処理フローを構築でき、Durable AgentクラスはAIエージェントのオーケストレーションを劇的に簡素化します。

Workflow SDKとしてオープンソースで提供され、ローカル、Vercel、PostgreSQLといった多様な「World」でのデプロイが可能なため、開発者は特定の環境に縛られることなく、自由に選択できます。また、豊富な例が掲載されたworkflow-examplesリポジトリやクックブックは、初心者から上級者まで、実践的な学習を強力にサポートします。

AIコーディングエージェントとの高い親和性も兼ね備えており、現代の開発パラダイムにおいてVercel Workflowsが果たす役割は今後ますます大きくなるでしょう。ぜひVercel Workflowsを試し、あなたのアプリケーション開発を次のレベルへと進化させてみてください。

参考動画

Vercel Workflows | Next.js Conf 2023 Keynote