ADK untuk Java membuka model bahasa pihak ketiga melalui integrasi LangChain4j

16 SEP. 2025

Rilis 0.2.0 terbaru Agent Development Kit (ADK) untuk Java dari Google menambahkan integrasi dengan framework LLM LangChain4j. Integrasi ini memberikan developer berbagai macam Model Bahasa Besar (LLM) yang didukung LangChain4j, untuk membangun agen AI.

Selain integrasi Google Gemini dan Anthropic Claude bawaan ADK, developer sekarang bisa menggunakan LangChain4j untuk mengakses model lain dari penyedia pihak ketiga (seperti OpenAI, Anthropic, GitHub, Mistral...) atau model open-weight lokal, mis. melalui Ollama atau Docker Model Runner.

Integrasi LangChain4j untuk banyak pilihan model

Framework LLM LangChain4j mendukung berbagai macam model. Anda bisa memeriksa daftar model yang didukung dalam dokumentasi LangChain4j. Mari kita lihat beberapa contoh konkret, menggunakan Gemma dengan Docker Model Runner, dan Ollama dengan Qwen.

Ketika mendeklarasikan agen ADK Anda dengan builder LlmAgent, Anda menetapkan LLM melalui metode builder model(). Anda biasanya memberikan sebuah string yang merepresentasikan nama model, seperti "gemini-2.5-flash".

Anda juga bisa menggunakan instance class yang memperluas class abstrak BaseLlm. Inilah yang dilakukan dalam integrasi dengan LangChain4j, untuk membuat jembatan antara kedua framework. Anda harus menggunakan class LangChain4j baru yang memperluas class BaseLlm ini.

Menjalankan Gemma 3 dengan Docker Model Runner

Setelah menginstal dan mengaktifkan Docker Model Runner di mesin Anda, Anda bisa menarik model Gemma 3 dengan mudah melalui perintah ini:

docker model pull ai/gemma3
Shell

Karena model Docker Model Runner mengekspos platform API yang kompatibel dengan OpenAI, Anda bisa menggunakan modul LangChain4j untuk model yang kompatibel dengan OpenAI, dengan menetapkan dependensi berikut di pom.xml Maven Anda:

<dependency>
    <groupId>com.google.adk</groupId>
    <artifactId>google-adk-contrib-langchain4j</artifactId>
    <version>0.2.0</version>
</dependency>
<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-open-ai</artifactId>
    <version>1.4.0</version>
</dependency>
XML

Kemudian, buat model chat LangChain4j, tentukan model yang ingin Anda gunakan, serta URL dan port lokal:

OpenAiChatModel dmrChatModel = OpenAiChatModel.builder()
    .baseUrl("http://localhost:12434/engines/llama.cpp/v1")
    .modelName("ai/gemma3n")
    .build();
Java

Sekarang, konfigurasikan agen pelatih catur menggunakan model tersebut:

LlmAgent chessCoachAgent = LlmAgent.builder()
    .name("chess-coach")
    .description("Chess coach agent")
    .model(new LangChain4j(dmrChatModel))
    .instruction("""
        You are a knowledgeable chess coach
        who helps chess players train and sharpen their chess skills.
        """)
    .build();
Java

Perhatikan bagaimana jembatan antara dua framework dilakukan melalui instruksi model(new LangChain4j(dmrChatModel)). Dan ini dia, agen AI Anda didukung oleh model lokal!

Menjalankan Qwen 3 dengan Ollama

Jika Anda ingin membangun agen guru sains yang ramah dengan model Qwen 3 yang berjalan secara lokal di mesin Anda melalui Ollama, pertama-tama, tentukan dependensi kita di dalam file build pom.xml Maven:

<!-- the code ADK framework -->
<dependency>
    <groupId>com.google.adk</groupId>
    <artifactId>google-adk</artifactId>
    <version>0.2.0</version>
</dependency>
<!-- the LangChain4j integration -->
<dependency>
    <groupId>com.google.adk</groupId>
    <artifactId>google-adk-contrib-langchain4j</artifactId>
    <version>0.2.0</version>
</dependency>
<!-- the LangChain4j Ollama provider -->
<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-ollama</artifactId>
    <version>1.4.0</version>
</dependency>
XML

Mari asumsikan Anda telah menginstal Ollama di mesin Anda, Anda menarik model Qwen 3, dan menjalankannya di port 11434. Dengan LangChain4j, di Java, Anda membuat instance penyedia model Ollama seperti berikut:

OllamaChatModel ollamaChatModel = OllamaChatModel.builder()
    .modelName("qwen3:1.7b")
    .baseUrl("http://127.0.0.1:11434")
    .build();
Java

Sekarang mari kita hubungkan model ini ke dalam agen guru sains sederhana:

LlmAgent scienceTeacherAgent = LlmAgent.builder()
    .name("science-app")
    .description("Science teacher agent")
    .model(new LangChain4j(ollamaChatModel))
    .instruction("""
        You are a helpful science teacher
        who explains science concepts to kids and teenagers.
        """)
    .build();
Java

Jika model mendukung panggilan fungsi, Anda juga bisa memberikan agen Anda akses ke alat. Misalnya, memberikan akses ke server MCP, atau fungsi yang digerakkan kode lokal Anda. Anda dapat menjelajahi berbagai alat yang tersedia dalam artikel untuk mempelajari alat ADK ini, atau dengan melihat dokumentasi ADK.

Fitur Baru dalam Rilis ini

Selain integrasi utama LangChain4j, versi 0.2.0 menghadirkan beberapa peningkatan kuat lainnya pada alur kerja pengembangan agen:

  • Kemampuan Peralatan yang Diperluas: Kami telah meningkatkan cara Anda membuat dan mengelola alat secara signifikan.
    • FunctionTools berbasis instance: Anda sekarang bisa membuat FunctionTools dari instance objek, bukan hanya metode statis, menawarkan fleksibilitas yang lebih besar dalam arsitektur agen Anda.
    • Peningkatan Dukungan Asinkron: FunctionTools kini mendukung metode yang mengembalikan Single. Hal ini meningkatkan dukungan operasi asinkron dan membuat agen semakin responsif.
    • Kontrol Loop yang Lebih Baik: Kolom endInvocation baru di Event Actions memungkinkan interupsi terprogram atau penghentian loop agen setelah panggilan alat. Ini memberikan kontrol yang lebih baik atas eksekusi agen.
  • Logika dan Memori Agen Tingkat Lanjut:
    • Callback Berantai: Kami telah menambahkan dukungan callback berantai untuk peristiwa before/after pada eksekusi model, agen, dan alat. Hal ini memungkinkan logika yang lebih kompleks dan terperinci dalam siklus proses agen Anda.
    • Memori dan Pengambilan Baru: Versi ini memperkenalkan InMemoryMemoryService untuk manajemen memori yang mudah dan cepat serta mengimplementasikan VertexAiRagRetrieval menggunakan AI Platform API untuk pola RAG yang lebih canggih.
  • Peningkatan utama lainnya termasuk POM induk dan Maven Wrapper (./mvnw), memastikan proses build yang konsisten dan mudah untuk semua kontributor.

Mari kita gunakan agen AI tersebut

Kami sangat senang bisa menghadirkan versi baru ini ke tangan Anda. Integrasi dengan LangChain4j menandai langkah besar ke depan dalam menjadikan ADK untuk Java sebagai framework yang lebih terbuka dan fleksibel untuk membangun agen AI yang kuat.

Untuk mempelajari lebih lanjut tentang versi baru ADK untuk Java ini, baca catatan rilis GitHub. Baru memulai pengembangan agen di Java dengan ADK? Lihat dokumentasi ADK untuk Java, panduan memulai (dan video) ini, atau fork project template GitHub ini untuk memulai dengan cepat.

Rekan saya Michael Vorburger dan saya sendiri sangat senang mengerjakan integrasi LangChain4j ini, berkolaborasi dengan Dmytro Liubarskyi yang menciptakan LangChain4j. Jadi, jika Anda sedang membangun agen AI di Java dengan ADK, jangan ragu untuk mengirimkan pesan ke @glaforge di Twitter/X atau @glaforge.dev di Bluesky. Kami sangat menantikan cerita tentang kasus penggunaan Anda yang luar biasa.