OpenHands GitHub Action完全ガイド – 自動化でさらなる生産性向上を

AIエージェント

概要

OpenHands GitHub Actionは、GitHubリポジトリでのissueやプルリクエストに対してAIエージェントが自動的に作業を実行する強力な自動化ツールです。これまでCLIでの直接操作について解説してきましたが、GitHub Actionを導入することで、チーム開発での生産性を大幅に向上させることができます。

前回の記事のおさらい

本記事は以下の記事の続編です:

これらの記事では個人での開発効率化に焦点を当てましたが、今回はチーム開発での自動化について解説します。

OpenHands GitHub Actionとは

OpenHands GitHub Actionは、GitHubのワークフロー機能を活用してAIエージェントを自動実行するサービスです。issueやプルリクエストに特定のラベルを付けたり、特定のコメントを投稿することで、AIエージェントが自動的にコードの修正や機能実装を行います。

主要な特徴

  • 自動トリガー: ラベルやコメントで簡単に起動
  • プルリクエスト生成: 修正内容を自動でプルリクエストとして提出
  • 反復的改善: フィードバックに基づいた継続的な改善
  • カスタマイズ可能: チーム固有の設定や指示を追加可能

セットアップ方法

1. リポジトリへのインストール

OpenHands GitHub Actionを新しいリポジトリにインストールするには、以下のワークフローファイルを作成します。

.github/workflows/openhands-resolver.yml を作成:

oha-demo-001/.github/workflows/oha.yml at main · Sunwood-ai-labs/oha-demo-001
Contribute to Sunwood-ai-labs/oha-demo-001 development by creating an account on GitHub.
name: Resolve Issue with OpenHands

on:
  issues:
    types: [labeled]
  pull_request:
    types: [labeled]
  issue_comment:
    types: [created]
  pull_request_review_comment:
    types: [created]
  pull_request_review:
    types: [submitted]

permissions:
  contents: write
  pull-requests: write
  issues: write

jobs:
  call-openhands-resolver:
    uses: All-Hands-AI/OpenHands/.github/workflows/openhands-resolver.yml@main
    with:
      macro: ${{ vars.OPENHANDS_MACRO || '@openhands-agent' }}
      max_iterations: ${{ fromJson(vars.OPENHANDS_MAX_ITER || 50) }}
      base_container_image: ${{ vars.OPENHANDS_BASE_CONTAINER_IMAGE || '' }}
      LLM_MODEL: ${{ vars.LLM_MODEL || 'anthropic/claude-sonnet-4-20250514' }}
      target_branch: ${{ vars.TARGET_BRANCH || 'main' }}
      runner: ${{ vars.TARGET_RUNNER }}
    secrets:
      PAT_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      PAT_USERNAME: ${{ secrets.PAT_USERNAME }}
      LLM_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}

2. 必要な設定

Repository Secrets

  • ANTHROPIC_API_KEY: Anthropic Claude APIキー
  • PAT_USERNAME: GitHubユーザー名

GitHub設定

リポジトリの Settings > Actions > General で以下を設定:

  • Allow GitHub Actions to create and approve pull requests: ✅ ONにする

Repository Variables(オプション)

これらの設定は任意です。指定しない場合はデフォルト値が使用されます:

  • LLM_MODEL: 使用するLLMモデル(デフォルト: anthropic/claude-sonnet-4-20250514
  • OPENHANDS_MACRO: カスタムマクロ(デフォルト: @openhands-agent
  • OPENHANDS_MAX_ITER: エージェントの最大反復回数(デフォルト: 50)
  • TARGET_BRANCH: プルリクエストのターゲットブランチ(デフォルト: main

基本的な使い方

Issue解決の自動化

方法1: ラベルを使用

  1. GitHubでissueを作成
  2. fix-meラベルを追加
  3. OpenHandsエージェントが自動的に問題を分析し、修正を試行
  4. 修正内容がプルリクエストとして提出される

方法2: コメントを使用

  1. issueまたはプルリクエストにコメントを投稿
  2. コメントを@openhands-agentで開始(デフォルトマクロ)
  3. エージェントが該当のコメント内容に基づいて作業を実行

使用例

バグ修正の依頼

Issue タイトル: ログイン機能でメールアドレスの検証が正しく動作しない

Issue 本文:
ユーザーがログインする際、無効なメールアドレス形式でもログインできてしまう問題があります。
バリデーション機能を追加して、正しいメールアドレス形式のみを受け付けるようにしてください。

ファイル: src/auth/login.js

ラベル fix-me を追加すると、エージェントが:

  1. コードを分析
  2. バリデーション機能を実装
  3. テストケースを追加
  4. プルリクエストを作成

機能追加の依頼

@openhands-agent

高度な設定

カスタム指示の追加

リポジトリルートに .openhands/instructions.md ファイルを作成することで、エージェントにカスタム指示を提供できます:

oha-demo-001/.openhands/instructions.md at main · Sunwood-ai-labs/oha-demo-001
Contribute to Sunwood-ai-labs/oha-demo-001 development by creating an account on GitHub.
# OpenHands カスタム指示

## プロジェクト概要
このプロジェクトは React + TypeScript で構築された Web アプリケーションです。

## コーディング規約
- ESLint と Prettier の設定に従ってください
- コンポーネントは関数型で記述してください
- テストファイルは `__tests__` ディレクトリに配置してください

## 禁止事項
- 本番環境の設定ファイルは変更しないでください
- データベースマイグレーションは直接実行しないでください

## 推奨事項
- 新機能追加時は必ずテストケースを含めてください
- コメントは日本語で記述してください

環境変数の詳細設定

変数名 説明
LLM_MODEL Variable 使用するLLMモデル anthropic/claude-sonnet-4-20250514
OPENHANDS_MAX_ITER Variable エージェントの最大反復回数 50
OPENHANDS_MACRO Variable カスタムマクロ @openhands-agent
OPENHANDS_BASE_CONTAINER_IMAGE Variable カスタムサンドボックスイメージ custom_image
TARGET_BRANCH Variable プルリクエストのターゲットブランチ main
TARGET_RUNNER Variable ワークフローを実行するランナー ubuntu-latest

まとめ

OpenHands GitHub Actionは、これまでのCLI使用で培った生産性をチーム全体に拡張する強力なツールです。適切にセットアップすることで、issueの自動解決、コードレビューの効率化、継続的な品質改善を実現できます。

次のステップ

  1. 導入開始: 小規模なリポジトリでテスト運用
  2. 設定最適化: チーム固有の要件に合わせた設定調整
  3. ワークフロー統合: 既存の開発プロセスとの統合
  4. チーム教育: メンバーへの使用方法共有

OpenHands CLIでの個人生産性向上から始まり、GitHub Actionでのチーム生産性向上まで、AI支援開発の全体像を活用して、より効率的で質の高い開発を実現してください。

関連リンク

コメント

タイトルとURLをコピーしました