はじめに
本日、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はベータ版です!)、以下の課題がありました:
- スケジュール自動化 - 特定の時刻にエージェントを実行するには手動介入が必要でした
- CI/CD統合 - デプロイメントパイプラインへのエージェント組み込みが複雑でした
- チームコラボレーション - チーム間でのエージェント実行の共有と調整が困難でした
- 本番デプロイメント - 本番環境でのエージェント管理が課題でした
新しい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 }}
主要なコンポーネントを詳しく見ていきましょう:
- schedule: cron構文を使用して毎日午前2時(PST、UTC-8)に実行
- workflow_dispatch: テスト用の手動トリガーを許可
- agent: 実行するVM0エージェントを指定
- prompt: エージェントが実行すべき内容の指示を提供
- secrets: 必要なAPIキーとトークンをエージェントに渡す
ステップ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を試してください。
追加リソース
- VM0ドキュメント: vm0.ai
- GitHub Action: vm0-ai/run-action
- Cookbooks: vm0-ai/vm0-cookbooks
- コミュニティDiscord: discord.gg/WMpAmHFfp6
- GitHubリポジトリ: vm0-ai/vm0