Tutorial Chaos Testing untuk AI Agent dan MCP Server dengan ResiliReplay
AW
Axel W

Dipublikasikan 31 Juli 2026

Tutorial Chaos Testing untuk AI Agent dan MCP Server dengan ResiliReplay

ResiliReplay adalah framework chaos testing open source yang dirancang khusus untuk menguji ketahanan AI agent dan MCP server. Dipublikasikan oleh aliengineering-byte di GitHub, tool ini memungkinkan developer untuk mensimulasikan kegagalan jaringan, latency tinggi, dan error tak terduga pada sistem berbasis LLM. Artikel ini membahas cara memasang dan menggunakan ResiliReplay untuk meningkatkan resiliensi infrastruktur AI-mu.

Mengapa AI Agent Butuh Chaos Testing

AI agent modern seringkali bergantung pada banyak komponen eksternal: LLM API, MCP server, database vector, dan layanan pihak ketiga. Ketika salah satu komponen tersebut gagal, agent bisa menghasilkan respons salah, masuk ke loop tak terbatas, atau bahkan melakukan tindakan tidak terduga. Chaos testing adalah disiplin yang memastikan sistem tetap berfungsi meski bagian-bagiannya rusak. Bagi developer yang membangun pipeline AI production, ini bukan lagi opsional: ini adalah kebutuhan fundamental.

Berbeda dengan unit test tradisional yang menguji fungsi dalam kondisi ideal, chaos testing secara aktif merusak environment. ResiliReplay dirancang untuk skenario spesifik AI: retry loop yang terlalu agresif, context window yang tiba-tiba terpotong, dan MCP tool yang timeout di tengah eksekusi.

Persiapan Lingkungan dan Instalasi

Sebelum memulai, pastikan sistem-mu memenuhi persyaratan berikut:

  • Python 3.10 atau lebih baru

  • Git untuk meng-clone repository

  • pip atau uv untuk manajemen dependensi

  • Akses ke project AI agent yang ingin diuji

Langkah pertama adalah meng-clone repository ResiliReplay dari GitHub:

git clone https://github.com/aliengineering-byte/resilireplay.git
cd resilireplay

Install dependensi yang dibutuhkan menggunakan pip. Disarankan untuk menggunakan virtual environment agar tidak mengganggu project lain:

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Jika project-mu menggunakan uv, kamu bisa langsung menjalankan uv pip install -r requirements.txt untuk instalasi yang lebih cepat.

Langkah 1: Konfigurasi Target Agent

ResiliReplay bekerja dengan memasang proxy atau interceptor di antara agent-mu dan dependensi eksternalnya. Buat file konfigurasi resili.yaml di root project yang ingin diuji. Berikut contoh konfigurasi dasar untuk agent yang menggunakan OpenAI API dan dua MCP server:

target:
  name: "my-ai-agent"
  endpoints:
    - url: "https://api.openai.com/v1/chat/completions"
      type: "llm"
    - url: "http://localhost:3000/sse"
      type: "mcp"
    - url: "http://localhost:3001/sse"
      type: "mcp"

chaos:
  latency:
    enabled: true
    min_ms: 100
    max_ms: 5000
  error_injection:
    enabled: true
    rate: 0.1
    codes: [500, 503, 429]

Konfigurasi di atas akan mensimulasikan latency acak antara 100ms hingga 5 detik, serta menyuntikkan HTTP error 500, 503, dan 429 pada 10% request. Kamu bisa menyesuaikan parameter sesuai karakteristik production environment-mu.

Langkah 2: Menjalankan Simulasi Chaos

Setelah konfigurasi selesai, jalankan ResiliReplay dengan perintah berikut:

python -m resilireplay --config resili.yaml --duration 300

Flag --duration 300 menentukan bahwa simulasi akan berjalan selama 300 detik atau 5 menit. Selama simulasi berlangsung, ResiliReplay akan mencatat setiap request yang lewat, menandai mana yang berhasil, mana yang gagal, dan mana yang mengalami degradasi performa. Output ditampilkan secara real-time di terminal dan juga disimpan ke folder ./reports/.

Penting untuk diingat: jalankan simulasi ini di environment staging atau development. Jangan pernah menjalankan chaos testing langsung di production tanpa persiapan matang dan rollback plan.

Langkah 3: Membaca Report dan Mengidentifikasi Titik Lemah

Setelah simulasi selesai, buka file report yang dihasilkan. Formatnya biasanya JSON dengan struktur seperti ini:

{
  "summary": {
    "total_requests": 1240,
    "success_rate": 0.73,
    "avg_latency_ms": 2100
  },
  "breakdown_by_endpoint": [
    { "endpoint": "llm", "success_rate": 0.91 },
    { "endpoint": "mcp-1", "success_rate": 0.54 },
    { "endpoint": "mcp-2", "success_rate": 0.48 }
  ]
}

Dari contoh report di atas, terlihat jelas bahwa LLM endpoint masih cukup resilient dengan success rate 91%, sementara kedua MCP server mengalami degradasi signifikan. Ini menandakan bahwa agent-mu perlu implementasi circuit breaker, fallback logic, atau retry mechanism yang lebih baik untuk MCP tool calls.

Langkah 4: Implementasi Circuit Breaker pada MCP Client

Setelah mengetahui titik lemah, langkah selanjutnya adalah memperbaiki kode. Berikut contoh implementasi circuit breaker sederhana menggunakan pola exponential backoff untuk MCP client:

import time
from functools import wraps

def circuit_breaker(max_failures=3, timeout=30):
    failures = 0
    last_failure = None
    
    def decorator(func):
        @wraps(func)
        def wrapper(*args, **kwargs):
            nonlocal failures, last_failure
            if failures >= max_failures:
                if last_failure and time.time() - last_failure < timeout:
                    raise Exception("MCP service temporarily unavailable")
                failures = 0
            try:
                result = func(*args, **kwargs)
                failures = 0
                return result
            except Exception as e:
                failures += 1
                last_failure = time.time()
                raise e
        return wrapper
    return decorator

Decorator ini akan membuka circuit dan menolak request selama 30 detik setelah 3 kegagalan berturut-turut. Ini mencegah agent-mu dari masuk ke death spiral saat MCP server mengalami gangguan.

Langkah 5: Automasi Chaos Testing di CI/CD Pipeline

Chaos testing paling bernilai ketika dijalankan secara berkala, bukan hanya sekali. Tambahkan step ke GitHub Actions atau pipeline CI/CD-mu untuk menjalankan ResiliReplay setiap kali ada pull request yang mengubah kode agent atau MCP integration:

- name: Run Chaos Tests
  run: |
    pip install -r requirements-test.txt
    python -m resilireplay --config resili.yaml --duration 120
  env:
    OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}

Dengan integrasi ini, setiap perubahan kode yang memperburuk resiliensi akan langsung terdeteksi sebelum merge ke branch utama. Threshold success rate bisa ditentukan tim, misalnya minimal 85% agar pipeline dinyatakan lulus.

Kesimpulan

ResiliReplay membawa prinsip chaos testing ke dunia AI agent dan MCP server yang masih relatif baru. Dengan mensimulasikan kegagalan dunia nyata seperti latency tinggi dan error HTTP, developer bisa mengidentifikasi titik lemah sebelum sistem di-deploy ke production. Kombinasi chaos testing dengan circuit breaker dan CI/CD automation menciptakan fondasi infrastruktur AI yang benar-benar tahan banting.

Sumber: ResiliReplay di GitHub