Managed Agents でも dynamic workflows が使えるようになりました
2026 年 10 月 9 日、Claude Platform のリリースノートで、Claude Managed Agents の dynamic workflows が公開ベータになりました。エージェントが、多数のエージェントを段階的に動かして結果を統合するプログラム (workflow) を自分で書き、サーバーが実行する機能です。数百件の文書の審査のように、1 つの会話に収まらない作業を想定しています。
ここで混同しやすいのが、Claude Code の dynamic workflows との関係です。名前は同じですが、動かす場所と追い方が違います。Claude Code 側の使い方は Opus 4.8 を使いこなす要点 にまとめました。本記事は、API で Managed Agents を使う開発者向けに、設定・イベント・上限・費用を整理します。
内容は、Anthropic の リリースノート、Multiagent orchestration、Workflow runs、Reference、料金ページ を 2026 年 10 月 10 日に確認したものです。一次情報に無い数字は書いていません。ベータのため、仕様は変わる可能性があります。
有効にする設定
有効にするのは、エージェントの作成時に指定する multiagent フィールドです。ベータヘッダーは managed-agents-2026-04-01 で、SDK を使えば自動で付きます。
{
"multiagent": {
"type": "multiagent_20261001",
"workflows": {
"type": "enabled"
}
}
}公式ドキュメントの例では、このほかに name、model、system、tools を指定しています。この type では、subagents への委任も既定で有効です。dynamic workflows だけにしたい場合は、"subagents": {"type": "disabled"} を足します。すでにあるエージェントの multiagent.type を変えるときは、公式ドキュメントの移行の案内を先に読んでください。
使い始めてから気づきやすい点を、先に挙げます。
- run を始める専用の API はありません。依頼を
user.messageで伝えると、エージェントが始めるかどうかを判断します - 判断を寄せたいときは、
systemに使いどころを書きます。公式の例は「数件を超える契約書を審査するときは run で並列に読み、統合する。1〜2 件なら run を使わずに自分で読む」です - 権限ポリシーが効くのは run のエージェントが呼ぶツールで、run を始める操作には効きません
- run のエージェントは、ワークフローが定義する inline agent が既定です。別のモデルを使いたいときは、エージェントを作って
workflows.predefined_agentsに並べます (最大 20)。inline agent は、セッションのエージェントと同じモデルで動きます
FIXITrun を始めるボタンみたいな API はないの?
Tsumikiないんです。公式は、始めるかどうかをエージェントが判断すると書いています。
FIXITじゃあ、使ってほしいときはどうするの?
Tsumikisystem prompt に使いどころを書きます。公式の例も、件数で分けています。
1 回の run の中身
workflow は、エージェントが書くプログラムです。ほかのエージェントを動かし、それぞれの結果を集めて、統合します。サーバーがバックグラウンドで実行する単位が workflow run です。run は次の層でできています。
| 層 | 中身 |
|---|---|
| workflow run | 1 つの workflow の実行。1 つのセッションで複数の run が同時に開けます |
| phase | 「契約書を読む」のような、run の段階。進み具合は phase のイベントで追います |
| agent thread | phase の中で動く各エージェント。サーバーが session thread を作ります |
プログラムにできることは、公式ドキュメントでは次のように説明されています。
- 多数のエージェントを同時に動かす (fan out)
- あるエージェントの結果を、別のエージェントに渡す
- 結果から次の手を、エージェントではなくプログラムが決める
- 草稿を、レビューが通るか規定の回数に達するまで繰り返す
- エージェントが失敗したとき、プログラムが処理するか、run を終わらせる
run の全エージェントは、セッションのサンドボックスの同じファイルを使います。会話の履歴はスレッドごとに別です。run が終わると、セッションのエージェントに、結果を読む番が回ります。
workflow のコードは画面に出ません。見たいときは、run が終わってセッションが idle になってから、次のように頼む方法が公式に紹介されています。
Print the workflow that you started the run with, word for word, in one code block. Do not start another run.進捗は workflow_run のイベントで追う
run の状況は、セッションのイベントストリームに workflow_run.* として届きます。リファレンスでは次の 7 種類です。
| イベント | 届くとき |
|---|---|
workflow_run.created | run が作られた。名前・説明・宣言された phase の一覧を含む |
workflow_run.status_running | 実行が始まった。予算での一時停止から再開したときにも届く |
workflow_run.status_idle | 予算などで一時停止した |
workflow_run.phase_started | phase に入った |
workflow_run.phase_ended | phase を出た |
workflow_run.status_ended | run が終わった。result を含み、その run の最後の workflow_run.* になる |
workflow_run.error | run のエラー、またはサーバーが断った開始。status_ended の前に届く |
status_ended の result は、次のいずれかです。
result | 意味 |
|---|---|
completed | workflow が最後まで動いた。作業が成功したという意味ではない |
stopped | エージェントが止めたか、セッションが archive された |
error の timeout_error | 寿命に達した |
error の program_error | workflow のコードや規則違反、または run のスレッドの失敗がそのまま run を止めた |
error の thread_limit_error | 始められるエージェントの上限を超えた |
error の unknown_error | サーバーが続けられなかった、または他の上限を超えた |
特に注意したいのは、completed が成功ではない点です。公式ドキュメントは、スレッドの作業が失敗していても、run は completed で終わりうると書いています。失敗した作業を探すには、run の各スレッドのイベントを読みます。スレッドは、session.thread_created の workflow_run_id で見分けます。
また、run のイベントは webhook を起動しません。ストリームを開いて追う前提です。ストリームは過去の分を再送しないため、再接続したときは、イベントの一覧を types で絞って取り直し、run の状態を組み立て直します。
「終わった」は 2 つの条件で判定する
run を使うセッションでは、session.status_idle が来ても、作業が終わったとは限りません。公式ドキュメントは、次の 2 つがそろったときを完了としています。
- 作成を見たすべての run に、
workflow_run.status_endedが届いている - そのあとに、
stop_reasonがend_turnのsession.status_idleが届く。自分の interrupt が原因の idle は数えない
落とし穴は、ほかにもあります。
- 一時停止した run は、セッションを
runningに保ちません。予算に達すると、セッションはbudget_reachedで idle になりますが、run はまだ開いています - エージェントは、結果を読んだあとに新しい run を始めることがあります。完了の判定は、そのたびにやり直します
- run のスレッドが、あなたのクライアントの応答を待つことがあります。カスタムツールの呼び出しは、届いた時点で答えます。idle を待たないでください
retries_exhaustedで idle になっても、サーバーが自分で新しいターンを始めることがあります
注意
interrupt (user.interrupt) はエージェントのターンを止めますが、run
は終わらせません。run を止めたいときは、user.message でエージェントに run
を止めるよう頼みます。止まった run は stopped で終わります。
公式ドキュメントには、イベントを追って run の名前と phase を出力し、完了で止まるサンプルが Python・TypeScript などで載っています。自作する前に、そのまま動かして挙動を確かめると早いです。
上限と費用
上限は、公式ドキュメントでは次のとおりです。
| 上限 | 値 | 超えたとき |
|---|---|---|
| 1 つの run で同時に動くスレッド | 64 | 1 つ終わるまで新しく作らない。数字は保証されず、変わりうる |
| run の全期間にワークフローが始めるエージェント | 1,000 | 超えると thread_limit_error で終わる |
| run の寿命 | 既定 24 時間 (エージェントが短縮できる) | timeout_error で終わる。一時停止中も寿命は進む |
| 1 つのセッションで同時に開く run | 既定 10 | 開始が断られ、max_workflow_runs_error が届く。idle の run も数える |
費用の考え方は、次の 3 点です。
- run に専用の料金はありません。 run のエージェントが使ったトークンが、各モデルの料金で、セッションの他のトークンと同じように課金されます
- Managed Agents は、トークンと稼働時間の 2 軸で課金されます。料金ページには、稼働時間は 1 時間あたり 0.08 ドルで、セッションが
runningの間だけ数えるとあります。Batch API の割引は適用されません - run のモデル呼び出しは、セッションの予算に数えます。予算に達すると、開いている run がすべて一時停止します。予算を上げるか外すと、一時停止した run が再開します。ただし、各スレッドは始めたリクエストを終えるため、予算を少し超えることがあります
1 つの run の使用量は、セッションのスレッド一覧から、その workflow_run_id を持つスレッドの usage を足して出します。金額は変わりうるため、実際の見積もりは最新の料金ページを使ってください。
レート制限は、新しく用意されるものではありません。Managed Agents のエンドポイントは、組織ごとに作成系が 1 分あたり 300 リクエスト、読み取り系が 1,200 リクエストです。run のモデル呼び出しは、Messages API のレート制限に、他のトラフィックと一緒に数えられます。進捗はポーリングせずに、イベントストリームで追ってください。
Claude Code の dynamic workflows との違い
| 観点 | Managed Agents | Claude Code |
|---|---|---|
| 動く場所 | Anthropic のサーバー側のセッション (サンドボックスはクラウドか自前) | Claude Code のセッション |
| 起動 | セッションのエージェントが判断して始める | /workflows から始める |
| 追い方 | API のイベントストリーム (workflow_run.*) | Claude Code の画面 |
| 上限の数字 | 本記事の表のとおり | 別 (本記事では扱わない) |
Managed Agents 側の欄は公式ドキュメントで確認した内容です。Claude Code 側は 自社の既存記事 の範囲にとどめ、上限などの数字は書いていません。両者の上限を比べたいときは、Claude Code 側の公式ドキュメントを別に確認してください。
FIXITClaude Code の dynamic workflows と、結局どっちを使えばいいの?
Tsumiki手元の作業なら Claude Code です。自分のアプリから API で動かすなら Managed Agents になります。
試す前に確認したい制約
導入を決める前に、次の点を確認してください。
- データの扱い。 Managed Agents は、ステートフルな作りのため、Zero Data Retention と HIPAA の BAA の対象外です。セッションの履歴・サンドボックスの状態・成果物はサーバーに保存されます。セッションと、アップロードしたファイルは、API でいつでも削除できます
- ツールの冪等性。 run は、同じ作業のために複数のスレッドを作ることがあります。失敗したエージェントを、新しいスレッドでやり直すためです。ツールは、2 回呼ばれても困らない作りにします
- run が開いている間の操作。 セッションの
agentの更新は、開いている run が 1 つでもあれば 400 になります。セッションの archive や delete も、400 になることがあります。先にエージェントに run を止めるよう頼んでください - 試すための費用。 Max と Team の毎月の API クレジットは Managed Agents にも使えます。受け取り方は Claude Max / Team の毎月 API クレジット にまとめています
最初の検証は、件数の多い単純な作業で小さく始めるのが現実的です。たとえば、数十件の文書から条項を抜き出す作業を 1 回だけ run で流し、イベントの届き方と、予算で止まる動きを確かめます。そのうえで、自社のデータを扱えるかを判断します。
FIXIT の運用 — 大量処理のエージェントをどう設計するか
FIXIT は AI 駆動開発のクリエイティブスタジオとして、エージェントを使うプロダクト開発では、成果の確認を人の側に残す設計を基本にしています。dynamic workflows のような並列処理でも、completed を成功とは読まず、失敗した作業を拾う検査を別に置くのが安全だと考えています。
並列に動かす仕組みは、速さと引き換えに、費用と責任の所在が見えにくくなります。予算・寿命・上限を先に決め、イベントを記録しておくことを、導入の最初の設計項目にします。
まとめ
Managed Agents の dynamic workflows は、エージェントが書いたプログラムで多数のエージェントを動かす機能です。multiagent に multiagent_20261001 と workflows を指定して有効にし、workflow_run.* のイベントで追います。完了は、全 run の status_ended と、その後の end_turn の idle がそろった時点です。completed は成功を意味しません。
上限は、同時 64 スレッド・累計 1,000 エージェント・寿命 24 時間・同時 10 run が目安で、run に専用の料金はありません。データの保持に制約があるため、機密を扱う前に社内の規程と照らしてください。
エージェントを使った大量処理を業務に組み込む設計は、AI エージェント開発 で相談できます。社内の AI 開発ツールの導入から整えたい場合は、AI 開発ツール定着支援 があります。状況を相談したい場合は、お問い合わせ からご連絡ください。



