Back to all posts

Otomatiskan agen AI Anda dengan integrasi VM0 GitHub Actions

Pendahuluan

Hari ini, kami membagikan contoh praktis menggunakan vm0-ai/run-action, sebuah GitHub Action yang memungkinkan Anda memicu workflow VM0 langsung dari pipeline CI/CD Anda. Integrasi ini membawa otomatisasi agen ke dalam repositori GitHub Anda, sehingga mudah untuk menjadwalkan dan menjalankan agen AI secara otomatis.

Apa itu VM0

VM0 adalah runtime agen untuk membangun agen AI. Ia menyediakan infrastruktur untuk mengorkestrasi keterampilan agen, menjalankan agen di dalam sandbox, dan mendefinisikan workflow agen menggunakan bahasa alami.

Apa itu GitHub Action

GitHub Actions adalah platform otomatisasi bawaan GitHub yang memungkinkan Anda menjalankan workflow berdasarkan peristiwa atau berdasarkan jadwal. Menggunakan cron job, Anda dapat secara otomatis mengeksekusi tugas pada interval tetap, seperti menjalankan pipeline CI, background job, atau agen AI.

Dari lokal ke cloud: Menjalankan workflow VM0 dengan GitHub Actions

Sebelumnya, menjalankan workflow VM0 mengharuskan eksekusi perintah vm0 run dari mesin lokal Anda. Meskipun ini bekerja dengan baik untuk pengembangan dan pengujian (lagi pula VM0 masih dalam beta!), hal ini menghadirkan tantangan untuk:

Dengan vm0-ai/run-action yang baru, Anda kini dapat memicu workflow VM0 langsung dari GitHub Actions menggunakan konfigurasi action yang sederhana. Tidak ada lagi eksekusi perintah manual, cukup jelaskan tugas agen Anda dan biarkan GitHub menangani penjadwalan dan eksekusinya.

Memulai: GitHub Action VM0 pertama Anda

Menggunakan VM0 di GitHub Actions itu mudah. Berikut contoh dasarnya:

- 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 }}

Menyiapkan autentikasi

Untuk mengautentikasi GitHub Actions Anda dengan VM0, Anda perlu menyiapkan secret VM0_TOKEN di repositori Anda. Ini adalah proses penyiapan satu kali:

# Generate a VM0 authentication token and store it in GitHub Secrets
vm0 auth setup-token | gh secret set VM0_TOKEN

Perintah ini menghasilkan token dari autentikasi VM0 lokal Anda dan menyimpannya dengan aman di secret repositori GitHub Anda, sehingga tersedia untuk workflow Anda.

Contoh dunia nyata: Penerbitan konten otomatis

Mari kita telusuri sebuah contoh lengkap yang menunjukkan kekuatan integrasi VM0 GitHub Actions. Kita akan membuat content farm otomatis yang menerbitkan artikel berita AI harian ke dev.to.

Skenarionya

Kita punya workflow VM0 yang sudah ada di vm0-cookbooks/104-content-farm yang mengumpulkan berita AI harian dan menerbitkan artikel. Sekarang, kita ingin workflow ini berjalan secara otomatis sesuai jadwal.

Langkah 1: Buat repositori GitHub

Pertama, buat repositori baru untuk menampung workflow otomatis Anda:

# Create and set up your repository
git clone <https://github.com/yourusername/vm0-content-farm>
cd vm0-content-farm

Langkah 2: Konfigurasikan workflow

Buat .github/workflows/daily.yaml di repositori Anda:

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 }}

Mari kita uraikan komponen utamanya:

Langkah 3: Siapkan secret Anda

Konfigurasikan token autentikasi yang diperlukan di repositori Anda:

# Set up Claude Code authentication
claude setup-token
gh secret set CLAUDE_CODE_OAUTH_TOKEN --body "your-claude-token"

# Set up other required API keys
gh secret set FAL_KEY --body "your-fal-key"
gh secret set DEVTO_API_KEY --body "your-devto-api-key"

Catatan keamanan: Secret ini disimpan dengan aman di GitHub dan hanya dapat diakses oleh workflow Anda. Secret ini tidak pernah terekspos dalam log atau output workflow.

Langkah 4: Tambahkan workflow auto-deployment

Buat .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 }}

Ini secara otomatis men-deploy konfigurasi agen Anda pada setiap push ke main. Tidak perlu vm0 compose manual.

Langkah 5: Deploy dan uji

  Deploy:
  # Get the content-farm agent configuration
  git clone https://github.com/vm0-ai/vm0-cookbooks
  cp -r vm0-cookbooks/104-content-farm/* ./

  # Push to trigger auto-deployment
  git add .
  git commit -m "feat: add content farm agent"
  git push origin main

  Test:
  # Manually trigger the workflow
  gh workflow run scheduled-run.yml

Selesai! Agen Anda kini akan ter-deploy otomatis saat push dan berjalan sesuai jadwal.

Kesimpulan

Integrasi VM0 GitHub Actions membantu Anda membawa agen AI ke dalam workflow pengembangan yang sudah Anda miliki.

Alih-alih menjalankan agen secara manual atau memperlakukannya sebagai skrip sekali pakai, Anda dapat menjalankannya langsung di dalam pipeline CI/CD Anda dan sesuai jadwal. Ini mempermudah untuk:

Entah Anda sedang menerbitkan konten, membuat laporan, mereview kode, atau mengotomatiskan workflow internal, VM0 GitHub Actions memberi Anda cara yang sederhana dan andal untuk menjalankan agen AI ketika dibutuhkan.

Untuk memulai, jelajahi repositori cookbooks kami untuk contoh yang berfungsi, dan coba

vm0-ai/run-action di workflow GitHub Anda sendiri.

Sumber daya tambahan

Related Articles

Stay in the loop

// Get the latest insights on AI teammates and collaboration.

SubscribeJoin Discord