はじめに
こんにちは。イオンネクストで技術戦略をしています。@arairyusです。
Code with Claudeが先週ありましたね。Claude Code Action(Vertex AI)を早速触ってみました。
公式ドキュメント通りだとセットアップできない箇所があったので情報シェアと触ってみた感想です。
GitHub Copilot Coding AgentやCopilot Code Review、Devinとの使用感も比較してみました。
エンタープライズでのAI推進をされている方の一助になれば幸いです。
なぜGoogle Cloud?
エンタープライズにおいて新規ツールの導入がめんどくさく大変で、既存のクラウド費用に混ぜ込めるのがかなりでかいです。AIツールが続々とリリース・アップデートされている時代で素早く「使える状態に持っていく」のは重要です。
また、既存のクラウドのアカウント管理に乗っかれるのも導入する側として非常に楽です。
そのような理由で、Cline × Vertex AIがイオンネクスト標準の開発環境になっています。
(VS Code LM APIでClaude Sonnet 4が使えているので一旦様子見中です)
AWSかGoogle Cloudを使っている企業の方は試しでClaude Code Actionを導入できるのありがたいですね。
個人的にですが、エンタープライズのAI推進を担当している方におすすめするならGoogle Cloudです。
GeminiとClaude使えるだけでも十分でかいですが、NotebookLM Enterpriseなど世の中で評判の良いAIツールをエンタープライズ向けに導入しやすい印象です。
Claude Code Action
GitHub Actions
Claude Codeを GitHub ワークフローに統合して、自動コードレビュー、PR管理、課題の分類を行います。Claude Code GitHub Actionsは、GitHubワークフローにAIを活用した自動化をもたらします。PRや課題で簡単に@claudeとメンションするだけで、Claudeはコードを分析し、プルリクエストを作成し、機能を実装し、バグを修正します – すべてプロジェクトの標準に従いながら行います。
https://docs.anthropic.com/ja/docs/claude-code/github-actions
正式名称がClaude Code GitHub ActionsなのかClaude Code Actionなのかよく分かりませんが、Claude CodeがGitHub上で動く機能です。(Devin的なものとイメージいただければOKです)
Claude Code同様にBedrockやVertex AIをAI Providerとして利用できます。
Vertex AI向けClaude Code Action設定手順
基本的に公式ドキュメント通りに進めればOKです。
Workload Identity Federationの設定はこんな感じでterraform module使えばいけます。
コード例
locals {
prefix = "hoge"
repo_list = [
"hoge"
]
}
module "sa" {
source = "terraform-google-modules/service-accounts/google//modules/simple-sa"
version = "~> 4.5"
project_id = local.project_id
name = "${local.prefix}-claude-code"
project_roles = [
"roles/aiplatform.user"
]
}
module "claude_code_wif" {
source = "terraform-google-modules/github-actions-runners/google//modules/gh-oidc"
version = "~> 5.0"
project_id = local.project_id
pool_id = "${local.project_id}-claude-pool"
provider_id = "${local.project_id}-claude"
attribute_condition = "assertion.repository_owner == ''"
sa_mapping = {
for repo in local.repo_list : repo => {
sa_name = module.sa.id
attribute = "attribute.repository//${repo}"
}
}
}
公式ドキュメントのサンプルYamlファイルの修正箇所です。
./.github/actions/claude-pr-action
ってどれ?となるのですが、anthropics/claude-code-actionに変更すればOKです。
モデルをSonnet 4に変えてます。anthropic_model
ではなくmodel
に変更しています。
DEPRECATED: Use model instead. Kept for backward compatibility.
VERTEX_REGION_CLAUDE_3_7_SONNET
は公式ドキュメントに見当たらなかったので、削除してますが問題なく動いてます。
-name: Claude PR Action
+name: Claude Assistant
permissions:
contents: write
pull-requests: write
issues: write
id-token: write
on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
issues:
types: [opened, assigned]
jobs:
- claude-pr:
+ claude-assistant
if: |
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'issues' && contains(github.event.issue.body, '@claude'))
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Generate GitHub App token
id: app-token
uses: actions/create-github-app-token@v2
with:
app-id: ${{ secrets.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
- name: Authenticate to Google Cloud
id: auth
uses: google-github-actions/auth@v2
with:
workload_identity_provider: ${{ secrets.GCP_WORKLOAD_IDENTITY_PROVIDER }}
service_account: ${{ secrets.GCP_SERVICE_ACCOUNT }}
- - uses: ./.github/actions/claude-pr-action
+ - uses: anthropics/claude-code-action@beta
with:
trigger_phrase: "@claude"
timeout_minutes: "60"
github_token: ${{ steps.app-token.outputs.token }}
use_vertex: "true"
- anthropic_model: "claude-3-7-sonnet@20250219"
+ model: 'claude-sonnet-4@20250514'
env:
ANTHROPIC_VERTEX_PROJECT_ID: ${{ steps.auth.outputs.project_id }}
CLOUD_ML_REGION: us-east5
- VERTEX_REGION_CLAUDE_3_7_SONNET: us-east5
PR Review用はこんな感じにしています。prompt
がinputになさそうだったのでdirect_prompt
にしています。
- uses: anthropics/claude-code-action@beta
with:
direct_prompt: 'PR変更をレビューしてください。コード品質、潜在的なバグ、パフォーマンスの問題に焦点を当ててください。適切な改善点を提案してください。マージしてよいかどうかを明確に示してください。'
timeout_minutes: '60'
github_token: ${{ steps.app-token.outputs.token }}
use_vertex: 'true'
model: 'claude-sonnet-4@20250514'
env:
ANTHROPIC_VERTEX_PROJECT_ID: ${{ steps.auth.outputs.project_id }}
CLOUD_ML_REGION: us-east5
他Coding Agentとの比較
GitHub Copilot Coding Agent
すぐにDraft PRを作成して、実行計画もPR Descriptionに更新されます。
作成されたコードは正常に実行できました。
README.md、README_ja.mdやヘルパースクリプトがpushされており気が利いている印象です。
PR Descriptionも丁寧に書かれています。
GitHub Copilot Coding Agentの処理の流れ
Draft PRを作成
実行計画の立案
実装
Claude Code Action
Issueにコメントし、実行計画を更新して最後にユーザーがPRを作成します。
※作成されたコードはAPI エラーで動きませんでした。
このリポジトリはサンドボックス用でGitHubアカウント名でディレクトリを作成するのがルールです。CLAUDE.mdがpush済みだったためCLAUDE.mdを考慮した実装になっています。(フェアじゃなかった)
Claude Code Actionの処理の流れ
Issueにコメントが書かれる
実行計画の立案
実装(PR作成はユーザーが実施)
Devin
基本的な機能テストを実施済み
とPR Descriptionに記載がありますが、Devin Sessionを見てみましたがテストしてません。嘘ついてます。
requirements.txt
くらいはpushしてほしいです。
※作成されたコードはArgumentErrorで動きませんでした。
argsが--output
と--org
がどっちも-o
でconflict起こしてました。。。
def parse_arguments():
"""コマンドライン引数をパースします"""
parser = argparse.ArgumentParser(description='PRレビュー時間分析ツール')
parser.add_argument('--org', '-o', required=True, help='GitHub Organization名')
parser.add_argument('--repo', '-r', help='特定のリポジトリ名(指定しない場合はOrganization内の全リポジトリを分析)')
parser.add_argument('--days', '-d', type=int, default=30, help='過去何日分のPRを分析するか(デフォルト: 30日)')
parser.add_argument('--token', '-t', help='GitHub APIトークン(環境変数 GITHUB_TOKEN でも設定可能)')
parser.add_argument('--output', '-o', default='pr_review_times.csv', help='出力CSVファイル名(デフォルト: pr_review_times.csv)')
return parser.parse_args()
※ 普段Devinの品質は良さげな印象なのですが、今回は少しいまいちでした。
Devinの処理の流れ
※コンソールで指示しています。
PRが作成されます。
他レビューツールとの比較
PR Agentは導入していないのでCopilot Code ReviewとClaude Code Actionのレビューを比較してみました。
Devinが作成したPull Requestをレビューさせてみました。
Copilot Code Review
通常のPRレビューのように該当行へのコメント、Suggested changeを出してくれて良きです。
Copilot Review結果
Claude Code Action
プロンプト次第かもしれませんが、公式ドキュメントのプロンプトをベースとした場合、どのコードに対する指摘なのか視覚的に分かりづらい印象です。
Copilotと同様の箇所について指摘がされていました。
Claude Codeレビュー結果
まとめ
他ツールと比較しても、細かな違いはあるものの実用できそうな品質でした。
プロンプトの見直しやCLAUDE.mdへのナレッジ蓄積で精度はもう少し向上すると思います。
また、今回はClaude Sonnet 4を使いましたが、Claude Opus 4に切り替えることで結果も変わると思います。
月額ライセンスや新しいAIツールへの課金などコスト面でのエージェント型AIの導入にハードルを感じている方は、まずはClaude Code Action & (Vertex AI or Bedrock)でどんなものか試してみるとよいかと思います。
※もちろんVertex AIは従量課金なのでコストコントロールは必要です。
参考
イオングループで、一緒に働きませんか?
イオングループでは、エンジニアを積極採用中です。少しでもご興味もった方は、キャリア登録やカジュアル面談登録などもしていただけると嬉しいです。
皆さまとお話できるのを楽しみにしています!
Views: 0