← Semua pembelajaran / AWS untuk AI Engineer
Fase 5 · Agent, Tool Use & MCP

Bedrock Flows

Flows menyambungkan node prompt, model, knowledge base, dan layanan AWS lewat pembangun visual. Berguna untuk alur yang bentuknya sudah jelas dan tidak perlu penalaran bebas.

Intisari

  • Alur dibangun dari node yang saling terhubung: prompt, knowledge base, Lambda, kondisi.
  • Bisa dibangun lewat pembangun visual — cocok untuk kolaborasi dengan yang bukan engineer.
  • Alur di-deploy sebagai versi yang tidak bisa diubah, jadi produksi tidak berubah diam-diam.
  • Harganya mengikuti resource yang dipakai — memanggil node prompt berarti dibayar biaya model itu.
  • Bedakan dari agent: flow punya jalur yang kamu tentukan; agent memutuskan sendiri langkahnya.

Flow, agent, atau Step Functions?

Bedrock FlowsAgentStep Functions
Siapa menentukan urutanKamu, secara visualModelKamu, dalam JSON
Bisa diprediksiTinggiRendahTinggi
Retry & error handlingTerbatasTergantung frameworkSangat lengkap
Cocok untukAlur GenAI yang bentuknya jelasTugas terbukaAlur produksi berlangkah banyak
Kolaborasi non-engineerPaling mudahSulitSulit

Contoh alur

Contoh dari dokumentasi resminya, disederhanakan: mengirim undangan rapat.

Input  ──▶ Node Prompt        (susun isi email dari permintaan bebas)
       ──▶ Node Knowledge Base (cari alamat email anggota tim)
       ──▶ Node Lambda         (kirim undangan)
       ──▶ Output

Perhatikan bahwa tidak ada keputusan bebas di sini. Urutannya tetap, dan itulah kekuatannya: alur seperti ini tidak perlu — dan tidak boleh — bergantung pada model untuk memutuskan langkah berikutnya.

Jenis node

NodeFungsinya
PromptMemanggil model dengan template; bisa memakai prompt dari Prompt Management
Knowledge baseRetrieval dari knowledge base Fase 4
LambdaKode apa pun: pemanggilan API, transformasi, validasi
ConditionPercabangan berdasarkan nilai
Iterator / CollectorMemproses daftar item satu per satu
Input / OutputTitik masuk dan keluar alur

Memanggil dari kode

agen = boto3.client("bedrock-agent-runtime")

resp = agen.invoke_flow(
    flowIdentifier=FLOW_ID,
    flowAliasIdentifier=FLOW_ALIAS,      # alias menunjuk versi tertentu
    inputs=[{
        "nodeName": "FlowInputNode",
        "nodeOutputName": "document",
        "content": {"document": "Undang tim dokumentasi rapat Selasa jam 14.00"},
    }],
)

for peristiwa in resp["responseStream"]:
    if "flowOutputEvent" in peristiwa:
        print(peristiwa["flowOutputEvent"]["content"]["document"])

Versi dan alias adalah fitur, bukan formalitas. Alur yang di-deploy bersifat tidak bisa diubah, dan aplikasimu menunjuk alias. Artinya kamu bisa menyiapkan versi baru, mengujinya, lalu memindahkan alias — dan mengembalikannya seketika kalau ada masalah. Ini pola rilis yang sama dengan alias Lambda.

Biaya

Flows tidak punya tarif tersendiri untuk orkestrasinya: kamu membayar resource yang dipakai. Node prompt yang memanggil model ditagih sebagai pemanggilan model itu, node Lambda ditagih sebagai Lambda, node knowledge base ditagih sebagai retrieval. Jadi mengoptimalkan alur berarti mengoptimalkan node-nya — terutama mana yang memanggil model besar padahal model kecil cukup.

Kapan memilih Flows

SituasiFlows cocok?
Alur GenAI yang urutannya tetapYa
Perlu dilihat dan diubah oleh non-engineerYa
Butuh retry canggih, callback manusia, eksekusi berhari-hariTidak — Step Functions
Tugas terbuka yang langkahnya tidak bisa ditebakTidak — agent
Seluruh logikanya sudah ada di kode dan diujiTidak — biarkan di kode

Latihan: bangun satu flow tiga node: input → knowledge base → prompt yang merangkum hasilnya dalam bahasa Indonesia. Terbitkan sebagai versi 1, buat alias prod, panggil dari Python. Lalu ubah prompt-nya, terbitkan versi 2, dan pindahkan alias — tanpa menyentuh kode pemanggil.

Rangkuman ini sengaja dipangkas ke bagian yang dipakai di roadmap. Buka sumber aslinya saat kamu butuh detail lengkap atau referensi parameter.