← Blog

Cara Menggunakan claw-code dengan Model WaveSpeed AI melalui API

Pelajari cara mengintegrasikan model generasi gambar dan video ke dalam alur kerja agentik claw-code menggunakan API model terpadu.

10 min read
Cara Menggunakan claw-code dengan Model WaveSpeed AI melalui API

Bayangkan ini: Agen AI Anda tidak hanya berpikir — ia ​menciptakan​.

Ia bernalar selangkah demi selangkah, kemudian dengan mulus memanggil model pembuatan gambar yang powerful untuk menghasilkan visual yang menakjubkan, beralih ke model video untuk gerakan, menganalisis hasilnya, dan melanjutkan alur kerja — semua tanpa Anda harus mengangkat satu jari pun atau menulis ulang satu baris kode pun.

Itulah yang kini mungkin dilakukan dengan model WaveSpeed AI dan claw-code — dibangun ulang dari awal dalam Python dengan gaya clean-room, dan di-open-source oleh seorang developer Korea tepat setelah ​kebocoran Claude Code​.

Dalam panduan ini, Anda akan menemukan cara memanfaatkan kombinasi powerful ini untuk membangun agen yang tidak hanya mengobrol… mereka menciptakan, melakukan iterasi, dan menghasilkan output multimedia nyata di dalam satu loop cerdas.

Baik Anda seorang kreator, developer, maupun penggemar AI yang lelah berpindah-pindah antar alat, ini adalah jalan pintas Anda menuju alur kerja multimedia yang benar-benar agentic.

Siap membuat agen AI Anda secara visual menjadi powerful? Mari kita mulai.

Prasyarat: Yang Anda Butuhkan Sebelum Memulai

Sebelum menyentuh satu baris konfigurasi pun, selesaikan dua hal ini terlebih dahulu. Melewati salah satunya akan menghabiskan berjam-jam waktu Anda untuk memecahkan pesan error yang membingungkan.

Pengaturan claw-code dan Lingkungan

claw-code berjalan di ​Python 3.11+. Per Maret 2026, branch utama menggunakan Python sebagai prioritas (72,9% Rust, 27,1% Python menurut perincian bahasa proyek itu sendiri, namun entry CLI yang sebenarnya akan Anda gunakan sehari-hari adalah Python). Instal dari repo resminya:

git clone https://github.com/instructkr/claw-code.git
cd claw-code
pip install -e .

Anda juga perlu mengatur kunci Anthropic sebagai variabel lingkungan — claw-code mendukung ANTHROPIC_API_KEY dan ANTHROPIC_AUTH_TOKEN, mengikuti pola autentikasi API Anthropic dari dokumentasi resmi mereka.

export ANTHROPIC_API_KEY="your-key-here"

Satu hal yang perlu diperhatikan: port Rust masih dalam proses pengerjaan di branch terpisah. Untuk alur kerja video/gambar, harness Python sudah cukup stabil. Migrasi Rust ditujukan untuk jalur runtime yang kritis terhadap performa — bukan sesuatu yang Anda butuhkan untuk kasus penggunaan ini sekarang.

API Key dan Akses Penyedia Model

Akun baru mendapatkan kredit uji coba gratis sebesar $1 — cukup untuk menguji beberapa pembuatan gambar dan memastikan pipeline Anda berfungsi end-to-end sebelum mengeluarkan biaya nyata.

Katalog model WaveSpeed per Maret 2026 mencakup 700+ model di seluruh pembuatan gambar, video, audio, dan 3D, semuanya di balik satu API key terpadu. Hal ini sangat penting begitu Anda mulai membangun alur kerja agen multi-model — Anda tidak ingin mengelola lima header auth yang berbeda.

Menghubungkan API Model Eksternal dalam Alur Kerja claw-code

Di sinilah hal-hal menjadi benar-benar menarik. claw-code bukan hanya asisten pengkodean — ia mengimplementasikan lapisan eksekusi tool lengkap dengan 19 tool yang dikontrol izin dan model plugin yang dapat Anda perluas. Itulah yang membuat penghubungan API eksternal seperti WaveSpeed menjadi benar-benar dapat dilakukan.

Cara claw-code Menangani Panggilan Tool Eksternal

Sistem tool claw-code bekerja melalui definisi JSON schema yang dihasilkan di lapisan Rust, dengan Python menangani sisi orkestrasi agen. Setiap tool memiliki kontrol aksesnya sendiri yang didefinisikan dalam permissions.py. Ketika Anda menambahkan tool kustom, agen dapat memutuskan secara otonom kapan harus memanggilnya berdasarkan konteks tugas — itulah yang Anda inginkan ketika prompt “tuliskan skrip dan buat thumbnail yang sesuai” harus memicu tugas teks sekaligus panggilan pembuatan gambar.

Logika percobaan ulang yang tertanam dalam klien API Anthropic dari claw-code menggunakan exponential backoff untuk respons 408, 429, dan 5xx. Pola yang sama inilah yang akan Anda replikasi untuk panggilan WaveSpeed Anda.

Menambahkan API Model sebagai Tool dalam Harness

Buat file bernama wavespeed_tool.py di direktori tools claw-code:

import httpx
import os
import time

WAVESPEED_API_KEY = os.environ.get("WAVESPEED_API_KEY")
BASE_URL = "https://api.wavespeed.ai/api/v3"

TOOL_SCHEMA = {
    "name": "generate_image",
    "description": "Generate an image using WaveSpeed AI given a text prompt.",
    "input_schema": {
        "type": "object",
        "properties": {
            "prompt": {"type": "string", "description": "Image generation prompt"},
            "model": {"type": "string", "default": "wavespeed-ai/flux-dev"},
        },
        "required": ["prompt"],
    },
}

def generate_image(prompt: str, model: str = "wavespeed-ai/flux-dev") -> dict:
    headers = {"Authorization": f"Bearer {WAVESPEED_API_KEY}"}
    payload = {"inputs": {"prompt": prompt}, "enable_safety_checker": True}
    response = httpx.post(f"{BASE_URL}/{model}/run", json=payload, headers=headers)
    response.raise_for_status()
    return response.json()

Daftarkan ini di registri tool claw-code dan agen kini dapat memanggil generate_image selama sesi apa pun yang memiliki pembuatan gambar dalam cakupannya.

Memanggil Model Pembuatan Gambar dan Video dari Dalam Alur Kerja Agen

Ini adalah bagian yang terus saya cari ketika pertama kali menyiapkannya — dan tidak bisa menemukannya. Jadi, ini dia, sejelas yang bisa saya tulis.

Pola Panggilan REST API

WaveSpeed menggunakan pola REST yang konsisten di semua model. Panggilan dasar terlihat seperti ini (menggunakan WAN 2.7 text-to-video sebagai contoh):

import httpx

def call_wavespeed(model_id: str, inputs: dict) -> dict:
    headers = {
        "Authorization": f"Bearer {os.environ['WAVESPEED_API_KEY']}",
        "Content-Type": "application/json",
    }
    payload = {"inputs": inputs}
    response = httpx.post(
        f"https://api.wavespeed.ai/api/v3/{model_id}/run",
        json=payload,
        headers=headers,
        timeout=30,
    )
    response.raise_for_status()
    return response.json()

Untuk gambar (seperti Flux Dev atau Seedream v4.5), respons datang secara sinkron dengan URL output. Untuk model video — WAN 2.7, Kling 2.6, Hailuo 2.3 — bersifat async, yang berarti Anda perlu melakukan polling.

Menangani Pembuatan Async dan Polling

Pembuatan video di WaveSpeed biasanya membutuhkan waktu 30 detik hingga beberapa menit tergantung pada model dan durasi. API langsung mengembalikan request_id; Anda melakukan polling ke endpoint status hingga pekerjaan selesai.

def poll_until_done(request_id: str, max_wait: int = 300) -> dict:
    headers = {"Authorization": f"Bearer {os.environ['WAVESPEED_API_KEY']}"}
    start = time.time()
    
    while time.time() - start < max_wait:
        resp = httpx.get(
            f"https://api.wavespeed.ai/api/v3/predictions/{request_id}/status",
            headers=headers,
        )
        data = resp.json()
        status = data.get("status")
        
        if status == "completed":
            return data
        elif status == "failed":
            raise RuntimeError(f"Generation failed: {data.get('error')}")
        
        time.sleep(5)  # Poll setiap 5 detik
    
    raise TimeoutError("Generation timed out")

Di dalam loop agen claw-code, Anda akan membungkus polling ini dalam fungsi execute tool sehingga agen menunggu hasilnya sebelum melanjutkan ke langkah berikutnya.

Mengelola Batas Rate dan Fallback dalam Konteks Agentic

Batas rate di dalam loop agen lebih rumit daripada dalam skrip sederhana — agen mungkin menembakkan beberapa panggilan tool secara cepat berurutan jika tugasnya dapat diparalelkan. Berikut pola fallback yang saya gunakan, diadaptasi dari logika percobaan ulang claw-code sendiri:

import time

def call_with_retry(model_id: str, inputs: dict, retries: int = 3) -> dict:
    fallback_models = {
        "wavespeed-ai/wan-2.7-t2v": "wavespeed-ai/wan-2.6-t2v",
    }
    
    for attempt in range(retries):
        try:
            return call_wavespeed(model_id, inputs)
        except httpx.HTTPStatusError as e:
            if e.response.status_code == 429:
                wait = 2 ** attempt  # Exponential backoff
                time.sleep(wait)
            elif e.response.status_code >= 500:
                # Coba model fallback jika tersedia
                model_id = fallback_models.get(model_id, model_id)
                time.sleep(2)
            else:
                raise
    raise RuntimeError(f"All retries exhausted for {model_id}")

Dokumentasi API WaveSpeed merinci tingkatan batas rate berdasarkan level akun — akun Silver (top-up satu kali $100) mendapatkan batas konkurensi yang jauh lebih tinggi daripada tingkatan Bronze default, yang penting begitu Anda mulai menjalankan agen yang menembakkan beberapa permintaan pembuatan per sesi.

Pola Multi-Model: Mengapa Akses Teragregasi Penting dalam Pipeline Agentic

Saya ingin meluangkan sebentar untuk membahas mengapa arsitektur ini sepadan dengan upaya pengaturannya — karena tidak jelas hingga Anda benar-benar merasakan gesekan dari mengelola akun API terpisah untuk setiap model yang ingin Anda uji.

Pergantian Model Tanpa Penulisan Ulang Alur Kerja

API terpadu WaveSpeed berarti Anda dapat mengganti wavespeed-ai/flux-dev dengan wavespeed-ai/seedream-v4-5 hanya dengan mengubah satu string. Tidak ada alur auth baru, tidak ada skema respons berbeda untuk diurai, tidak ada pergantian SDK. Untuk alur kerja agentic di mana Anda ingin agen memilih model yang tepat untuk tugas (thumbnail fotorealistis vs. ilustrasi bergaya vs. klip video pendek), ini benar-benar berguna — Anda dapat meneruskan ID model sebagai variabel dan membiarkan agen menalar mana yang cocok.

Berikut tabel perbandingan model sederhana berdasarkan spesifikasi pembuatan Maret 2026 dari katalog WaveSpeed:

ModelTipeOutputTerbaik Untuk
Flux DevGambarHingga 4KFotorealistis, cepat
Seedream v4.5GambarHingga 4KArtistik, bergaya
WAN 2.7 T2VVideo720p/1080pText-to-video, sinematik
Kling 2.6 ProVideo720pKontrol gerak, animasi
Hailuo 2.3 FastVideo720pI2V yang dioptimalkan untuk kecepatan

Penagihan Terpadu dan Manajemen Key

Yang ini mengejutkan saya lebih dari yang saya perkirakan. Mengelola API key terpisah untuk Runway, Kling, FLUX, dan WAN secara terpisah — masing-masing dengan dashboard penagihan berbeda, perilaku batas rate berbeda, format error berbeda — adalah beban operasional yang berarti ketika Anda membangun alur kerja agentic. Satu key, satu dashboard penagihan, dan skema error yang konsisten di semua model adalah peningkatan kualitas hidup nyata yang tercermin dalam seberapa mudah kode agen Anda dipelihara dari waktu ke waktu.

Panduan keamanan rantai pasokan perangkat lunak OWASP layak dibaca sebelum men-deploy agen pihak ketiga apa pun dalam produksi — sangat relevan mengingat insiden rantai pasokan yang memengaruhi instalasi Claude Code berbasis npm pada Maret 2026 (claw-code sendiri tidak terpengaruh, namun ekosistem yang lebih luas perlu diwaspadai).

Keterbatasan dan Hal yang Perlu Diverifikasi

Saya akan melewatkan bagian paling berguna dari ulasan ini jika saya melewati sisi-sisi yang masih kasar.

Peringatan Stabilitas claw-code

Per April 2026, claw-code belum setara fitur dengan Claude Code. Port Rust masih dalam proses pengerjaan. Integrasi IDE tidak ada — ini hanya terminal. Orkestrasi multi-agen didokumentasikan dalam arsitektur tetapi belum diuji secara intensif pada skala besar. Proyek ini memiliki 48k+ bintang GitHub dan berkembang pesat, namun “arsitektur yang menarik” dan “siap produksi” adalah standar yang benar-benar berbeda.

Status hukum proyek ini juga belum terselesaikan. claw-code mengklaim status clean-room sebagai pertahanannya terhadap tekanan DMCA Anthropic — ini adalah penulisan ulang, bukan salinan dari sumber yang bocor — namun pertanyaan hukum tersebut belum terjawab. Jika Anda membangun sesuatu untuk klien atau dalam skala besar, pertimbangkan ketidakpastian tersebut.

Yang Memerlukan Pengujian Manual

Sebelum mempercayai alur kerja ini dalam produksi, Anda harus memverifikasi secara manual:

  • Perilaku timeout polling​: Interval polling 5 detik yang saya gunakan bersifat konservatif. Uji dengan model video dan durasi aktual Anda untuk menyetel max_wait.
  • Registrasi tool​: Registri tool claw-code dalam pengembangan aktif. API registrasi yang tepat mungkin berubah antar commit — periksa CHANGELOG repo sebelum menyematkan versi.
  • Konteks izin​: claw-code mengimplementasikan eksekusi tool yang dikontrol izin. Konfirmasi bahwa tool generate_image dan generate_video Anda diberikan level akses yang benar dalam permissions.py.
  • Perubahan skema respons​: WaveSpeed terkadang memperbarui skema output model. Tambahkan validasi di sekitar field URL output daripada mengasumsikan strukturnya.

FAQ

T: Apakah claw-code dapat memanggil API pembuatan gambar secara native?

Tidak secara bawaan — tidak ada tool WaveSpeed atau pembuatan gambar bawaan dalam instalasi default. Namun sistem tool dirancang untuk perluasan jenis ini. Setelah Anda mendaftarkan tool kustom dengan JSON schema yang benar (seperti yang ditunjukkan di atas), agen dapat memanggilnya secara otonom dalam sesi apa pun.

T: Apakah claw-code mendukung panggilan tool async?

Harness Python menangani eksekusi tool secara sinkron dalam loop agen. Untuk pembuatan async (seperti model video), pola yang saya rekomendasikan adalah: tembakkan permintaan awal, dapatkan request_id, kemudian lakukan polling di dalam fungsi execute tool hingga selesai sebelum kembali ke agen. Ini menjaga penalaran agen tetap linear dan menghindari kondisi balapan dalam status sesi.

T: Apakah alur kerja ini siap produksi?

Jujurnya? Belum, untuk sebagian besar tim. claw-code berkembang pesat namun membawa ketidakpastian hukum dan belum diperkuat untuk penggunaan agentic skala produksi. Sisi API WaveSpeed sudah siap produksi — SLA uptime 99,99%, tanpa cold start, penagihan per detik — namun harness claw-code yang membungkusnya masih dalam tahap awal. Saya akan menggunakan ini untuk tooling internal, pembuatan prototipe, dan eksplorasi saat ini, dan meninjau kembali untuk produksi yang menghadap klien setelah proyek stabil.

Postingan Sebelumnya: