diff --git a/contrib/langchain4j/pom.xml b/contrib/langchain4j/pom.xml
new file mode 100644
index 000000000..e58f9f347
--- /dev/null
+++ b/contrib/langchain4j/pom.xml
@@ -0,0 +1,384 @@
+
+
+
+
+ 4.0.0
+
+
+ com.google.adk
+ google-adk-parent
+ 0.1.1-SNAPSHOT
+
+
+ google-adk-contrib-langchain4j
+ jar
+
+ Agent Development Kit - Contributions - LangChain4j
+ https://github.com/google/adk-java
+
+
+ The Apache License, Version 2.0
+ https://www.apache.org/licenses/LICENSE-2.0
+
+
+
+ scm:git:git@github.com/google:adk-java.git
+
+ scm:git:git@github.com/google:adk-java.git
+
+ git@github.com/google:adk-java.git
+
+
+
+ Google Inc.
+ http://www.google.com
+
+
+
+ Third-party contributions, integrations, and plugins for Agent Development Kit.
+
+
+ UTF-8
+ 17
+ ${java.version}
+ 0.10.0
+ 2.38.0
+ 1.33.1
+ 2.28.0
+ 1.0.0
+ 1.11.0
+ 4.31.0-RC1
+ 5.11.4
+ 5.17.0
+ 1.6.0
+ 2.19.0
+ 4.12.0
+ 1.0.1
+
+
+
+
+ dev.langchain4j
+ langchain4j-bom
+ ${langchain4j.version}
+ pom
+ import
+
+
+ org.junit
+ junit-bom
+ ${junit.version}
+ pom
+ import
+
+
+
+
+
+
+ dev.langchain4j
+ langchain4j-core
+
+
+ com.google.adk
+ google-adk
+ ${project.version}
+
+
+ com.google.adk
+ google-adk-dev
+ ${project.version}
+
+
+ com.google.genai
+ google-genai
+ ${google.genai.version}
+
+
+ io.modelcontextprotocol.sdk
+ mcp
+ ${mcp-schema.version}
+
+
+
+
+ dev.langchain4j
+ langchain4j-anthropic
+ test
+
+
+ dev.langchain4j
+ langchain4j-open-ai
+ test
+
+
+ dev.langchain4j
+ langchain4j-google-ai-gemini
+ test
+
+
+ dev.langchain4j
+ langchain4j-ollama
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-params
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ test
+
+
+ com.google.truth
+ truth
+ 1.4.4
+ test
+
+
+ org.assertj
+ assertj-core
+ 3.27.3
+ test
+
+
+ org.mockito
+ mockito-core
+ ${mockito.version}
+ test
+
+
+
+
+ ossrh
+ Central Repository OSSRH
+ https://google.oss.sonatype.org/service/local/staging/deploy/maven2/
+
+
+ ossrh
+ Central Repository OSSRH for snapshots
+ https://google.oss.sonatype.org/content/repositories/snapshots
+
+
+
+
+
+ com.google.cloud.artifactregistry
+ artifactregistry-maven-wagon
+ 2.2.0
+
+
+
+
+
+ maven-clean-plugin
+ 3.1.0
+
+
+ maven-resources-plugin
+ 3.0.2
+
+
+ maven-compiler-plugin
+ 3.13.0
+
+ ${java.version}
+ ${java.version}
+ ${maven.compiler.release}
+ true
+
+
+ com.google.auto.value
+ auto-value
+ ${auto-value.version}
+
+
+
+
+
+ maven-surefire-plugin
+ 3.5.3
+
+
+ me.fabriciorby
+ maven-surefire-junit5-tree-reporter
+ 0.1.0
+
+
+
+ plain
+
+
+ **/*Test.java
+
+
+
+
+ maven-jar-plugin
+ 3.0.2
+
+
+ maven-install-plugin
+ 2.5.2
+
+
+ maven-deploy-plugin
+ 3.1.1
+
+ false
+
+
+
+ maven-site-plugin
+ 3.7.1
+
+
+ maven-project-info-reports-plugin
+ 3.0.0
+
+
+ org.apache.maven.plugins
+ maven-gpg-plugin
+ 3.2.7
+
+
+ sign-artifacts
+ verify
+
+ sign
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+ 3.3.1
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.6.3
+
+ all,-missing
+ true
+ ${project.build.directory}/javadoc
+ Agent Development Kit
+ ${maven.compiler.release}
+ UTF-8
+
+
+
+ attach-javadocs
+
+ jar
+
+
+
+
+
+ org.sonatype.plugins
+ nexus-staging-maven-plugin
+ 1.7.0
+ true
+
+ ossrh
+ https://google.oss.sonatype.org/
+ false
+
+
+
+
+
+
+ org.jacoco
+ jacoco-maven-plugin
+ 0.8.12
+
+
+
+ prepare-agent
+
+
+
+ *MockitoMock*
+ *$$EnhancerByMockitoWithCGLIB$$*
+ *$$FastClassByMockitoWithCGLIB$$*
+ com/sun/tools/attach/*
+ sun/util/resources/cldr/provider/*
+
+
+
+
+ report
+ test
+
+ report
+
+
+
+ HTML
+
+
+
+
+
+
+
+
+
+ release
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+
+
+ attach-sources
+
+ jar-no-fork
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+
+
+ attach-javadocs
+
+ jar
+
+
+
+
+
+
+
+
+
diff --git a/contrib/langchain4j/src/main/java/com/google/adk/models/langchain4j/LangChain4j.java b/contrib/langchain4j/src/main/java/com/google/adk/models/langchain4j/LangChain4j.java
new file mode 100644
index 000000000..ba94100fa
--- /dev/null
+++ b/contrib/langchain4j/src/main/java/com/google/adk/models/langchain4j/LangChain4j.java
@@ -0,0 +1,492 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.google.adk.models.langchain4j;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.adk.models.BaseLlm;
+import com.google.adk.models.BaseLlmConnection;
+import com.google.adk.models.LlmRequest;
+import com.google.adk.models.LlmResponse;
+import com.google.genai.types.Blob;
+import com.google.genai.types.Content;
+import com.google.genai.types.FunctionCall;
+import com.google.genai.types.FunctionCallingConfigMode;
+import com.google.genai.types.FunctionDeclaration;
+import com.google.genai.types.FunctionResponse;
+import com.google.genai.types.GenerateContentConfig;
+import com.google.genai.types.Part;
+import com.google.genai.types.Schema;
+import com.google.genai.types.ToolConfig;
+import com.google.genai.types.Type;
+import dev.langchain4j.Experimental;
+import dev.langchain4j.agent.tool.ToolExecutionRequest;
+import dev.langchain4j.agent.tool.ToolSpecification;
+import dev.langchain4j.data.audio.Audio;
+import dev.langchain4j.data.image.Image;
+import dev.langchain4j.data.message.AiMessage;
+import dev.langchain4j.data.message.AudioContent;
+import dev.langchain4j.data.message.ChatMessage;
+import dev.langchain4j.data.message.ImageContent;
+import dev.langchain4j.data.message.PdfFileContent;
+import dev.langchain4j.data.message.SystemMessage;
+import dev.langchain4j.data.message.TextContent;
+import dev.langchain4j.data.message.ToolExecutionResultMessage;
+import dev.langchain4j.data.message.UserMessage;
+import dev.langchain4j.data.message.VideoContent;
+import dev.langchain4j.data.pdf.PdfFile;
+import dev.langchain4j.data.video.Video;
+import dev.langchain4j.exception.UnsupportedFeatureException;
+import dev.langchain4j.model.chat.ChatModel;
+import dev.langchain4j.model.chat.StreamingChatModel;
+import dev.langchain4j.model.chat.request.ChatRequest;
+import dev.langchain4j.model.chat.request.ToolChoice;
+import dev.langchain4j.model.chat.request.json.JsonArraySchema;
+import dev.langchain4j.model.chat.request.json.JsonBooleanSchema;
+import dev.langchain4j.model.chat.request.json.JsonIntegerSchema;
+import dev.langchain4j.model.chat.request.json.JsonNumberSchema;
+import dev.langchain4j.model.chat.request.json.JsonObjectSchema;
+import dev.langchain4j.model.chat.request.json.JsonSchemaElement;
+import dev.langchain4j.model.chat.request.json.JsonStringSchema;
+import dev.langchain4j.model.chat.response.ChatResponse;
+import dev.langchain4j.model.chat.response.StreamingChatResponseHandler;
+import io.reactivex.rxjava3.core.BackpressureStrategy;
+import io.reactivex.rxjava3.core.Flowable;
+
+import java.util.ArrayList;
+import java.util.Base64;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.UUID;
+
+@Experimental
+public class LangChain4j extends BaseLlm {
+
+ private static final TypeReference