Developer

Reinforcement Learning SageMaker AI: Cara Latih AI Agent Multi-Turn

AWS merilis panduan Multi-Turn Reinforcement Learning di SageMaker AI. Yuk bedah cara bikin AI agent makin pintar ngerjain tugas beruntun tanpa boncos!

Tim Engineering Classai

· 11 menit baca

Diagram arsitektur Multi-Turn Reinforcement Learning pada Amazon SageMaker AI dan Bedrock AgentCore
Gambar: AWS

Inti singkat

  • Multi-Turn RL di SageMaker AI melatih model berdasarkan hasil akhir dari rangkaian aksi beruntun, bukan per prompt tunggal.
  • Eksperimen AWS membuktikan GPT-OSS-20B naik tingkat keberhasilan dari 61 persen jadi 84 persen dengan biaya token sekitar $339.
  • Sistem memisahkan peran: SageMaker AI mengelola training policy model, sementara Amazon Bedrock AgentCore menjalankan agent dan reward.
  • Desain reward wajib mengutamakan hasil akhir (outcome-dominant) agar agent tidak mengeksploitasi bonus langkah tambahan.
  • Evaluasi model wajib dilakukan pada pengaturan serving nyata (seperti temperature 1.0), bukan sekadar mengandalkan metrik validasi training.
Daftar isi8 bagian
  1. 01
  2. 02
  3. 03
  4. 04
  5. 05
  6. 06
  7. 07
  8. 08

AWS resmi membagikan panduan teknis Multi-Turn Reinforcement Learning di Amazon SageMaker AI untuk melatih model AI agent dalam menyelesaikan tugas interaktif multi-langkah. Pendekatan ini memungkinkan AI agent belajar langsung dari hasil akhir sebuah alur kerja yang panjang, bukan cuma menebak satu jawaban dari satu prompt seperti pada fine-tuning biasa.

Kalau kamu pernah nyobain bikin AI agent buat ngurus alur kerja kantor—misalnya bikin laporan reimbursement atau ngefilter tiket keluhan pelanggan—kamu pasti tahu betapa ribetnya proses itu. Agent harus ngambil keputusan berulang kali, manggil tool berkali-kali, dan langkah berikutnya selalu bergantung sama hasil langkah sebelumnya. Masalahnya, teknik Supervised Fine-Tuning (SFT) biasa nggak punya label buat alur rumit kayak gini, dan Single-Turn Reinforcement Learning (RL) nggak bisa ngasih reward yang adil buat keputusan yang diambil agent tiga langkah sebelum tugasnya selesai.

Lewat panduan resmi di AWS Machine Learning Blog, AWS ngebocorin cara kerja Multi-Turn Reinforcement Learning (MTRL) di Amazon SageMaker AI bareng Amazon Bedrock AgentCore. Mereka nyobain metode ini pada game Wordle memakai model open-weights GPT-OSS-20B, dan hasilnya gila banget: tingkat kemenangan tebak kata melonjak dari 61 persen ke 84 persen di pengaturan reasoning default cuma dengan biaya token sekitar $339. Menarik kan? Yuk kita bedah arsitektur dan langkah praktisnya.

Panduan gratis · gratis

Panduan Cepat API AI untuk Developer

Dari request pertama sampai siap produksi: contoh kode, streaming, kontrol biaya, keamanan API key, dan penanganan error.

  • Contoh request dengan cURL, Python, dan JavaScript
  • Streaming dan format OpenAI vs Anthropic
  • Cara mengontrol biaya token
  • Checklist keamanan dan siap produksi

Dengan mengirim, kamu setuju menerima email dari Classai sesuai Kebijakan Privasi. Bisa berhenti berlangganan kapan saja.

Kenapa Multi-Turn RL Dibutuhkan Buat AI Agent?

Selama ini kebanyakan teknik fine-tuning fokus bikin model ngasih jawaban teks terbaik dalam sekali balas. Padahal, tugas agentic itu sifatnya dinamis. Nggak ada satu rute mutlak yang harus ditiru agent. Yang paling penting adalah: alur kerja itu akhirnya sukses atau gagal.

Di sinilah MTRL masuk. Layanan ini ngirim prompt ke agent yang kamu pasang di Amazon Bedrock AgentCore atau infrastruktur sendiri (kayak Amazon EKS, EC2, atau AWS Fargate lewat AWS Lambda forwarder). Agent bakal manggil policy model yang lagi dilatih, berinteraksi di lingkungan (environment) selama beberapa giliran (turns), lalu ngelaporin satu skor reward pas sesi selesai. Kamu nggak perlu pusing mikirin rute mana yang paling bener, cukup tentuin cara ngitung skor akhirnya.

Studi kasus yang dipakai tim AWS adalah Wordle—game tebak 5 huruf dalam 6 kali tebakan. Game ini dipilih bukan karena model frontier belum bisa main, tapi karena aturannya jelas, tiap tebakan bergantung sama respons sebelumnya, dan penilaiannya objektif. Di dunia nyata, pipeline yang sama persis bisa kamu pakai buat ngelatih model kecil berbiaya murah agar jago ngerjain SOP internal perusahaan kamu.

Arsitektur Reinforcement Learning SageMaker AI dan AgentCore

Sistem MTRL ini dibagi jadi dua sisi yang saling ngobrol lewat API. SageMaker AI megang kendali proses training job dan policy model, sedangkan Bedrock AgentCore jadi rumah buat runtime agent, environment Wordle, dan fungsi reward.

SageMaker AI training job connected to the AgentCore-hosted agent, Wordle environment, and reward function
Arsitektur MTRL di SageMaker AI: job training memanggil agent di AgentCore tiap rollout untuk sampling, interaksi dengan game, dan pelaporan reward. · Sumber: AWS

Dalam setiap rollout, MTRL memanggil runtime AgentCore membawa satu baris data training (berisi satu kata rahasia). Agent di dalam runtime manggil policy model lewat endpoint OpenAI-compatible milik SageMaker Job Runtime. Model bakal nebak kata lewat fungsi tool guess_word, dapet umpan balik warna huruf (hijau, kuning, abu-abu), lalu ngelanjutin strategi sampai menang atau jatah tebakan habis. Setelah selesai, agent ngirim satu skor reward balik ke SageMaker AI. Metode Group Relative Policy Optimization (GRPO) bakal membandingkan variasi reward dari beberapa rollout kata yang sama buat ngupdate adapter LoRA di policy model.

Ada tiga prinsip desain penting di sistem ini:

  1. Agent dan reward disatukan: Satu file Python di AgentCore nampung environment, definisi tool, dan fungsi scoring.
  2. Dataset cuma nyimpen kata rahasia: Daftar kata diambil dari SCOWL open-source dan cuma dipakai buat validasi tebakan, bukan buat ngajarin kunci jawaban ke model.
  3. Reward fokus pada hasil (outcome-dominant): Menang dapet poin gede (+1.05 sampai +1.55 tergantung kecepatan), kalah dapet -0.5, dan kalau bengong tanpa nebak kena penalti -1.5.

Model yang Didukung dan Rincian Biaya Training

MTRL di SageMaker AI sifatnya serverless. Kamu nggak perlu pusing milih tipe instance GPU atau ngatur ukuran cluster. Kamu cukup milih base model yang didukung, dan sistem otomatis nyiapin infrastrukturnya.

Berikut model dasar yang didukung beserta ketersediaan Region AWS saat pengujian:

Base ModelAWS Region
Amazon Nova 2 LiteUS East (N. Virginia), US West (Oregon)
GPT-OSS-20BUS East (N. Virginia), US West (Oregon)
Gemma 4 31B (instruction-tuned)US West (Oregon)
Qwen 3.6 27BUS West (Oregon)

Biaya training dihitung murni dari penggunaan token per 1 juta token pada tiga dimensi:

  • Prefill: Token input yang dibaca model. Bagian ini numpuk terus karena tiap turn agent harus baca ulang riwayat tebakan sebelumnya.
  • Sample: Token output yang digenerate model, termasuk reasoning token.
  • Train: Token yang diproses pada backward pass buat ngupdate adapter LoRA.

Pada eksperimen 100-step AWS pakai GPT-OSS-20B, total ada 105.486 rollout selama 12 jam 40 menit. Rincian biayanya seperti ini:

Dimensi TokenJumlah TokenHarga per 1M TokenTotal Biaya
Prefill491.616.806$0.12$58.99
Sample159.737.098$0.30$47.92
Train643.308.554$0.36$231.59
Total Token1.294.662.458-$338.50

Biaya training paling boros ada di dimensi train karena ngikutin panjang trajectory. Selain token SageMaker, runtime AgentCore kena biaya komputasi vCPU dan memori sekitar $79 di CloudWatch. Jadi total modal eksperimen ini sekitar $417.50.

Langkah Praktis Setup dan Training Agent SageMaker

Kalau kamu tertarik nyobain pipeline ini dari kode di aws-samples repository, berikut langkah-langkah terstrukturnya:

1. Siapkan Prasyarat dan IAM Role

Pastikan lokal komputermu sudah terpasang Python 3.10+, package manager uv, Node 20+, AgentCore CLI (npm install -g @aws/agentcore), dan botocore versi 1.43.37 ke atas (versi pertama yang ngedukung operasi AgentRFT). Kamu butuh bucket Amazon S3 di region yang sama dengan training job.

Kamu butuh dua IAM role:

  • Agent Runtime Role: Dibuat otomatis pas deploy AgentCore, nge-trust bedrock-agentcore.amazonaws.com dan punya policy AmazonSageMakerJobRuntimeAccess.
  • Training Job Role: Role yang kamu bikin manual. Role ini wajib nge-trust job.sagemaker.amazonaws.com (ingat, pakai prefix job., bukan cuma sagemaker.amazonaws.com) dengan action sts:AssumeRole dan sts:TagSession, serta policy AmazonSageMakerJobFullAccess.

2. Deploy Agent ke Amazon Bedrock AgentCore

Clone repository contoh, atur account ID dan region AWS di konfigurasi, lalu deploy via CLI:

bash
git clone https://github.com/aws-samples/sample-multi-turn-rl-wordle
cd sample-multi-turn-rl-wordle/Wordle
agentcore validate
agentcore deploy

CLI bakal nge-build dependency ke platform Linux ARM64 dan nge-deploy CloudFormation stack.

Amazon Bedrock AgentCore console showing the Wordle agent runtime with status Ready
Tampilan runtime Wordle agent di konsol Amazon Bedrock AgentCore dengan status Ready. · Sumber: AWS

Di dalam file agentcore.json, ada pengaturan environment variable penting: REASONING_EFFORT=low dan REASONING_PROMPT_HINT=true. Pengaturan ini memangkas konsumsi token sampling antara 63 sampai 83 persen dibanding reasoning medium, tanpa ngasih bocoran kata sama sekali.

AgentCore console environment variables panel with REASONING_EFFORT set to low
Panel environment variables pada konsol AgentCore menunjukkan REASONING_EFFORT diatur ke nilai low. · Sumber: AWS

Struktur kode main.py intinya membungkus handler fungsi dengan dekorator khusus:

python
app = BedrockAgentCoreApp()

@app.entrypoint  # Wajib paling luar: ngejalanin HTTP server AgentCore
@sagemaker_rft_handler  # Ngirim reward balik ke SageMaker AI
def handle_rollout(payload):
    prompt, answer = parse_task(payload["prompt"])
    game = WordleGame(answer)

    @tool
    def guess_word(guess: str) -> str:
        """Kirim tebakan 5 huruf dan terima feedback warna."""
        return game.guess(guess)

    agent = Agent(model=build_model(), system_prompt=SYSTEM_PROMPT, tools=[guess_word])
    agent(prompt)
    return {"reward": game.final_reward()}

3. Uji Coba Runtime (Smoke Test)

Sebelum buang-buang kuota GPU, jalankan smoke test pakai payload bohongan (payload.json) dari repository. Edit account ID kamu, lalu tembak lewat AWS CLI:

bash
ACCOUNT=$(aws sts get-caller-identity --query Account --output text)
sed "s/111122223333/$ACCOUNT/" payload.json > /tmp/payload.json

aws bedrock-agentcore invoke-agent-runtime \
  --agent-runtime-arn <RUNTIME_ARN> \
  --runtime-session-id smoke-test-$(date +%s)000000000000000 \
  --payload fileb:///tmp/payload.json /dev/stdout

Perintah ini bakal mencetak {"reward": -1.5} dan memunculkan error 400 "Could not find job" di CloudWatch logs. Ini pertanda bagus! Artinya alur parsing payload, autentikasi, dan error handling agent kamu udah berfungsi normal.

4. Siapkan Dataset dan Jalankan Training

Dataset MTRL sangat simpel dan nggak butuh transkrip percakapan buatan manusia. Cukup file JSONL yang tiap barisnya berisi string prompt, kata kunci jawaban (answer), dan id unik. Unggah 640 baris data training dan 128 baris data validasi ke bucket S3 kamu.

Jalankan training script menggunakan MultiTurnRLTrainer dari SDK sagemaker-train:

bash
uv run python run_mtrl_training.py \
  --model openai-reasoning-gpt-oss-20b \
  --agent-runtime-arn <RUNTIME_ARN> \
  --role-arn arn:aws:iam::<ACCOUNT>:role/<JOB_ROLE> \
  --train-dataset s3://<YOUR_BUCKET>/wordle-mtrl/train/training-data.jsonl \
  --val-dataset s3://<YOUR_BUCKET>/wordle-mtrl/validation/validation-data.jsonl \
  --s3-output-path s3://<YOUR_BUCKET>/wordle-mtrl/output/ \
  --mlflow-app-arn arn:aws:sagemaker:<REGION>:<ACCOUNT>:mlflow-app/<APP_ID>

Nilai sampling_max_tokens diatur mentok ke 8192 karena pada angka default 4096, model sering kehabisan token reasoning sebelum sempat manggil tool pertamanya. Dengan max_steps 100 dan group_size 8, model memainkan 1.024 sesi game per langkah training.

Evaluasi Model dan Trik Monitoring di MLflow

Selama training berjalan, pantau metrik lewat MLflow. Metrik kunci yang wajib diperhatikan adalah val/reward/pass_at_1 (persentase kata uji coba yang berhasil dipecahkan).

Two line charts tracking mean reward per game and validation solve rate over 100 training steps
Grafik training 100-step di MLflow: reward rata-rata game (kiri) dan tingkat keberhasilan validasi (kanan). · Sumber: AWS

Rata-rata reward training naik ke angka +0.57 dalam 15 step pertama lalu stabil. Di data validasi, solve rate melonjak dari 2 persen jadi 31 persen di 10 step pertama, lalu bergerak di kisaran 35 hingga 48 persen.

Saat evaluasi rollout di CloudWatch, model yang sudah terlatih memperlihatkan perilaku cerdas: mempertahankan huruf hijau di posisi yang pas, membuang huruf abu-abu, dan memanfaatkan huruf kuning untuk menyeleksi kata berikutnya—tanpa pernah diajari aturan itu secara manual lewat teks.

SageMaker AI Studio Jobs page showing the completed multi-turn RL training job
Status job training Multi-turn RL yang selesai di SageMaker AI Studio pada menu Jobs. · Sumber: AWS

Setelah selesai, jalankan evaluation job terpisah (AgentRFTEvaluation). Kamu bisa membandingkan base model vs model hasil training pada variasi reasoning effort dan sampling temperature.

Reasoning effort and sampling temperature at each stage: training low and 1.0, validation low and 0 fixed by the service, evaluation jobs at four settings with serving at medium and 1.0.
Skema perbedaan reasoning effort dan sampling temperature pada tahap training, validasi, dan evaluasi serving. · Sumber: AWS
Bar charts comparing base and trained model solve rate and mean reward across four decoding settings
Perbandingan performa solve rate dan reward rata-rata base model versus model terlatih di empat pengaturan decoding. · Sumber: AWS

Hasil evaluasi menunjukkan insight menarik: pada temperature 0 (greedy decoding), kedua model sering macet. Tapi di temperature 1.0 (kondisi serving riil), model terlatih mampu memecahkan 84 persen kata rahasia pada reasoning medium (naik dari 61 persen pada base model), dan memecahkan 69 persen pada reasoning low (naik drastis dari cuma 15 persen pada base model).

Kalau kamu lagi merancang arsitektur agen di cloud, kamu juga bisa membaca artikel kami tentang Multi-Agent AI Produksi di AWS dan eksplorasi SageMaker AI Training Session untuk referensi pelengkap.

Jebakan Desain Reward: Jangan Sampai Agent Cari Celah!

Merancang fungsi reward untuk tugas multi-turn itu gampang-gampang susah. Kesalahan paling fatal yang sempat dialami tim AWS adalah menjumlahkan poin per tebakan secara mentah.

Akibatnya muncul anomali konyol:

  • Agent yang kalah setelah main 6 ronde malah dapet reward positif (+0.49) karena ngumpulin bonus eksplorasi huruf tiap giliran.
  • Menebak benar di ronde ke-3 dapet skor lebih tinggi (+1.61) daripada menebak benar langsung di ronde ke-1 (+0.99), karena agent dapet bonus langkah tambahan!

Solusinya adalah membagi reward jadi dua komponen: outcome utama yang dominan dan shaping bonus bernilai kecil:

$$\text{reward} = \text{outcome} + w \times \text{clip}(\text{shaping}, -1, 1)$$

Bobot $w$ dipatok sangat kecil (0.04 kalau menang, 0.15 kalau kalah). Nilai outcome dipatok:

  • Menang di tebakan ke-$n$: $1.05 + 0.5 \times (6 - n) / 5$ (skor 1.55 di tebakan 1 turun ke 1.05 di tebakan 6).
  • Kalah setelah 6 tebakan: -0.5.
  • Gagal nebak secara valid: -1.5.

Dengan rumus ini, menang cepat selalu dapet skor lebih tinggi daripada menang lambat, menang selalu ngalahin kalah, dan shaping bonus tetap berguna memberi sinyal variasi ke algoritma GRPO saat membandingkan dua sesi yang sama-sama kalah.

Berikut contoh template instruksi agent yang bisa kamu terapkan saat merancang prompt interaksi tool serupa:

Prompt siap pakai
Kamu adalah agen pemecah kata 5 huruf. Gunakan tool `guess_word` untuk menguji kata tebakan.Aturan:1. Manfaatkan informasi huruf hijau di posisi yang sama.2. Jangan gunakan kembali huruf abu-abu yang terbukti salah.3. Uji posisi baru untuk setiap huruf kuning.Tujuanmu adalah menyelesaikan tugas dalam sesedikit mungkin langkah.

Masalah Teknis yang Sering Muncul dan Solusinya

Berdasarkan catatan tim AWS, ada beberapa kendala teknis nyata yang siap menghadang kalau kamu coba menjalankan pipeline ini:

  1. Kelebihan Beban Bearer Token: Menghasilkan bearer token pakai sesi botocore baru di tiap panggilan bakal bikin credential provider kolaps pas ada 32 rollout bersamaan. Solusinya: pakai satu sesi yang self-refreshing dengan cache pendek.
  2. Rollout Nyangkut Bikin Seluruh Job Gagal: Jika agent gagal manggil policy model karena kendala autentikasi atau timeout, layanan bakal mematikan seluruh training job dengan pesan "No sampling requests were received". Pastikan agent selalu mengembalikan angka reward (misalnya -1.5), jangan sampai melempar error status unhandled.
  3. Model Halusinasi Format Tool Call: Jika learning rate terlalu tinggi, model bisa mendadak nulis format pemanggilan tool sebagai teks biasa alih-alih JSON tool call resmi. Parser di agent harus disiapkan untuk mengekstrak tebakan dari teks mentah sambil memberi sedikit penalti format agar gradient tidak hilang.
  4. Plateau di Tengah Jalan: Skor training cenderung stabil setelah step 15. Untuk eksplorasi lebih lanjut, kamu bisa menerapkan kurikulum training bertahap atau memperbesar group_size di atas 8.

Dampak Nyata untuk Developer dan Tim AI di Indonesia

Buat developer, engineer, dan startup di Indonesia, hadirnya panduan Multi-Turn RL di SageMaker AI ini ngasih arah baru dalam otomatisasi bisnis. Selama ini kita sering ketergantungan sama model komersial berukuran raksasa yang biaya token per bulannya bikin boncos kalau dipakai bolak-balik manggil tool.

Dengan teknik MTRL ini, kamu bisa ngelatih model open-weights berukuran sedang (seperti 20B–30B parameter) agar punya keahlian setara model frontier dalam menyelesaikan alur kerja internal yang sangat spesifik—misalnya rekonsiliasi data perbankan lokal, otomasi tiket customer care berbahasa daerah, atau alur ERP pabrik.

Selain itu, aspek privasi dan kepatuhan regulasi UU Perlindungan Data Pribadi (UU PDP) jadi jauh lebih terjaga. Dataset internal dan model yang kamu latih tetap berada di dalam akun AWS sendiri dan nggak dipakai buat ngelatih model publik vendor lain.

Kalau kamu pengin mulai bereksperimen menguji keandalan berbagai model reasoning (seperti GPT, Claude, DeepSeek, atau Qwen) sebelum berkomitmen sewa infrastruktur training sendiri, kamu bisa memanfaatkan layanan Classai Router. Cukup pakai satu API key yang kompatibel dengan format SDK OpenAI, kamu bisa langsung membandingkan performa model kayak qwen-3.8-27b (Rp810 / 1M token input) atau deepseek-v4.1-flash (Rp1.155 / 1M token input) buat nemuin kandidat base model yang paling pas buat kebutuhan bisnismu. Kamu juga bisa mengasah kemampuan pengembangan solusi AI secara mendalam lewat kelas AI untuk Developer di Classai.

Sumber & referensi

  1. 01

Artikel ini ditulis ulang oleh Tim Classai dengan bantuan AI berdasarkan sumber di atas — bukan terjemahan. Ada yang keliru? Kabari kami di [email protected].

Pertanyaan yang sering ditanyakan

Apa bedanya Multi-Turn RL dengan fine-tuning biasa?

Fine-tuning biasa (SFT) melatih model berdasarkan pasangan prompt dan jawaban tunggal. Sebaliknya, Multi-Turn RL melatih model untuk mengambil serangkaian keputusan berurutan, lalu menilai keberhasilan berdasarkan skor reward di akhir seluruh alur interaksi.

Model apa saja yang didukung oleh MTRL SageMaker AI?

Saat ini MTRL di SageMaker AI mendukung model open-weights berbasis LoRA adapter, antara lain Amazon Nova 2 Lite, GPT-OSS-20B, Gemma 4 31B (instruction-tuned), dan Qwen 3.6 27B di region US East (N. Virginia) dan US West (Oregon).

Berapa perkiraan biaya melatih agent pakai teknik ini?

Pada pengujian 100-step Wordle menggunakan GPT-OSS-20B, biaya pemrosesan token training mencapai sekitar $338.50 untuk 1,29 miliar token, ditambah biaya vCPU/memori Amazon Bedrock AgentCore sekitar $79.

Mengapa reward shaping harus dirancang hati-hati?

Jika bonus per langkah (shaping) terlalu besar, agent bisa mengeksploitasi sistem dengan sengaja memperpanjang langkah interaksi demi mengumpulkan poin tambahan, meskipun akhirnya gagal menyelesaikan misi utama.

Luthfi

Classai Weekly

dari Luthfi · Setiap Senin, 06.30 WIB

Nggak sempat ngikutin berita AI? Biar aku yang rangkumin tiap Senin.

  • 5 berita AI paling penting minggu ini — udah disaring, nggak perlu baca puluhan situs
  • Kenapa itu penting buat kamu — plus opini jujur Luthfi soal arahnya
  • 1 prompt siap pakai yang bisa langsung dicoba
  • Pilihan kelas & model AI minggu ini — kadang ada promo khusus pelanggan

Dengan mengirim, kamu setuju menerima email dari Classai sesuai Kebijakan Privasi. Bisa berhenti berlangganan kapan saja.

Lihat contoh edisi

Bermanfaat? Bagikan ke tim atau temanmu.

Langkah berikutnya

Sudah paham teorinya. Sekarang praktikkan.

Daftar, isi saldo mulai puluhan ribu rupiah, dan panggil model AI pilihanmu dari kode yang sudah ada.

Ditulis oleh

Tim Engineering Classai

Pengembang Classai Router

Tim Engineering Classai membangun dan menjalankan Classai Router, gateway API AI yang kompatibel dengan format OpenAI dan Anthropic. Kami menulis panduan teknis dari pengalaman mengoperasikan API AI setiap hari.

Baca juga

Artikel terkait

Semua Developer