Claude Managed Agentsは、長時間タスクと非同期処理のための設定可能なエージェント基盤を構築する、最新の方法です。
以前の記事でClaude Managed Agentsの仕組みを解説しました。
でも実際の作り方には触れていなかった。
今回は、最初のClaude Managed Agentを作るまでに何が起きたかをそのまま書きます。
結論から言います。Claude Codeで作るのが一番楽です。ただし、最初に設計をきちんと固めないと、何度も往復することになります。
まず公式ドキュメントとコードサンプルを読んで、エージェントの設計図(ブループリント)を書きました。
- 何を達成させたいか
- 良いアウトプットとはどういう状態か
この2点を明確にしたことで、Claude Codeが一発で本番使用に耐えるエージェントを作れる条件が整いました。
エージェントのブループリント
私が作ることにしたのは、PRレビューエージェントです。
ソフトウェアエンジニアやチームリードが今日から使えるユースケース。それがこの選択の理由です。
定義した内容はこうです:
PRレビューエージェント:プルリクエストを読み込み、コード変更を分析し、構造化されたレビューレポートを出力する。
やること:
- PRのdiffに含まれる変更ファイルをすべて読む
- 変更箇所の周辺コンテキストを把握する
- バグ、コードスメル、セキュリティ問題、テスト不足を検出する
- 変更がコードベースの既存パターンに沿っているか確認する
- 発見事項と修正提案を含む構造化Markdownレポートを書く
- テストスイートを実行してレポートに結果を含める
必要なツール:
Bash— gitコマンドの実行、diffの取得、テストスイートの実行- ファイル操作 — 変更ファイルの読み込みとレポートの書き出し
WebSearchとWebFetch— 不明なライブラリやパターンの調査(任意)
良いアウトプットの条件:
- Summary、Issues Found、Suggested Fixes、Test Results の4セクションで構成されたMarkdownファイル
- シニアエンジニアがそのまま読めるクオリティ。手直し不要な状態
制約:
- 最大30ターン — 徹底したレビューに十分で、かつ暴走しない範囲
- セッションあたりの予算上限 $2.00 — コストを予測可能に保つ
- パーミッションモード
acceptEdits— レポートへのファイル書き込みを自動承認し、シェルコマンドはゲートで制御
このブループリントがそのままClaude Codeへのプロンプトになりました。
Claude Code × Claude Managed Agents ドキュメント
ブループリントが固まったので、ターミナルでClaude Codeを起動しました。
使ったプロンプトはこれです:
以下のURLでClaude Managed Agentsのドキュメントを読んでください: https://platform.claude.com/docs/en/managed-agents/overview https://platform.claude.com/docs/en/managed-agents/quickstart その後、AnthropicのPython SDKとManaged Agentsベータを使って、 本番対応のPRレビューエージェントを作ってください。 エージェントの要件: 1. ディレクトリパスを入力として受け取る 2. git diffを実行して変更ファイルを取得する 3. 変更ファイルとその周辺のコードベースコンテキストをすべて読む 4. バグ、コードスメル、セキュリティ問題、テスト不足を特定する 5. pytestで既存のテストスイートを実行する 6. 4つのセクション(Summary、Issues Found、Suggested Fixes、Test Results)を持つ 構造化Markdownレビューレポートを作成する 要件: - ツールタイプに agent_toolset_20260401 を使用する - max_turns を30、max_budget_usd を2.00に設定する - session.status_idle を含むすべてのストリーミングイベントを適切に処理する - 適切なエラーハンドリングを含める - エージェントIDと環境IDを保存して再利用できるようにする まずドキュメントを読んでから、ステップごとに作成してください
Claude Codeは最初にドキュメントを読みました。両方のページをフェッチした。
プロンプトにURLを入れた理由がここにあります。公式ドキュメントを読んでから作らせることで、正確なAPIの形を理解した上でコードを生成します。
その後、プロジェクトディレクトリを確認してから3つのファイルを生成しました。
pr_review_agent.py— 389行、エージェントの完全な実装requirements.txt— 依存関係は1つだけ:anthropic>=0.49.0README.md— 161行、使い方・アーキテクチャ・CLIリファレンスの完全ガイド
アーキテクチャはManaged Agentsのドキュメントに記載されたパターンそのものになっています。
エージェント作成 — 正しいツールタイプと詳細なシステムプロンプト:
agent = client.beta.agents.create( name="PR Review Agent", model="claude-sonnet-4-6", system=SYSTEM_PROMPT, tools=[ # agent_toolset_20260401 は完全な組み込みツールセットを有効にします: # bash、ファイルread/write/edit/glob/grep、ウェブ検索、ウェブフェッチ {"type": "agent_toolset_20260401"}, ],
)環境 — 無制限ネットワークのクラウドコンテナ:
environment = client.beta.environments.create( name="pr-review-env", config={ "type": "cloud", "networking": {"type": "unrestricted"}, },
)セッション — 適切な制限と実行ごとの説明的なタイトル:
session = client.beta.sessions.create( agent=agent_id, environment_id=environment_id, title=f"PR Review — {repo_name} — {timestamp}", max_turns=30, max_budget_usd=2.00,
)ストリーミング — メッセージ送信前に開き、すべてのイベントタイプを処理:
with client.beta.sessions.events.stream(session.id) as stream: client.beta.sessions.events.send( session.id, events=[{"type": "user.message", "content": [...]}], ) for event in stream: match event.type: case "agent.message": for block in event.content: print(block.text, end="", flush=True) case "agent.tool_use": print(f"\n [tool: {event.name}]", flush=True) case "session.status_idle": print("AGENT FINISHED") break case "session.status_error": print(f"[ERROR]: {event.error}") break case "session.budget_exceeded": print("[WARN] Budget limit reached") breakIDの永続化 — エージェントIDと環境IDを agent_config.json に保存して再利用:
def get_or_create_agent(client, config, fresh): if not fresh and "agent_id" in config: print(f"[agent] Reusing existing agent: {config['agent_id']}") return config["agent_id"], config # ... 新しいエージェントを作成2回目以降のレビューは同じエージェントと環境を再利用します。新しく作り直す場合は
--freshフラグを使います。
動作確認
実際に動かすのは3ステップです:
pip install -r requirements.txt export ANTHROPIC_API_KEY="sk-ant-..." python pr_review_agent.py /path/to/your/repo
初回実行時にエージェントと環境が作成され、IDが agent_config.json に保存されます。
2回目以降はそのIDを再利用します。
まとめ
Claude Managed Agentを作る一番簡単な方法を探しているなら、Claude Codeが答えです。
一番大事なのはブループリントを書くステップです。Claude Codeは説明した通りに作ります。説明を明確にすることが全てです。
試してみたい方は、上のプロンプトをそのまま使えます。
ドキュメントを読んで、ブループリントを書いて、あとはClaude Codeに任せてください。
TL;DR
- Claude Managed Agentsは長時間・非同期タスク向けのエージェント基盤です
- 作る前にブループリント(何をするか・良いアウトプットとは何か)を書くと一発で完成に近いものができます
- Claude Codeにドキュメント URLを渡すことで、正確なAPI仕様を読んだ上でコードが生成されます
- エージェント・環境・セッションの3層構造を理解することが実装の核心です
- IDを保存して再利用することで、毎回の起動コストを抑えられます
パイソンエンジニア部