Amir Rudin
Evaluasi Kapabilitas AI Claude Code CLI

Evaluasi Agen Claude Code & Root Cause Analysis

Mengevaluasi kapabilitas kode Tier-1 LLM di lingkungan CLI Claude Code selama kegagalan sistem terdistribusi. Merancang alur kerja agen multi-putaran untuk menguji penalaran model, penggunaan tool, dan pembuatan patch di bawah batasan operasional nol-downtime ketat pada cluster Apache Pulsar.

Peran

AI Evaluator Specialist

Target Sistem

Apache Pulsar (Java)

Fokus Evaluasi

Kapasitas Agen (Agentic)

Level Evaluasi

Skala Enterprise

Batasan Operasional Nol Downtime

Lingkungan pengujian membutuhkan evaluasi di bawah pembatasan operasional absolut:

  • Tanpa restart broker
  • Tanpa pengeditan broker.conf
  • Tanpa reset kursor (cursor resets)
  • Tanpa restart aplikasi konsumen

1. Sorotan Evaluasi & Analisis Performa Model

A. Root Cause Analysis & Penalaran Logika

Menginstruksikan model untuk menganalisis metrik internal broker (waitingReadOp: true, pendingReadOps: 0). Mengevaluasi seberapa akurat model melacak masalah ke *race condition* yang tidak tertangani di PersistentDispatcherSingleActiveConsumer.java tanpa menghasilkan state kursor yang berhalusinasi.

B. Kepatuhan Batasan & Pemulihan Non-Invasif

Menguji kemampuan model beroperasi di bawah batasan operasional *zero-downtime*. Memandu model merumuskan *workaround* pemulihan langsung menggunakan konsumen Failover sementara dengan 0-izin (receiverQueueSize=0), yang berhasil memicu redeliverUnacknowledgedMessages() untuk membersihkan request yang menjadi *orphan* tanpa mengganggu aplikasi aktif.

C. Kualitas Kode & Pembuatan Skrip

Mengevaluasi kapabilitas model dalam menghasilkan otomatisasi Python berkualitas produksi. Memverifikasi pola rekayasa defensif pada recover_stuck_failover_partition.py, termasuk eksekusi --dry-run, parsing pulsar-admin topics stats-internal secara *real-time*, dan penempatan *consumer-slot* yang tepat.

D. Isolasi Patch Hulu & Backporting

Menilai presisi model dalam mencari dan mengisolasi perbaikan bug hulu di repositori yang sangat besar. Mengonfirmasi *backporting* yang sukses atas Apache Pulsar PR #26174 (perbaikan stale read) dan PR #26236 (stalls pada Key_Shared).

2. Alur Kerja Pemulihan Insiden

1

Diagnosis Insiden

Mengevaluasi keluaran model saat membaca pulsar-admin topics stats-internal untuk memverifikasi tanda tangan isu: waitingReadOp: true di samping availablePermits > 0 saat backlog konsumen membesar.

2

Remediasi Langsung Non-Invasif

Menguji penalaran model terhadap alternatif cadangan seperti perubahan konfigurasi dinamis (unblockStuckSubscriptionEnabled=true). Mengeksekusi trik konsumen sementara berizin 0 yang dirancang pada fase evaluasi untuk mereset *cursor state* secara *native* melalui *wire protocol*.

3

Patching & Verifikasi Basis Kode

Memverifikasi *cherry-pick* yang dihasilkan oleh model ke *release branch* lokal (berdasarkan commit 8576283da4). Melakukan verifikasi statis pada dependensi pengetesan lingkungan untuk menyiapkan checklist *deployment* integrasi CI/CD.

3. Artefak Telemetri

Menggunakan lingkungan proksi CLI Trace Extractor dalam tmux untuk menangkap latensi model, pola invokasi alat, dan telemetri *prompt* secara *multi-turn*.

recover_stuck_failover_partition.py
# Generated via Claude Code agentic workflow evaluation
import pulsar
import time
import argparse

def trigger_zero_permit_consumer(service_url, topic, subscription):
    print(f"[*] Starting non-invasive recovery for {subscription} on {topic}")
    
    # 0-permit failover trick resets orphaned dispatcher states natively
    client = pulsar.Client(service_url)
    consumer = client.subscribe(
        topic,
        subscription,
        consumer_type=pulsar.ConsumerType.Failover,
        receiver_queue_size=0 # Strict zero-permit limitation
    )
    
    # Let connection establish and broker flush redeliverUnacknowledgedMessages
    time.sleep(2.0)
    consumer.close()
    client.close()
    print("[+] Orphaned waitingReadOp successfully flushed without restart.")

Tertarik pada Evaluasi AI?

Jelajahi studi kasus teknis saya atau ringkasan portofolio penuh.