Dynamic Workflowsは、すべてのDevinセッションで利用できます。作業内容を説明し、ワークフローとして実行するようDevinに依頼するだけです。
Dynamic Workflows とは?
ワークフローを利用するタイミング
- 広範な並列作業と統合ステップ — それぞれに判断や検証を要する、ファイル、モジュール、エンドポイント、チケットなどの独立した作業単位が概ね5つ以上あり、その結果を集約する場合。
- 段階的な パイプライン — 後続の段階で前段階の構造化出力を利用する場合。たとえば、監査 → 対処 → 検証。
- 変更が機械的な場合 — codemod、linter の自動修正、またはジェネレーターのほうが エージェントよりも速く、確実に処理できます。
- データの受け渡しがなく、必要な独立したセッションが1つまたは2つだけの場合。
- 作業が共有状態を介して密結合している場合、または小規模で順次進められる場合。
プロンプトの例
実行の流れ
- Devin がスクリプトをファイルに書き込み、実行を開始します。Settings → Preferences → Auto-approve workflows で自動承認を有効にしている場合を除き、まず承認が必要です。
- **スクリプトは Devin’s machine で実行されます。**ワークフローのプリミティブは自動的に組み込まれるため、インストールやインポートは必要ありません。
- エージェント呼び出しごとにエージェントが起動され、その構造化出力が返されるのを待ちます。デフォルトでは、そのエージェントは専用の VM 上で動作する独立した Devin セッションです。
- **進行状況はセッションにストリーミングされます。**ワークフローパネルには各フェーズ、エージェント、ライブステータスが表示され、そこから任意のエージェントのセッションを開けます。
- **結果は実行 ID に紐づけて記録されます。**これにより実行を再開できます。
各
agent()呼び出しはJSON Schemaを受け取り、それに従ったdictを返します。これにより、あるステージの検出結果を次のステージのプロンプトに渡せます。スキーマは小さく、フラットに保ってください。
例
エージェントの実行場所
専用 VM(デフォルト)
専用のマシン、リポジトリのクローン、環境を備えた完全な子 Devin セッションです。オーケストレーション元のセッションのファイルにはアクセスできないため、コードの受け渡しは git ブランチを介して行われます。各エージェントはブランチをプッシュしてその名前を報告し、後続のステージは構造化出力からその名前を読み取ります。
共有 VM
エージェントはオーケストレーション元のセッションのマシン上で実行され、未コミットの変更を含む作業ツリーを共有します。git による受け渡しは不要です。エージェントが現在の作業ツリーを読み取りまたは編集する必要がある場合や、リポジトリがそのマシン上にしか存在しない場合に利用します。
決定性と再開
agent() 呼び出し内で行う必要があります。その記録済み出力を、スクリプトの残りの部分で利用します。
知っておくべき点は2つあります。
- プロンプトを編集すると、その エージェントとそれ以降のすべてが再実行されます。変更していない前段の エージェントは引き続き記録済みの結果を再利用します。
- タイムアウトまたは中断した run は、run ID を指定して再開すると中断した箇所から続行されます。run のデフォルトおよび最大予算は7日間です。
コスト
再利用するワークフローの保存
SKILL.mdとともにworkflow.pyをスキルとしてリポジトリにコミットできます。Devinは以後のタスクで新しいスクリプトを作成する代わりに、このスキルを検出して再実行します。Devinにワークフローの保存を依頼すると、必要なファイルが作成されます。
- Advanced Capabilities — 管理対象のDevinを直接オーケストレーション
- Skills — ワークフローを含む再利用可能な手順をリポジトリに保存
- Devin MCP — プログラムからセッションを作成・監視

