All Products
Search
Document Center

Realtime Compute for Apache Flink:Mengembangkan Flink Agents (Beta)

Last Updated:Sep 30, 2026

Realtime Compute for Apache Flink mendukung pengembangan pekerjaan AI agent berbasis aliran dan berbasis event menggunakan framework open-source Apache Flink Agents. Dokumen ini menjelaskan konsep inti Flink Agents, mencakup persyaratan versi, panduan memulai cepat, pengembangan kustom, pengiriman pekerjaan, dan manajemen dependensi.

Ikhtisar

Apache Flink Agents adalah subproyek baru dari komunitas Apache Flink untuk membangun AI agent berbasis event. Framework ini memanfaatkan mesin streaming Flink yang telah teruji guna memberikan kemampuan terdistribusi, stateful, toleransi kesalahan, dan pemrosesan aliran kepada AI agent, sehingga siap digunakan di lingkungan produksi enterprise.

Flink Agents menyertakan modul bawaan untuk panggilan large language model (LLM), penggunaan tool, manajemen memori, orkestrasi dinamis, dan observabilitas. Dengan fitur-fitur ini, Anda dapat dengan cepat membangun AI agent skala besar, berjalan terus-menerus, dan andal tingkat produksi.

Flink Agents menyediakan keunggulan inti berikut:

Capability

Description

Distributed coordination

Framework ini menyediakan kemampuan inti seperti perutean event, partisi, konsistensi state terdistribusi, dan pemulihan kegagalan otomatis, sehingga menghilangkan kebutuhan untuk mengelola beberapa replika agent.

Stateful memory

Flink State mengelola memori agent, yang secara otomatis dipersist, dipulihkan, dan didistribusikan ulang selama checkpoint. Hal ini menghilangkan kebutuhan sistem penyimpanan eksternal untuk menjaga konsistensi state.

Stream processing

Saat event terus-menerus tiba, agent merespons secara real time. Mesin stream processing Flink menyediakan inti ber-throughput tinggi dan latensi rendah untuk model operasional ini.

Production reliability

Checkpoint terdistribusi memungkinkan pemulihan otomatis dari kegagalan node dengan jaminan pemrosesan exactly-once, memastikan tidak ada kehilangan data atau event.

Agent types

Anda dapat membangun Workflow Agent atau ReAct Agent untuk berbagai kasus penggunaan.

Type

Use cases

Description

Workflow Agent

Skenario dengan proses yang terdefinisi dengan baik

Mengatur perilaku agent melalui alur kerja berbasis event yang telah ditentukan sebelumnya. Untuk informasi lebih lanjut, lihat Workflow Agent.

ReAct Agent

Skenario yang memerlukan pengambilan keputusan fleksibel

Menggabungkan Reasoning dan Action, memungkinkan LLM menentukan langkah eksekusi secara otonom. Untuk informasi lebih lanjut, lihat ReAct Agent.

Versi dan model

  • Saat mengirimkan pekerjaan Flink Agents, pilih versi engine VVR VVR-11.7 atau yang lebih baru. Jika tidak, pekerjaan akan gagal karena dependensi waktu proses tidak tersedia.

    VVR engine version

    Flink version

    Flink Agents version

    vvr-11.7.0-flink-1.20

    1.20

    0.2.1

  • Model disediakan oleh platform. Anda tidak perlu mengajukan Kunci API terpisah untuk memanggilnya dalam pekerjaan Anda. Fitur ini masih dalam tahap Beta dan memerlukan akses melalui daftar izin (allowlist). Untuk informasi lebih lanjut, lihat Flink AI Service (Built-in Models).

Prasyarat

  • Produk dan izin

    • Anda telah mengaktifkan Realtime Compute for Apache Flink dan membuat ruang kerja. Untuk informasi lebih lanjut, lihat Aktifkan Realtime Compute for Apache Flink.

    • Jika Anda menggunakan Pengguna RAM atau Peran RAM, Anda harus memiliki izin yang diperlukan untuk Konsol Flink. Untuk informasi lebih lanjut, lihat Manajemen izin.

  • Lingkungan pengembangan lokal

    • Python: Python 3.10 atau 3.11.

    • Java: Java 11+ dan Maven 3+.

Memulai cepat

Bagian ini menggunakan contoh analisis ulasan produk untuk memandu Anda melalui seluruh proses. Anda akan membangun pekerjaan Flink contoh dengan agent analisis ulasan menggunakan framework Flink Agents. Saat pekerjaan berjalan, agent memanggil layanan large language model (LLM) bawaan Flink untuk menganalisis ulasan produk, menghasilkan skor kepuasan (dari 1 hingga 5) dan alasan ketidakpuasan.

Langkah 1: Unduh file pekerjaan contoh

Python job

Unduh quickstart-python.zip, yang berisi file berikut:

File

Description

main.py

Titik masuk pekerjaan ini membuat lingkungan eksekusi, mendaftarkan koneksi LLM, dan membangun pipeline pemrosesan aliran.

review_analysis_agent.py

Implementasi agent. File ini mendefinisikan templat prompt, konfigurasi ChatModel, dan logika penanganan aksi.

Anda dapat mengunggah paket ZIP yang diunduh secara langsung tanpa perlu mengekstraknya. Dependensi Python yang digunakan dalam contoh ini, seperti openai dan dashscope, telah dipra-instal dalam image engine VVR.

Java job

Unduh file berikut:

File

Description

quickstart-java.jar

Fat JAR uji coba yang dapat Anda unggah langsung.

quickstart-java-src.zip

Kode sumber Java, disediakan sebagai referensi.

Langkah 2: Unggah dan terapkan pekerjaan

  1. Login ke Konsol Realtime Compute for Apache Flink.

  2. Pada kolom Actions ruang kerja target, klik Console.

  3. Di panel navigasi sebelah kiri, klik File Management. Kemudian, klik Upload Resource untuk mengunggah file pekerjaan yang telah Anda unduh.

  4. Pada halaman Operations > Jobs, klik Deploy Job. Pilih Python Job atau JAR Job sesuai jenis pekerjaan Anda dan isi informasi penerapan.

Konfigurasi pekerjaan Python

Parameter

Contoh

Deployment mode

Streaming mode

Deployment name

flink-agents-quickstart-python

Engine version

vvr-11.7.0-flink-1.20

Python file address

quickstart-python.zip

Entry module

quickstart.main

Deployment target

default-queue

Konfigurasi pekerjaan Java

Penting

Anda harus mengunggah file dependensi tambahan flink-agents-dist.jar.

Parameter

Contoh

Deployment mode

Streaming mode

Deployment name

flink-agents-quickstart-java

Engine version

vvr-11.7.0-flink-1.20

JAR URI

quickstart-java.jar

Entry point class

org.apache.flink.agents.quickstart.Main

Additional dependency file

flink-agents-dist.jar

Deployment target

default-queue

Parameter waktu proses

Buka Deployment Details > Runtime parameter configuration > Edit > Other Configurations, lalu tambahkan item konfigurasi Flink.

  • Python job

    python.executable: python3.10
    python.client.executable: python3.10
    containerized.master.env.FLINK_HOME: /flink
    containerized.taskmanager.env.FLINK_HOME: /flink
    classloader.parent-first-patterns.default: java.;scala.;com.esotericsoftware.kryo;org.apache.hadoop.;javax.annotation.;org.xml;javax.xml;org.apache.xerces;org.w3c;org.rocksdb.;org.slf4j;org.apache.log4j;org.apache.logging;org.apache.commons.logging;ch.qos.logback
  • Java job

    classloader.parent-first-patterns.default: java.;scala.;com.esotericsoftware.kryo;org.apache.hadoop.;javax.annotation.;org.xml;javax.xml;org.apache.xerces;org.w3c;org.rocksdb.;org.slf4j;org.apache.log4j;org.apache.logging;org.apache.commons.logging;ch.qos.logback

    Deskripsi parameter

    Parameter

    Description

    python.executable / python.client.executable

    Menentukan versi interpreter Python (hanya untuk pekerjaan Python).

    containerized.{master,taskmanager}.env.FLINK_HOME

    Menetapkan variabel lingkungan FLINK_HOME untuk JobManager dan TaskManager (hanya untuk pekerjaan Python).

    classloader.parent-first-patterns.default

    Menetapkan awalan nama paket yang dimuat terlebih dahulu dari parent ClassLoader.

    Catatan

    Anda harus mengonfigurasi variabel lingkungan dengan awalan containerized.master.env. dan containerized.taskmanager.env. untuk memastikan variabel tersebut tersedia bagi JobManager maupun TaskManager.

Langkah 3: Mulai pekerjaan dan lihat hasilnya

  1. Pada halaman Operations > Jobs, temukan pekerjaan Anda dan klik Start pada kolom Actions.

  2. Pada kotak dialog Start Job, pilih stateless start dan klik Start.

  3. Contoh ini menggunakan sumber data in-memory, sehingga pekerjaan secara otomatis berhenti setelah pemrosesan selesai. Tunggu hingga status berubah menjadi finished, lalu klik nama pekerjaan untuk membuka halaman detail.

  4. Pada tab TaskManager, lihat log dan cari kata kunci Review analysis result: untuk melihat output.

Catatan

Di lingkungan produksi, Anda biasanya akan menggunakan sumber data streaming seperti Apache Kafka, dan pekerjaan akan berjalan terus-menerus.

Mengembangkan agent kustom

Menginstal Flink Agents

Python

Kami menyarankan Anda menggunakan virtual environment:

python3 -m venv flink-agents-env
source flink-agents-env/bin/activate
pip install flink-agents       

Untuk informasi lebih lanjut, lihat Panduan Instalasi Flink Agents.

Java

Tambahkan dependensi berikut ke file pom.xml Anda:

<dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-agents-api</artifactId>
    <version>${flink-agents.version}</version>
    <scope>provided</scope>
</dependency>
Catatan

Dependensi Flink Agents harus dideklarasikan dengan <scope>provided</scope> karena sudah disediakan oleh engine VVR.

Untuk debugging di IDE lokal Anda, tambahkan dependensi berikut:

<dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-agents-ide-support</artifactId>
    <version>${flink-agents.version}</version>
    <scope>provided</scope>
</dependency>

Menulis agent

Struktur inti pekerjaan Flink Agents adalah sebagai berikut:

  1. Daftarkan koneksi LLM: Daftarkan koneksi ChatModel menggunakan AgentsExecutionEnvironment. Konfigurasikan clazz layanan model bawaan Flink menggunakan ResourceDescriptor. Untuk informasi lebih lanjut, lihat Chat Models. Contoh:

    @chat_model_connection
    @staticmethod
    def openai_connection() -> ResourceDescriptor:
        return ResourceDescriptor(
            clazz="flink_agents.integrations.chat_models.openai.openai_chat_model.OpenAIChatModelConnection"
        )
    
    @chat_model_setup
    @staticmethod
    def openai_chat_model() -> ResourceDescriptor:
        return ResourceDescriptor(
            clazz="flink_agents.integrations.chat_models.openai.openai_chat_model.OpenAIChatModelSetup",
            connection="openai_connection",
            model="qwen3.7-flash",
            temperature=0.7
        )
  2. Definisikan agent: Implementasikan agent kustom Anda, konfigurasikan templat prompt-nya, dan definisikan logika penanganan event menggunakan anotasi @action (Python) atau @Action (Java).

  3. Bangun pipeline: Hubungkan aliran data masukan ke agent untuk diproses dan keluarkan hasil analisis.

Untuk informasi lebih lanjut tentang konsep seperti agent, prompt, tool, dan memori, lihat dokumentasi pengembangan Flink Agents.

Pengujian lokal

Pengujian lokal ditangani secara otomatis oleh Flink MiniCluster, sehingga Anda tidak perlu menerapkan kluster terpisah.

Python

python your_agent_job.py        

Java

mvn exec:java -Dexec.mainClass="com.example.YourAgentJob"       

Untuk informasi lebih lanjut, lihat dokumentasi penerapan Flink Agents.

Manajemen dependensi

Dependensi yang telah dipra-instal

Image engine VVR telah dipra-instal dengan pustaka inti Flink Agents dan beberapa dependensi terkait.

Dependensi Python

Dependency

Description

flink-agents core library

API Python Flink Agents

openai

Antarmuka kompatibel OpenAI (termasuk platform Model Studio)

dashscope

Alibaba Cloud Model Studio (antarmuka native untuk Qwen)

mcp

Model Context Protocol

Dependensi yang tidak dipra-instal harus diunggah bersama pekerjaan Anda. Untuk informasi lebih lanjut, lihat Kelola dependensi Python.

Dependensi Java

Engine VVR hanya berisi thin JAR Flink Agents (kode inti). Dependensi pihak ketiga untuk semua integrasi LLM harus dikemas ke dalam JAR pekerjaan.

Saat menerapkan pekerjaan, selain fat JAR bisnis Anda, Anda juga harus mengunggah flink-agents-dist.jar sebagai dependensi tambahan. JAR ini berisi runtime Flink Agents beserta semua integrasi yang didukung komunitas, dan diperlukan juga untuk pekerjaan Agent kustom.

Mengelola dependensi pekerjaan Java

Gunakan maven-shade-plugin untuk mengemas pekerjaan Anda ke dalam fat JAR. Konfigurasikan cakupan dependensi sesuai aturan berikut:

  • Dependensi inti Flink Agents (seperti flink-agents-api dan flink-agents-runtime): Tetapkan cakupan ke <scope>provided</scope> dan jangan masukkan ke dalam fat JAR.

  • Dependensi inti Flink (seperti flink-streaming-java): Tetapkan cakupan ke <scope>provided</scope>.

  • Dependensi integrasi LLM: Tangani berdasarkan kasus berikut.

    • Untuk integrasi yang sudah didukung komunitas Flink Agents (seperti OpenAI dan Anthropic): Tetapkan cakupan ke <scope>provided</scope> dan jangan masukkan ke dalam fat JAR. Untuk daftar lengkap integrasi yang didukung di Flink Agents 0.2.1, lihat Built-in Providers.

    • Untuk integrasi yang belum didukung komunitas: Tetapkan cakupan ke <scope>compile</scope> dan masukkan ke dalam fat JAR.

  • Pustaka yang bentrok dengan Flink (seperti Jackson): Konfigurasikan relocation di maven-shade-plugin.

Untuk contoh konfigurasi lengkap file pom.xml, lihat file quickstart-java-src.zip.

Mengirimkan pekerjaan ke Realtime Compute for Flink

Python job

Proses pengiriman sama seperti pekerjaan PyFlink standar. Untuk informasi lebih lanjut, lihat Mengembangkan pekerjaan Python. Parameter utamanya adalah sebagai berikut:

Parameter

Description

Engine version

Pilih versi engine VVR yang mendukung Flink Agents. Untuk versi spesifik, lihat bagian "Versi dan model".

Python file address

File Python entri pekerjaan atau paket ZIP.

Entry module

Nama modul entri untuk paket ZIP.

Python libraries

Dependensi tambahan.

Java job

Proses pengiriman sama seperti pekerjaan JAR Flink standar. Untuk informasi lebih lanjut, lihat Mengembangkan pekerjaan JAR. Parameter utamanya adalah sebagai berikut:

Parameter

Description

Engine version

Pilih versi engine VVR yang mendukung Flink Agents. Untuk versi spesifik, lihat bagian "Versi dan model".

JAR URI

Jalur ke fat JAR.

Entry point class

Nama lengkap kelas entri pekerjaan.

Parameter waktu proses umum

Versi interpreter Python

Image engine VVR secara default menggunakan Python 3.9, tetapi Flink Agents memerlukan Python 3.10 atau 3.11. Anda harus mengonfigurasi hal berikut untuk pekerjaan Python:

python.executable: python3.10
python.client.executable: python3.10
containerized.master.env.FLINK_HOME: /flink
containerized.taskmanager.env.FLINK_HOME: /flink

Variabel lingkungan kustom

Jika kode pekerjaan Anda membaca konfigurasi dari variabel lingkungan (seperti URL titik akhir atau pemilihan model), Anda harus menetapkan variabel tersebut untuk proses JobManager dan TaskManager menggunakan awalan masing-masing:

containerized.master.env.<ENV_VAR_NAME>: <value>
containerized.taskmanager.env.<ENV_VAR_NAME>: <value>        

Contoh penggantian model:

containerized.master.env.OPENAI_MODEL: qwen3.6-flash
containerized.taskmanager.env.OPENAI_MODEL: qwen3.6-flash