はじめに
巷で話題の Claude Code Action を Amazon Bedrock と OIDC 連携して GitHub Actions 上で実行する方法およびその実行結果についての共有です。
Claude Code Action から Amazon Bedrock 経由で Claude を呼び出し、Issue の分析や実装、Pull Request レビューなどをしてもらうことができます。
使いやすさとコスト・性能のバランスが良く、さすが Anthropic さん・・!という感動をお届けするために本記事を書いています。
検証用リポジトリ
OIDC 連携設定を IaC (AWS CDK) でデプロイするための AWS CDK 資材一式と、ワークフローの yaml ファイル、CLAUDE.md などをリポジトリにまとめて公開しています。
サンプルプロジェクトとして AI (Amazon Q Developer CLI) に作ってもらったテトリスプロジェクトが含まれており、テトリスプロジェクトへの Issue, Pull Request, Comment などの例がご覧いただけます。
本記事では詳しいデプロイ手順などは省略しますが、詳細はリポジトリの README をご確認ください。
弊環境の都合により Claude 3.7 Sonnet を使っていますが、Claude 4 でもモデル ID を変更すればほぼ同様の設定で利用できるはずです。
CLAUDE.md ではユーザーに関西弁で応答するように指示しています。
偉大なる先人
本記事の内容の98%ほどは以下の2記事のおかげで成り立っています。感謝申し上げます。
Claude Code Action の概要、GitHub と AWS の OIDC 連携設定、ワークフローの設定項目の詳細などについて知りたい方は以下の記事もご覧ください。
動かしてみる
Issue 対応案検討
まずは claude さんに大雑把に機能追加案を考えてもらいました。
TODO リストも自分で考えて、順番に対応して適宜アップデートしてくれるようです。
Issue 対応の実装
claude さんが考えてくれた案の中から良さげなものを選び、実装もお願いしてみました。
Pull Request の作成は人力とはいえ、claude さんに実装してもらった後に出てくる Create PR リンクを押すだけです。
Pull Request レビュー
claude さんに言われるがまま Create PR をボタンを押して Pull Request を作成したら claude さんにレビューをお願いします。Pull Request の概要文も用意してくれます。
Pull Request レビュー対応
claude さんにレビューをいただいたので、claude さんに修正をお願いしてみます。
TODO リストを自分で考えながら、順番にレビュー対応してくれました。
Pull Request レビュー再び
最後に claude さんに修正内容を再レビューしてもらって対応完了です。
自分を褒めるのが上手です。
一応ブラウザでも確認してみましたが、いい感じに動いていそうです。
というわけで Issue を立ててから @claude
だけで機能追加ができてしまいました。
Pull Request 解説
claude さんの実装でわからない部分があっても問題ありません。
いっちょかみして人間さんのバリューを発揮しておきましょう👍。
コード中のコメントにも claude さんは答えてくれます。
Claude Code Action w/ Amazon Bedrock の何が嬉しいか
Claude Code Action の嬉しさ
プロンプトの工夫をせずともそれっぽく動く
こちらの Pull Request に対する GitHub Actions の実行ログを以下に一部抜粋して記載します。
You are Claude, an AI assistant designed to help with GitHub issues and pull requests. Think carefully as you analyze the context and respond appropriately. Here's the context for your current task:
formatted_context>
PR Title: テトリスにカスタムテーマ機能を実装
PR Author: ymhiroki
PR Branch: claude/issue-1-20250601_104027 -> main
PR State: OPEN
PR Additions: 239
PR Deletions: 23
Total Commits: 2
Changed Files: 3 files
/formatted_context>
pr_or_issue_body>
...
特にこちらから下準備をしたわけでもないにも関わらず、
や
といった GitHub 上の情報がコンテキストとして付加されてから Claude にリクエストされていることがわかります。
従来でも bedrock-pr-reviewer のように自身で定義したプロンプトにこれらの情報を与える手法がありましたが、同様の仕組みが取り入れられているようです。
Anthropic 公式からリリースされており、Claude モデルでいい感じに動くようになっていそう
先ほどのプロンプトからも分かるように、XML タグを用いた構造化 など、Claude モデルのプロンプトエンジニアリングのプラクティスに沿った事前設定がされています。
Claude Code Action は Claude Code SDK を用いて Anthropic 社の手によって開発されています。モデルプロバイダー自身でツールチェーンを整備してくれるほどありがたいことはありません。プロンプトエンジニアリングで消耗する前に肩に乗っかってしまいましょう (全部は賭けないでも良いです)。
公式ページ にも
Claude Code GitHub Actionsは現在ベータ版です。機能や性能は、体験を改善する過程で進化する可能性があります。
と書いてあるので、将来のアップデートが楽しみです。
Amazon Bedrock の嬉しさ
従量課金 & $0 スタート
Devin や Claude Code Max (サブスクの方)、CodeRabbit など Claude Code Action と同じようなことができるツール・サービスはいくつかありますが、数百ドルからの最低料金+α となっているケースが散見されます。
Claude Code Action から Amazon Bedrock を呼び出す本構成の場合、全く使わなければ $0 で使った分だけの従量課金となっているため、キャッチアップのためにスモールスタートしたい、という場合などにフィットするのではないでしょうか。
既存の契約・支払い方法
ここまで本記事を読んでいただいている読者はすでに AWS を利用している方が多いのではないでしょうか。本構成の場合では料金は Amazon Bedrock のみで発生します。
部署・会社で新しく SaaS タイプの AI Coding Agent 系のツールを導入しようとした場合、利用料の見積もりをして予算を組んで契約して・・・といった手順が必要になるケースが多いのではないかと思います。本構成であればすでにお使いの AWS の料金に追加で Amazon Bedrock の料金がかかる形になるので、クイックに始めることができます。
データの取り扱いの安全性
ソースコードは多くの企業にとって非常に大切な資産です。ソースコードをモデルの学習に使われるのではないか、という懸念がソフトウェア開発に生成 AI を取り入れることのハードルになっている読者もいらっしゃるのではないでしょうか。
Amazon Bedrock では
Amazon Bedrock では、プロンプトおよび AI のレスポンスを保存またはログに記録することはありません。Amazon Bedrock は、プロンプトと完了を使用して AWS モデルをトレーニングせず、サードパーティーに配布しません。
Amazon Bedrock ユーザーガイド – データ保護
Amazon Bedrock で処理されたコンテンツが、Amazon Bedrock を使用している AWS リージョンの外に移動することはありますか?
Amazon Bedrock で処理されたすべてのカスタマーコンテンツは暗号化され、お客様が Amazon Bedrock を使用している AWS リージョンから移動することなく保管されます。
ユーザー入力とモデル出力はサードパーティのモデルプロバイダーが利用できるようになっていますか?
いいえ。ユーザーの入力とモデル出力は、どのモデルプロバイダーとも共有されません。
AWS とサードパーティーのモデルプロバイダーは、Amazon Bedrock への顧客の入力または Amazon Bedrock からの出力を使用して、Amazon Nova、Amazon Titan またはサードパーティーのモデルをトレーニングすることはありますか?
いいえ。AWS およびサードパーティーのモデルプロバイダーは、Amazon Bedrock への入力または Amazon Bedrock からの出力を使用して、Amazon Nova、Amazon Titan またはサードパーティーのモデルをトレーニングすることはありません。
Amazon Bedrock のよくある質問
とあり、AWS に閉じて最新 (Claude 3.7, 4) のモデルを利用することができます。
コスト
従量課金とはいえコストが気になることでしょう。
ワークフローの実行後、ログから total_cost
から一連のタスク処理にかかった料金が確認できます。
以下の Issue 対応の実装にかかった total_cost
は 0.7787443499999999
($) でした。
{
"type": "result",
"subtype": "success",
"cost_usd": 0.7787443499999999,
"is_error": false,
"duration_ms": 551928,
"duration_api_ms": 550683,
"num_turns": 65,
"result": "(no content)",
"total_cost": 0.7787443499999999,
"session_id": "0f1e1ca4-eac5-42f4-8b21-f174feefd095"
}
いちいちログを見に行くのは大変なので、タスクが終わるたびにコストも書いてくれると良いですね。ワークフローパズルをすればできそうな気もしますが。
Future Work
本記事の検証範囲には含めていませんが、やればできそうなこと、今後の Claude Code Actionに期待すること、利用者に求められそうなことを書いておきます。やってみたよ!などあれば教えてください。
テストの実行
What Claude Cannot Do には以下のように記載されています。
- Run Arbitrary Bash Commands: By default, Claude cannot execute Bash commands unless explicitly allowed using the allowed_tools configuration
- View CI/CD Results: Cannot access CI systems, test results, or build logs unless an additional tool or MCP server is configured
例えば実装の途中でテストを実行してその結果を踏まえて修正する、といったことをしてもらいたい場合には別途設定が必要です。
MCP Server の導入
Claude Code Action デフォルトでは以下のように、GitHub MCP Server のみが設定され、使い方が記載されています。
1. Create a Todo List:
- Use your GitHub comment to maintain a detailed task list based on the request.
- Format todos as a checklist (- [ ] for incomplete, - [x] for complete).
- Update the comment using mcp__github__update_issue_comment with each task completion.
例えば最新のドキュメントを取得する MCP Server を追加しても便利かもしれません。
リポジトリの構造化
本記事の検証においてはシンプルなテトリスプロジェクトに対して動作確認を実施しました。
リポジトリの規模が大きい、あるいは非自明な場合にはドキュメントを用意しておく、Issue の指示を明確にするなどの工夫が必要になるものと予想されます。トークンを浪費されたくなければ。。。
Claude.md 盆栽
本記事では Claude.md にはシンプルな口調の指定のみをしています。実際に claude さんと協働作業する場合にはコード規約やレビュールール、フォーマットなどを明確に記載する方が望ましいでしょう。
おわりに
Claude Code Action を動かしてみた感動をお伝えするため、検証結果について紹介させていただきました。プレビュー版とはいえここまで上手く動くと将来にも期待です。
Claude 4 でやったらもっと感動したよ、こういう使い方が良かったよ、こういうことはできないの?などありましたらコメントや X で反応いただけると嬉しいです。(それは違うでしょ、という点があればお手柔らかにご指摘いただけるとありがたいです。)
Views: 0