Back to all posts

VM0 の GitHub Actions 連携で AI エージェントを自動化

はじめに

本日、vm0-ai/run-actionという実用的な例を共有しました。これはCI/CDパイプラインから直接VM0ワークフローをトリガーできるGitHub Actionです。この統合により、エージェント自動化がGitHubリポジトリに組み込まれ、AIエージェントのスケジュール実行と自動実行が簡単になります。

VM0とは

VM0は、AIエージェントを構築するためのエージェントランタイムです。エージェントスキルのオーケストレーション、サンドボックス内でのエージェント実行、自然言語を使用したエージェントワークフローの定義を行うためのインフラストラクチャを提供します。

GitHub Actionとは

GitHub Actionsは、イベントまたはスケジュールに基づいてワークフローを実行できる、GitHub組み込みの自動化プラットフォームです。cronジョブを使用すると、CIパイプライン、バックグラウンドジョブ、またはAIエージェントの実行など、一定の間隔でタスクを自動的に実行できます。

ローカルからクラウドへ:GitHub ActionsでVM0ワークフローを実行する

以前は、VM0ワークフローの実行にはローカルマシンからvm0 runコマンドを実行する必要がありました。これは開発とテストには適していましたが(VM0はベータ版です!)、以下の課題がありました:

新しいvm0-ai/run-actionを使用すると、シンプルなアクション設定を使用してGitHub ActionsからVM0ワークフローを直接トリガーできるようになりました。手動でのコマンド実行は不要で、エージェントタスクを記述するだけで、GitHubがスケジューリングと実行を処理します。

はじめに:最初のVM0 GitHub Action

GitHub ActionsでVM0を使用するのは簡単です。基本的な例を以下に示します:

- name: Run VM0 Agent
  uses: vm0-ai/run-action@v1
  with:
    agent: my-agent
    prompt: "Build and test the project"
    artifact-name: my-artifact
    vm0-token: ${{ secrets.VM0_TOKEN }}

認証の設定

GitHub ActionsをVM0で認証するには、リポジトリにVM0_TOKENシークレットを設定する必要があります。これは一度だけ行う設定です:

# VM0認証トークンを生成し、GitHub Secretsに保存する
vm0 auth setup-token | gh secret set VM0_TOKEN

このコマンドは、ローカルのVM0認証からトークンを生成し、GitHubリポジトリのシークレットに安全に保存し、ワークフローで使用できるようにします。

実例:自動コンテンツ公開

VM0 GitHub Actions統合の威力を実証する完全な例を見ていきましょう。毎日のAIニュース記事をdev.toに公開する自動コンテンツファームを作成します。

シナリオ

vm0-cookbooks/104-content-farmに既存のVM0ワークフローがあり、毎日のAIニュースを収集して記事を公開しています。このワークフローをスケジュールに従って自動的に実行したいと考えています。

ステップ1:GitHubリポジトリを作成する

まず、自動化ワークフローを格納する新しいリポジトリを作成します:

# リポジトリを作成してセットアップする
git clone <https://github.com/yourusername/vm0-content-farm>
cd vm0-content-farm

ステップ2:ワークフローを設定する

リポジトリに.github/workflows/daily.yamlを作成します:

name: Content Farm

on:
  schedule:
    # Run at 10:00 AM UTC+8 (2:00 AM UTC) every day
    - cron: '0 2 * * *'
  workflow_dispatch:

jobs:
  run-content-farm:
    runs-on: ubuntu-latest
    steps:
      - name: Run Content Farm Agent
        uses: vm0-ai/run-action@v1
        with:
          agent: content-farm
          prompt: "Write an article about recent AI developments, providing brief summaries of each story to help readers quickly browse the news over their morning coffee"
          artifact-name: content-farm-output
          vm0-token: ${{ secrets.VM0_TOKEN }}
          secrets: |
            CLAUDE_CODE_OAUTH_TOKEN=${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
            FAL_KEY=${{ secrets.FAL_KEY }}
            DEVTO_API_KEY=${{ secrets.DEVTO_API_KEY }}

主要なコンポーネントを詳しく見ていきましょう:

ステップ3:シークレットを設定する

リポジトリに必要な認証トークンを設定します:

# Claude Code認証を設定する
claude setup-token
gh secret set CLAUDE_CODE_OAUTH_TOKEN --body "your-claude-token"

# その他の必要なAPIキーを設定する
gh secret set FAL_KEY --body "your-fal-key"
gh secret set DEVTO_API_KEY --body "your-devto-api-key"

セキュリティに関する注意:これらのシークレットはGitHubに安全に保存され、ワークフローのみがアクセスできます。ログやワークフロー出力に公開されることはありません。

ステップ4:自動デプロイメントワークフローを追加する

.github/workflows/publish.ymlを作成します:

name: Publish Agent

on:
  push:
    branches:
      - main

jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: vm0-ai/compose-action@v1
        with:
          vm0-token: ${{ secrets.VM0_TOKEN }}

これにより、mainブランチへのプッシュごとにエージェント設定が自動的にデプロイされます。手動でのvm0 composeは不要です。

ステップ5:デプロイとテスト

# デプロイ:
# content-farmエージェント設定を取得する
git clone https://github.com/vm0-ai/vm0-cookbooks
cp -r vm0-cookbooks/104-content-farm/* ./

# プッシュして自動デプロイをトリガーする
git add .
git commit -m "feat: add content farm agent"
git push origin main

# テスト:
# ワークフローを手動でトリガーする
gh workflow run scheduled-run.yml

以上です!エージェントはプッシュ時に自動デプロイされ、スケジュールに従って実行されます。

まとめ

VM0 GitHub Actions統合により、AIエージェントを既存の開発ワークフローに組み込むことができます。

エージェントを手動で実行したり、一回限りのスクリプトとして扱う代わりに、CI/CDパイプライン内で直接実行し、スケジュールに従って実行できます。これにより、以下が容易になります:

コンテンツの公開、レポートの生成、コードレビュー、内部ワークフローの自動化など、VM0 GitHub Actionsは必要なときにAIエージェントを実行するシンプルで信頼性の高い方法を提供します。

開始するには、実際の例についてはcookbooksリポジトリを参照し、独自のGitHubワークフローでvm0-ai/run-actionを試してください。

追加リソース

Stay in the loop

// Get the latest insights on agent-native development.

SubscribeJoin Discord