You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by fm...@apache.org on 2026/05/08 14:00:33 UTC

(camel) branch main updated (ff3dbb9236d3 -> 557b15f88e63)

This is an automated email from the ASF dual-hosted git repository.

Croway pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


    from ff3dbb9236d3 CAMEL-23400: camel-test - Add route diagram dumper (#23085)
     new 657230fdd4bf chore(langchain4j-chat): mark as producer-only and update documentation
     new f41c96451d2f chore(langchain4j-agent): fix documentation examples and MCP properties
     new 557b15f88e63 chore(spring-ai): use Camel type converters for body extraction

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../camel/catalog/components/langchain4j-chat.json |  28 +-
 .../src/main/docs/langchain4j-agent-component.adoc |   7 +-
 .../chat/LangChain4jChatComponentConfigurer.java   |   6 -
 .../chat/LangChain4jChatEndpointConfigurer.java    |  18 --
 .../chat/LangChain4jChatEndpointUriFactory.java    |   5 +-
 .../langchain4j/chat/langchain4j-chat.json         |  28 +-
 .../src/main/docs/langchain4j-chat-component.adoc  |  22 +-
 .../langchain4j/chat/LangChain4jChatEndpoint.java  |   1 +
 .../langchain4j/chat/LangChain4jChatProducer.java  |  13 +-
 .../springai/chat/SpringAiChatProducer.java        |  11 +-
 .../embeddings/SpringAiEmbeddingsProducer.java     |  15 +-
 .../springai/image/SpringAiImageProducer.java      |  15 +-
 .../vectorstore/SpringAiVectorStoreProducer.java   |  21 +-
 .../Langchain4jChatComponentBuilderFactory.java    |  33 +-
 .../dsl/LangChain4jChatEndpointBuilderFactory.java | 335 ++-------------------
 15 files changed, 108 insertions(+), 450 deletions(-)


(camel) 03/03: chore(spring-ai): use Camel type converters for body extraction

Posted by fm...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

Croway pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 557b15f88e6335e41f12ef0245aad5196cf9800f
Author: Croway <fe...@gmail.com>
AuthorDate: Fri May 8 15:17:11 2026 +0200

    chore(spring-ai): use Camel type converters for body extraction
    
    Replace direct instanceof String checks with getBody(String.class) to
    leverage Camel's type converter system, allowing automatic conversion
    from other body types (e.g. byte[], InputStream) to String.
---
 .../springai/chat/SpringAiChatProducer.java         | 11 ++++++++---
 .../embeddings/SpringAiEmbeddingsProducer.java      | 15 +++++++++------
 .../springai/image/SpringAiImageProducer.java       | 15 +++++++++------
 .../vectorstore/SpringAiVectorStoreProducer.java    | 21 +++++++++++++--------
 4 files changed, 39 insertions(+), 23 deletions(-)

diff --git a/components/camel-spring-parent/camel-spring-ai/camel-spring-ai-chat/src/main/java/org/apache/camel/component/springai/chat/SpringAiChatProducer.java b/components/camel-spring-parent/camel-spring-ai/camel-spring-ai-chat/src/main/java/org/apache/camel/component/springai/chat/SpringAiChatProducer.java
index f864bce02563..1503c594ef19 100644
--- a/components/camel-spring-parent/camel-spring-ai/camel-spring-ai-chat/src/main/java/org/apache/camel/component/springai/chat/SpringAiChatProducer.java
+++ b/components/camel-spring-parent/camel-spring-ai/camel-spring-ai-chat/src/main/java/org/apache/camel/component/springai/chat/SpringAiChatProducer.java
@@ -214,9 +214,14 @@ public class SpringAiChatProducer extends DefaultProducer {
             UserMessage multimodalMessage = createMultimodalMessage(exchange, bytes);
             applyUserMessageWithMedia(request, exchange, multimodalMessage.getText(), multimodalMessage.getMedia());
         } else {
-            throw new IllegalArgumentException(
-                    "Unsupported message type: " + messageBody.getClass().getName()
-                                               + ". Expected String, byte[], WrappedFile, List<WrappedFile>, or org.springframework.ai.chat.messages.Message");
+            String text = exchange.getIn().getBody(String.class);
+            if (text != null) {
+                userMessageText = text;
+            } else {
+                throw new IllegalArgumentException(
+                        "Unsupported message type: " + messageBody.getClass().getName()
+                                                   + ". Expected String, byte[], WrappedFile, List<WrappedFile>, or org.springframework.ai.chat.messages.Message");
+            }
         }
 
         // Apply augmented data to user message if provided
diff --git a/components/camel-spring-parent/camel-spring-ai/camel-spring-ai-embeddings/src/main/java/org/apache/camel/component/springai/embeddings/SpringAiEmbeddingsProducer.java b/components/camel-spring-parent/camel-spring-ai/camel-spring-ai-embeddings/src/main/java/org/apache/camel/component/springai/embeddings/SpringAiEmbeddingsProducer.java
index c34730611a5c..f844951a8dcc 100644
--- a/components/camel-spring-parent/camel-spring-ai/camel-spring-ai-embeddings/src/main/java/org/apache/camel/component/springai/embeddings/SpringAiEmbeddingsProducer.java
+++ b/components/camel-spring-parent/camel-spring-ai/camel-spring-ai-embeddings/src/main/java/org/apache/camel/component/springai/embeddings/SpringAiEmbeddingsProducer.java
@@ -47,14 +47,17 @@ public class SpringAiEmbeddingsProducer extends DefaultProducer {
         List<String> inputTexts;
         Object body = message.getBody();
 
-        if (body instanceof String str) {
-            inputTexts = List.of(str);
-        } else if (body instanceof List) {
+        if (body instanceof List) {
             inputTexts = (List<String>) body;
         } else {
-            throw new IllegalArgumentException(
-                    "Message body must be a String or List<String>, but was: "
-                                               + (body != null ? body.getClass().getName() : "null"));
+            String str = message.getBody(String.class);
+            if (str != null) {
+                inputTexts = List.of(str);
+            } else {
+                throw new IllegalArgumentException(
+                        "Message body must be a String or List<String>, but was: "
+                                                   + (body != null ? body.getClass().getName() : "null"));
+            }
         }
 
         final EmbeddingResponse response = model.call(new EmbeddingRequest(
diff --git a/components/camel-spring-parent/camel-spring-ai/camel-spring-ai-image/src/main/java/org/apache/camel/component/springai/image/SpringAiImageProducer.java b/components/camel-spring-parent/camel-spring-ai/camel-spring-ai-image/src/main/java/org/apache/camel/component/springai/image/SpringAiImageProducer.java
index bf46bea6cdf5..3f217b14517b 100644
--- a/components/camel-spring-parent/camel-spring-ai/camel-spring-ai-image/src/main/java/org/apache/camel/component/springai/image/SpringAiImageProducer.java
+++ b/components/camel-spring-parent/camel-spring-ai/camel-spring-ai-image/src/main/java/org/apache/camel/component/springai/image/SpringAiImageProducer.java
@@ -50,13 +50,16 @@ public class SpringAiImageProducer extends DefaultProducer {
 
         if (body instanceof ImagePrompt prompt) {
             imagePrompt = prompt;
-        } else if (body instanceof String text) {
-            ImageOptions options = buildImageOptions(exchange);
-            imagePrompt = new ImagePrompt(text, options);
         } else {
-            throw new IllegalArgumentException(
-                    "Message body must be a String or ImagePrompt, but was: "
-                                               + (body != null ? body.getClass().getName() : "null"));
+            String text = message.getBody(String.class);
+            if (text != null) {
+                ImageOptions options = buildImageOptions(exchange);
+                imagePrompt = new ImagePrompt(text, options);
+            } else {
+                throw new IllegalArgumentException(
+                        "Message body must be a String or ImagePrompt, but was: "
+                                                   + (body != null ? body.getClass().getName() : "null"));
+            }
         }
 
         ImageResponse response = model.call(imagePrompt);
diff --git a/components/camel-spring-parent/camel-spring-ai/camel-spring-ai-vector-store/src/main/java/org/apache/camel/component/springai/vectorstore/SpringAiVectorStoreProducer.java b/components/camel-spring-parent/camel-spring-ai/camel-spring-ai-vector-store/src/main/java/org/apache/camel/component/springai/vectorstore/SpringAiVectorStoreProducer.java
index f9eaac6cc477..f62b023662d2 100644
--- a/components/camel-spring-parent/camel-spring-ai/camel-spring-ai-vector-store/src/main/java/org/apache/camel/component/springai/vectorstore/SpringAiVectorStoreProducer.java
+++ b/components/camel-spring-parent/camel-spring-ai/camel-spring-ai-vector-store/src/main/java/org/apache/camel/component/springai/vectorstore/SpringAiVectorStoreProducer.java
@@ -119,13 +119,15 @@ public class SpringAiVectorStoreProducer extends DefaultProducer {
                             documents.add(new Document(str));
                         }
                     }
-                } else if (body instanceof String str) {
-                    // Create document from text
-                    documents.add(new Document(str));
                 } else {
-                    throw new IllegalArgumentException(
-                            "Message body must be a Document, List<Document>, String, List<String>, " +
-                                                       "float[], or List<float[]>, or embeddings must be present in headers");
+                    String str = message.getBody(String.class);
+                    if (str != null) {
+                        documents.add(new Document(str));
+                    } else {
+                        throw new IllegalArgumentException(
+                                "Message body must be a Document, List<Document>, String, List<String>, " +
+                                                           "float[], or List<float[]>, or embeddings must be present in headers");
+                    }
                 }
             }
         }
@@ -165,8 +167,11 @@ public class SpringAiVectorStoreProducer extends DefaultProducer {
             Object body = message.getBody();
             if (body instanceof List) {
                 documentIds = (List<String>) body;
-            } else if (body instanceof String str) {
-                documentIds = List.of(str);
+            } else {
+                String str = message.getBody(String.class);
+                if (str != null) {
+                    documentIds = List.of(str);
+                }
             }
         }
 


(camel) 01/03: chore(langchain4j-chat): mark as producer-only and update documentation

Posted by fm...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

Croway pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 657230fdd4bfbf27dee172e539967c18e153e026
Author: Croway <fe...@gmail.com>
AuthorDate: Fri May 8 15:16:57 2026 +0200

    chore(langchain4j-chat): mark as producer-only and update documentation
    
    The langchain4j-chat component consumer side has been superseded by
    the langchain4j-agent component. Mark the endpoint as producerOnly,
    remove consumer-related options, fix deprecated model references
    (gpt-3.5-turbo -> gpt-4o-mini, ChatLanguageModel -> ChatModel), fix
    header class references, fix operation name typos (CHAT_SIMPLE_MESSAGE
    -> CHAT_SINGLE_MESSAGE), and improve type handling in the producer.
---
 .../camel/catalog/components/langchain4j-chat.json |  28 +-
 .../chat/LangChain4jChatComponentConfigurer.java   |   6 -
 .../chat/LangChain4jChatEndpointConfigurer.java    |  18 --
 .../chat/LangChain4jChatEndpointUriFactory.java    |   5 +-
 .../langchain4j/chat/langchain4j-chat.json         |  28 +-
 .../src/main/docs/langchain4j-chat-component.adoc  |  22 +-
 .../langchain4j/chat/LangChain4jChatEndpoint.java  |   1 +
 .../langchain4j/chat/LangChain4jChatProducer.java  |  13 +-
 .../Langchain4jChatComponentBuilderFactory.java    |  33 +-
 .../dsl/LangChain4jChatEndpointBuilderFactory.java | 335 ++-------------------
 10 files changed, 65 insertions(+), 424 deletions(-)

diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/langchain4j-chat.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/langchain4j-chat.json
index 0d8373f2465f..c0c6529cfcee 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/langchain4j-chat.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/langchain4j-chat.json
@@ -18,30 +18,26 @@
     "async": false,
     "api": false,
     "consumerOnly": false,
-    "producerOnly": false,
+    "producerOnly": true,
     "lenientProperties": false,
     "browsable": false,
     "remote": true
   },
   "componentProperties": {
-    "chatOperation": { "index": 0, "kind": "property", "displayName": "Chat Operation", "group": "common", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.langchain4j.chat.LangChain4jChatOperations", "enum": [ "CHAT_SINGLE_MESSAGE", "CHAT_SINGLE_MESSAGE_WITH_PROMPT", "CHAT_MULTIPLE_MESSAGES" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "CHAT_SINGLE_MESSAGE", "configurationClass": "org.apache.cam [...]
-    "configuration": { "index": 1, "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.langchain4j.chat.LangChain4jChatConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "The configuration." },
-    "bridgeErrorHandler": { "index": 2, "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming messages, or the like [...]
-    "lazyStartProducer": { "index": 3, "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail [...]
-    "autowiredEnabled": { "index": 4, "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching t [...]
-    "chatModel": { "index": 5, "kind": "property", "displayName": "Chat Model", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "dev.langchain4j.model.chat.ChatModel", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.langchain4j.chat.LangChain4jChatConfiguration", "configurationField": "configuration", "description": "Chat Model of type dev.langchain4j.model.chat.Ch [...]
+    "chatOperation": { "index": 0, "kind": "property", "displayName": "Chat Operation", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.langchain4j.chat.LangChain4jChatOperations", "enum": [ "CHAT_SINGLE_MESSAGE", "CHAT_SINGLE_MESSAGE_WITH_PROMPT", "CHAT_MULTIPLE_MESSAGES" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "CHAT_SINGLE_MESSAGE", "configurationClass": "org.apache.c [...]
+    "configuration": { "index": 1, "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.langchain4j.chat.LangChain4jChatConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "The configuration." },
+    "lazyStartProducer": { "index": 2, "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail [...]
+    "autowiredEnabled": { "index": 3, "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching t [...]
+    "chatModel": { "index": 4, "kind": "property", "displayName": "Chat Model", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "dev.langchain4j.model.chat.ChatModel", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.langchain4j.chat.LangChain4jChatConfiguration", "configurationField": "configuration", "description": "Chat Model of type dev.langchain4j.model.chat.Ch [...]
   },
   "headers": {
-    "CamelLangChain4jChatPromptTemplate": { "index": 0, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The prompt Template.", "constantName": "org.apache.camel.component.langchain4j.chat.LangChain4jChatHeaders#PROMPT_TEMPLATE" },
-    "CamelLangChain4jChatAugmentedData": { "index": 1, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Augmented Data for RAG", "constantName": "org.apache.camel.component.langchain4j.chat.LangChain4jChatHeaders#AUGMENTED_DATA" }
+    "CamelLangChain4jChatPromptTemplate": { "index": 0, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The prompt Template.", "constantName": "org.apache.camel.component.langchain4j.chat.LangChain4jChatHeaders#PROMPT_TEMPLATE" },
+    "CamelLangChain4jChatAugmentedData": { "index": 1, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Augmented Data for RAG", "constantName": "org.apache.camel.component.langchain4j.chat.LangChain4jChatHeaders#AUGMENTED_DATA" }
   },
   "properties": {
-    "chatId": { "index": 0, "kind": "path", "displayName": "Chat Id", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The id" },
-    "chatOperation": { "index": 1, "kind": "parameter", "displayName": "Chat Operation", "group": "common", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.langchain4j.chat.LangChain4jChatOperations", "enum": [ "CHAT_SINGLE_MESSAGE", "CHAT_SINGLE_MESSAGE_WITH_PROMPT", "CHAT_MULTIPLE_MESSAGES" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "CHAT_SINGLE_MESSAGE", "configurationClass": "org.apache.ca [...]
-    "bridgeErrorHandler": { "index": 2, "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming  [...]
-    "exceptionHandler": { "index": 3, "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By def [...]
-    "exchangePattern": { "index": 4, "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "enum", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
-    "lazyStartProducer": { "index": 5, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a produc [...]
-    "chatModel": { "index": 6, "kind": "parameter", "displayName": "Chat Model", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "dev.langchain4j.model.chat.ChatModel", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.langchain4j.chat.LangChain4jChatConfiguration", "configurationField": "configuration", "description": "Chat Model of type dev.langchain4j.model.chat.C [...]
+    "chatId": { "index": 0, "kind": "path", "displayName": "Chat Id", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The id" },
+    "chatOperation": { "index": 1, "kind": "parameter", "displayName": "Chat Operation", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.langchain4j.chat.LangChain4jChatOperations", "enum": [ "CHAT_SINGLE_MESSAGE", "CHAT_SINGLE_MESSAGE_WITH_PROMPT", "CHAT_MULTIPLE_MESSAGES" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "CHAT_SINGLE_MESSAGE", "configurationClass": "org.apache. [...]
+    "lazyStartProducer": { "index": 2, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a produc [...]
+    "chatModel": { "index": 3, "kind": "parameter", "displayName": "Chat Model", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "dev.langchain4j.model.chat.ChatModel", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.langchain4j.chat.LangChain4jChatConfiguration", "configurationField": "configuration", "description": "Chat Model of type dev.langchain4j.model.chat.C [...]
   }
 }
diff --git a/components/camel-ai/camel-langchain4j-chat/src/generated/java/org/apache/camel/component/langchain4j/chat/LangChain4jChatComponentConfigurer.java b/components/camel-ai/camel-langchain4j-chat/src/generated/java/org/apache/camel/component/langchain4j/chat/LangChain4jChatComponentConfigurer.java
index 49806b70111d..104c55f69050 100644
--- a/components/camel-ai/camel-langchain4j-chat/src/generated/java/org/apache/camel/component/langchain4j/chat/LangChain4jChatComponentConfigurer.java
+++ b/components/camel-ai/camel-langchain4j-chat/src/generated/java/org/apache/camel/component/langchain4j/chat/LangChain4jChatComponentConfigurer.java
@@ -32,8 +32,6 @@ public class LangChain4jChatComponentConfigurer extends PropertyConfigurerSuppor
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "autowiredenabled":
         case "autowiredEnabled": target.setAutowiredEnabled(property(camelContext, boolean.class, value)); return true;
-        case "bridgeerrorhandler":
-        case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
         case "chatmodel":
         case "chatModel": getOrCreateConfiguration(target).setChatModel(property(camelContext, dev.langchain4j.model.chat.ChatModel.class, value)); return true;
         case "chatoperation":
@@ -55,8 +53,6 @@ public class LangChain4jChatComponentConfigurer extends PropertyConfigurerSuppor
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "autowiredenabled":
         case "autowiredEnabled": return boolean.class;
-        case "bridgeerrorhandler":
-        case "bridgeErrorHandler": return boolean.class;
         case "chatmodel":
         case "chatModel": return dev.langchain4j.model.chat.ChatModel.class;
         case "chatoperation":
@@ -74,8 +70,6 @@ public class LangChain4jChatComponentConfigurer extends PropertyConfigurerSuppor
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "autowiredenabled":
         case "autowiredEnabled": return target.isAutowiredEnabled();
-        case "bridgeerrorhandler":
-        case "bridgeErrorHandler": return target.isBridgeErrorHandler();
         case "chatmodel":
         case "chatModel": return getOrCreateConfiguration(target).getChatModel();
         case "chatoperation":
diff --git a/components/camel-ai/camel-langchain4j-chat/src/generated/java/org/apache/camel/component/langchain4j/chat/LangChain4jChatEndpointConfigurer.java b/components/camel-ai/camel-langchain4j-chat/src/generated/java/org/apache/camel/component/langchain4j/chat/LangChain4jChatEndpointConfigurer.java
index 55b3475d71c4..1912814f8f17 100644
--- a/components/camel-ai/camel-langchain4j-chat/src/generated/java/org/apache/camel/component/langchain4j/chat/LangChain4jChatEndpointConfigurer.java
+++ b/components/camel-ai/camel-langchain4j-chat/src/generated/java/org/apache/camel/component/langchain4j/chat/LangChain4jChatEndpointConfigurer.java
@@ -23,16 +23,10 @@ public class LangChain4jChatEndpointConfigurer extends PropertyConfigurerSupport
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         LangChain4jChatEndpoint target = (LangChain4jChatEndpoint) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
-        case "bridgeerrorhandler":
-        case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
         case "chatmodel":
         case "chatModel": target.getConfiguration().setChatModel(property(camelContext, dev.langchain4j.model.chat.ChatModel.class, value)); return true;
         case "chatoperation":
         case "chatOperation": target.getConfiguration().setChatOperation(property(camelContext, org.apache.camel.component.langchain4j.chat.LangChain4jChatOperations.class, value)); return true;
-        case "exceptionhandler":
-        case "exceptionHandler": target.setExceptionHandler(property(camelContext, org.apache.camel.spi.ExceptionHandler.class, value)); return true;
-        case "exchangepattern":
-        case "exchangePattern": target.setExchangePattern(property(camelContext, org.apache.camel.ExchangePattern.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
         default: return false;
@@ -47,16 +41,10 @@ public class LangChain4jChatEndpointConfigurer extends PropertyConfigurerSupport
     @Override
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
-        case "bridgeerrorhandler":
-        case "bridgeErrorHandler": return boolean.class;
         case "chatmodel":
         case "chatModel": return dev.langchain4j.model.chat.ChatModel.class;
         case "chatoperation":
         case "chatOperation": return org.apache.camel.component.langchain4j.chat.LangChain4jChatOperations.class;
-        case "exceptionhandler":
-        case "exceptionHandler": return org.apache.camel.spi.ExceptionHandler.class;
-        case "exchangepattern":
-        case "exchangePattern": return org.apache.camel.ExchangePattern.class;
         case "lazystartproducer":
         case "lazyStartProducer": return boolean.class;
         default: return null;
@@ -67,16 +55,10 @@ public class LangChain4jChatEndpointConfigurer extends PropertyConfigurerSupport
     public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
         LangChain4jChatEndpoint target = (LangChain4jChatEndpoint) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
-        case "bridgeerrorhandler":
-        case "bridgeErrorHandler": return target.isBridgeErrorHandler();
         case "chatmodel":
         case "chatModel": return target.getConfiguration().getChatModel();
         case "chatoperation":
         case "chatOperation": return target.getConfiguration().getChatOperation();
-        case "exceptionhandler":
-        case "exceptionHandler": return target.getExceptionHandler();
-        case "exchangepattern":
-        case "exchangePattern": return target.getExchangePattern();
         case "lazystartproducer":
         case "lazyStartProducer": return target.isLazyStartProducer();
         default: return null;
diff --git a/components/camel-ai/camel-langchain4j-chat/src/generated/java/org/apache/camel/component/langchain4j/chat/LangChain4jChatEndpointUriFactory.java b/components/camel-ai/camel-langchain4j-chat/src/generated/java/org/apache/camel/component/langchain4j/chat/LangChain4jChatEndpointUriFactory.java
index 5379d5cd69a9..ff6b1cf4116b 100644
--- a/components/camel-ai/camel-langchain4j-chat/src/generated/java/org/apache/camel/component/langchain4j/chat/LangChain4jChatEndpointUriFactory.java
+++ b/components/camel-ai/camel-langchain4j-chat/src/generated/java/org/apache/camel/component/langchain4j/chat/LangChain4jChatEndpointUriFactory.java
@@ -23,13 +23,10 @@ public class LangChain4jChatEndpointUriFactory extends org.apache.camel.support.
     private static final Set<String> SECRET_PROPERTY_NAMES;
     private static final Map<String, String> MULTI_VALUE_PREFIXES;
     static {
-        Set<String> props = new HashSet<>(7);
-        props.add("bridgeErrorHandler");
+        Set<String> props = new HashSet<>(4);
         props.add("chatId");
         props.add("chatModel");
         props.add("chatOperation");
-        props.add("exceptionHandler");
-        props.add("exchangePattern");
         props.add("lazyStartProducer");
         PROPERTY_NAMES = Collections.unmodifiableSet(props);
         SECRET_PROPERTY_NAMES = Collections.emptySet();
diff --git a/components/camel-ai/camel-langchain4j-chat/src/generated/resources/META-INF/org/apache/camel/component/langchain4j/chat/langchain4j-chat.json b/components/camel-ai/camel-langchain4j-chat/src/generated/resources/META-INF/org/apache/camel/component/langchain4j/chat/langchain4j-chat.json
index 0d8373f2465f..c0c6529cfcee 100644
--- a/components/camel-ai/camel-langchain4j-chat/src/generated/resources/META-INF/org/apache/camel/component/langchain4j/chat/langchain4j-chat.json
+++ b/components/camel-ai/camel-langchain4j-chat/src/generated/resources/META-INF/org/apache/camel/component/langchain4j/chat/langchain4j-chat.json
@@ -18,30 +18,26 @@
     "async": false,
     "api": false,
     "consumerOnly": false,
-    "producerOnly": false,
+    "producerOnly": true,
     "lenientProperties": false,
     "browsable": false,
     "remote": true
   },
   "componentProperties": {
-    "chatOperation": { "index": 0, "kind": "property", "displayName": "Chat Operation", "group": "common", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.langchain4j.chat.LangChain4jChatOperations", "enum": [ "CHAT_SINGLE_MESSAGE", "CHAT_SINGLE_MESSAGE_WITH_PROMPT", "CHAT_MULTIPLE_MESSAGES" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "CHAT_SINGLE_MESSAGE", "configurationClass": "org.apache.cam [...]
-    "configuration": { "index": 1, "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.langchain4j.chat.LangChain4jChatConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "The configuration." },
-    "bridgeErrorHandler": { "index": 2, "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming messages, or the like [...]
-    "lazyStartProducer": { "index": 3, "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail [...]
-    "autowiredEnabled": { "index": 4, "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching t [...]
-    "chatModel": { "index": 5, "kind": "property", "displayName": "Chat Model", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "dev.langchain4j.model.chat.ChatModel", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.langchain4j.chat.LangChain4jChatConfiguration", "configurationField": "configuration", "description": "Chat Model of type dev.langchain4j.model.chat.Ch [...]
+    "chatOperation": { "index": 0, "kind": "property", "displayName": "Chat Operation", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.langchain4j.chat.LangChain4jChatOperations", "enum": [ "CHAT_SINGLE_MESSAGE", "CHAT_SINGLE_MESSAGE_WITH_PROMPT", "CHAT_MULTIPLE_MESSAGES" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "CHAT_SINGLE_MESSAGE", "configurationClass": "org.apache.c [...]
+    "configuration": { "index": 1, "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.langchain4j.chat.LangChain4jChatConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "The configuration." },
+    "lazyStartProducer": { "index": 2, "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail [...]
+    "autowiredEnabled": { "index": 3, "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching t [...]
+    "chatModel": { "index": 4, "kind": "property", "displayName": "Chat Model", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "dev.langchain4j.model.chat.ChatModel", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.langchain4j.chat.LangChain4jChatConfiguration", "configurationField": "configuration", "description": "Chat Model of type dev.langchain4j.model.chat.Ch [...]
   },
   "headers": {
-    "CamelLangChain4jChatPromptTemplate": { "index": 0, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The prompt Template.", "constantName": "org.apache.camel.component.langchain4j.chat.LangChain4jChatHeaders#PROMPT_TEMPLATE" },
-    "CamelLangChain4jChatAugmentedData": { "index": 1, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Augmented Data for RAG", "constantName": "org.apache.camel.component.langchain4j.chat.LangChain4jChatHeaders#AUGMENTED_DATA" }
+    "CamelLangChain4jChatPromptTemplate": { "index": 0, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The prompt Template.", "constantName": "org.apache.camel.component.langchain4j.chat.LangChain4jChatHeaders#PROMPT_TEMPLATE" },
+    "CamelLangChain4jChatAugmentedData": { "index": 1, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Augmented Data for RAG", "constantName": "org.apache.camel.component.langchain4j.chat.LangChain4jChatHeaders#AUGMENTED_DATA" }
   },
   "properties": {
-    "chatId": { "index": 0, "kind": "path", "displayName": "Chat Id", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The id" },
-    "chatOperation": { "index": 1, "kind": "parameter", "displayName": "Chat Operation", "group": "common", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.langchain4j.chat.LangChain4jChatOperations", "enum": [ "CHAT_SINGLE_MESSAGE", "CHAT_SINGLE_MESSAGE_WITH_PROMPT", "CHAT_MULTIPLE_MESSAGES" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "CHAT_SINGLE_MESSAGE", "configurationClass": "org.apache.ca [...]
-    "bridgeErrorHandler": { "index": 2, "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming  [...]
-    "exceptionHandler": { "index": 3, "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By def [...]
-    "exchangePattern": { "index": 4, "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "enum", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
-    "lazyStartProducer": { "index": 5, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a produc [...]
-    "chatModel": { "index": 6, "kind": "parameter", "displayName": "Chat Model", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "dev.langchain4j.model.chat.ChatModel", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.langchain4j.chat.LangChain4jChatConfiguration", "configurationField": "configuration", "description": "Chat Model of type dev.langchain4j.model.chat.C [...]
+    "chatId": { "index": 0, "kind": "path", "displayName": "Chat Id", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The id" },
+    "chatOperation": { "index": 1, "kind": "parameter", "displayName": "Chat Operation", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.langchain4j.chat.LangChain4jChatOperations", "enum": [ "CHAT_SINGLE_MESSAGE", "CHAT_SINGLE_MESSAGE_WITH_PROMPT", "CHAT_MULTIPLE_MESSAGES" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "CHAT_SINGLE_MESSAGE", "configurationClass": "org.apache. [...]
+    "lazyStartProducer": { "index": 2, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a produc [...]
+    "chatModel": { "index": 3, "kind": "parameter", "displayName": "Chat Model", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "dev.langchain4j.model.chat.ChatModel", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.langchain4j.chat.LangChain4jChatConfiguration", "configurationField": "configuration", "description": "Chat Model of type dev.langchain4j.model.chat.C [...]
   }
 }
diff --git a/components/camel-ai/camel-langchain4j-chat/src/main/docs/langchain4j-chat-component.adoc b/components/camel-ai/camel-langchain4j-chat/src/main/docs/langchain4j-chat-component.adoc
index 926134c68b5c..af2e3d3c41a8 100644
--- a/components/camel-ai/camel-langchain4j-chat/src/main/docs/langchain4j-chat-component.adoc
+++ b/components/camel-ai/camel-langchain4j-chat/src/main/docs/langchain4j-chat-component.adoc
@@ -6,7 +6,7 @@
 :since: 4.5
 :supportlevel: Stable
 :tabs-sync-option:
-:component-header: Both producer and consumer are supported
+:component-header: Only producer is supported
 //Manually maintained attributes
 :group: AI
 :camel-spring-boot-name: langchain4j-chat
@@ -70,7 +70,7 @@ Add the dependency for LangChain4j OpenAI Spring Boot starter:
 <dependency>
     <groupId>dev.langchain4j</groupId>
     <artifactId>langchain4j-open-ai-spring-boot-starter</artifactId>
-    <version>1.10.0</version>
+    <version>x.x.x</version>
     <!-- use the same version as your LangChain4j version -->
 </dependency>
 ----
@@ -81,7 +81,7 @@ Configure the OpenAI Chat Model in `application.properties` or `application.yml`
 [source,properties]
 ----
 langchain4j.open-ai.chat-model.api-key=${OPENAI_API_KEY}
-langchain4j.open-ai.chat-model.model-name=gpt-3.5-turbo
+langchain4j.open-ai.chat-model.model-name=gpt-4o-mini
 langchain4j.open-ai.chat-model.temperature=0.3
 langchain4j.open-ai.chat-model.timeout=3000s
 ----
@@ -93,7 +93,7 @@ langchain4j:
   open-ai:
     chat-model:
       api-key: ${OPENAI_API_KEY}
-      model-name: gpt-3.5-turbo
+      model-name: gpt-4o-mini
       temperature: 0.3
       timeout: 3000s
 ----
@@ -162,7 +162,7 @@ Add the dependency for LangChain4j OpenAI support:
 <dependency>
     <groupId>dev.langchain4j</groupId>
     <artifactId>langchain4j-open-ai</artifactId>
-    <version>1.10.0</version>
+    <version>x.x.x</version>
     <!-- use the same version as your LangChain4j version -->
 </dependency>
 ----
@@ -171,9 +171,9 @@ Initialize the OpenAI Chat Model, and add it to the Camel Registry:
 
 [source,java]
 ----
-ChatLanguageModel model = OpenAiChatModel.builder()
+ChatModel model = OpenAiChatModel.builder()
     .apiKey(openApiKey)
-    .modelName(GPT_3_5_TURBO)
+    .modelName(GPT_4_O_MINI)
     .temperature(0.3)
     .timeout(ofSeconds(3000))
     .build();
@@ -235,7 +235,7 @@ variables.put("dishType", "oven dish");
 variables.put("ingredients", "potato, tomato, feta, olive oil");
 
 String response = template.requestBodyAndHeader("direct:chat", variables,
-                LangChain4jChat.Headers.PROMPT_TEMPLATE, promptTemplate, String.class);
+                LangChain4jChatHeaders.PROMPT_TEMPLATE, promptTemplate, String.class);
 ----
 
 === Chat with history
@@ -279,7 +279,7 @@ LangChain4jRagAggregatorStrategy aggregatorStrategy = new LangChain4jRagAggregat
 
 from("direct:test")
      .enrich("direct:rag", aggregatorStrategy)
-     .to("langchain4j-chat:test1?chatOperation=CHAT_SIMPLE_MESSAGE");
+     .to("langchain4j-chat:test1?chatOperation=CHAT_SINGLE_MESSAGE");
 
   from("direct:rag")
           .process(exchange -> {
@@ -304,7 +304,7 @@ LangChain4jRagAggregatorStrategy aggregatorStrategy = new LangChain4jRagAggregat
 from("direct:test")
      .enrich("direct:rag-from-source-1", aggregatorStrategy)
      .enrich("direct:rag-from-source-2", aggregatorStrategy)
-     .to("langchain4j-chat:test1?chatOperation=CHAT_SIMPLE_MESSAGE");
+     .to("langchain4j-chat:test1?chatOperation=CHAT_SINGLE_MESSAGE");
 ----
 
 ==== Using RAG with headers
@@ -322,5 +322,5 @@ import dev.langchain4j.rag.content.Content;
 Content augmentedContent = new Content("data test");
 List<Content> contents = List.of(augmentedContent);
 
-String response = template.requestBodyAndHeader("direct:send-multiple", messages, LangChain4jChat.Headers.AUGMENTED_DATA , contents, String.class);
+String response = template.requestBodyAndHeader("direct:send-multiple", messages, LangChain4jChatHeaders.AUGMENTED_DATA, contents, String.class);
 ----
diff --git a/components/camel-ai/camel-langchain4j-chat/src/main/java/org/apache/camel/component/langchain4j/chat/LangChain4jChatEndpoint.java b/components/camel-ai/camel-langchain4j-chat/src/main/java/org/apache/camel/component/langchain4j/chat/LangChain4jChatEndpoint.java
index 11f59ca4533e..d333487bb13e 100644
--- a/components/camel-ai/camel-langchain4j-chat/src/main/java/org/apache/camel/component/langchain4j/chat/LangChain4jChatEndpoint.java
+++ b/components/camel-ai/camel-langchain4j-chat/src/main/java/org/apache/camel/component/langchain4j/chat/LangChain4jChatEndpoint.java
@@ -31,6 +31,7 @@ import static org.apache.camel.component.langchain4j.chat.LangChain4jChat.SCHEME
 @UriEndpoint(firstVersion = "4.5.0", scheme = SCHEME,
              title = "LangChain4j Chat",
              syntax = "langchain4j-chat:chatId",
+             producerOnly = true,
              category = { Category.AI }, headersClass = LangChain4jChatHeaders.class)
 public class LangChain4jChatEndpoint extends DefaultEndpoint {
 
diff --git a/components/camel-ai/camel-langchain4j-chat/src/main/java/org/apache/camel/component/langchain4j/chat/LangChain4jChatProducer.java b/components/camel-ai/camel-langchain4j-chat/src/main/java/org/apache/camel/component/langchain4j/chat/LangChain4jChatProducer.java
index 3e3aefdd358e..05f786937df5 100644
--- a/components/camel-ai/camel-langchain4j-chat/src/main/java/org/apache/camel/component/langchain4j/chat/LangChain4jChatProducer.java
+++ b/components/camel-ai/camel-langchain4j-chat/src/main/java/org/apache/camel/component/langchain4j/chat/LangChain4jChatProducer.java
@@ -80,14 +80,17 @@ public class LangChain4jChatProducer extends DefaultProducer {
     }
 
     private void processSingleMessage(Exchange exchange) throws InvalidPayloadException {
-        // Retrieve the mandatory body from the exchange
-        final var message = exchange.getIn().getMandatoryBody();
+        final var body = exchange.getIn().getMandatoryBody();
 
-        // Use pattern matching with instanceof to streamline type checks and assignments
-        ChatMessage userMessage = (message instanceof String str) ? new UserMessage(str) : (ChatMessage) message;
+        ChatMessage userMessage;
+        if (body instanceof ChatMessage cm) {
+            userMessage = cm;
+        } else {
+            String text = exchange.getIn().getMandatoryBody(String.class);
+            userMessage = new UserMessage(text);
+        }
 
         populateResponse(sendChatMessage(userMessage, exchange), exchange);
-
     }
 
     @SuppressWarnings("unchecked")
diff --git a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Langchain4jChatComponentBuilderFactory.java b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Langchain4jChatComponentBuilderFactory.java
index c295fddc3c05..28604f31227a 100644
--- a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Langchain4jChatComponentBuilderFactory.java
+++ b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Langchain4jChatComponentBuilderFactory.java
@@ -60,7 +60,7 @@ public interface Langchain4jChatComponentBuilderFactory {
          * &lt;code&gt;org.apache.camel.component.langchain4j.chat.LangChain4jChatOperations&lt;/code&gt; type.
          * 
          * Default: CHAT_SINGLE_MESSAGE
-         * Group: common
+         * Group: producer
          * 
          * @param chatOperation the value to set
          * @return the dsl builder
@@ -76,7 +76,7 @@ public interface Langchain4jChatComponentBuilderFactory {
          * The option is a:
          * &lt;code&gt;org.apache.camel.component.langchain4j.chat.LangChain4jChatConfiguration&lt;/code&gt; type.
          * 
-         * Group: common
+         * Group: producer
          * 
          * @param configuration the value to set
          * @return the dsl builder
@@ -87,34 +87,6 @@ public interface Langchain4jChatComponentBuilderFactory {
         }
     
         
-        /**
-         * Allows for bridging the consumer to the Camel routing Error Handler,
-         * which mean any exceptions (if possible) occurred while the Camel
-         * consumer is trying to pickup incoming messages, or the likes, will
-         * now be processed as a message and handled by the routing Error
-         * Handler. Important: This is only possible if the 3rd party component
-         * allows Camel to be alerted if an exception was thrown. Some
-         * components handle this internally only, and therefore
-         * bridgeErrorHandler is not possible. In other situations we may
-         * improve the Camel component to hook into the 3rd party component and
-         * make this possible for future releases. By default the consumer will
-         * use the org.apache.camel.spi.ExceptionHandler to deal with
-         * exceptions, that will be logged at WARN or ERROR level and ignored.
-         * 
-         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
-         * 
-         * Default: false
-         * Group: consumer
-         * 
-         * @param bridgeErrorHandler the value to set
-         * @return the dsl builder
-         */
-        default Langchain4jChatComponentBuilder bridgeErrorHandler(boolean bridgeErrorHandler) {
-            doSetProperty("bridgeErrorHandler", bridgeErrorHandler);
-            return this;
-        }
-    
-        
         /**
          * Whether the producer should be started lazy (on the first message).
          * By starting lazy you can use this to allow CamelContext and routes to
@@ -199,7 +171,6 @@ public interface Langchain4jChatComponentBuilderFactory {
             switch (name) {
             case "chatOperation": getOrCreateConfiguration((LangChain4jChatComponent) component).setChatOperation((org.apache.camel.component.langchain4j.chat.LangChain4jChatOperations) value); return true;
             case "configuration": ((LangChain4jChatComponent) component).setConfiguration((org.apache.camel.component.langchain4j.chat.LangChain4jChatConfiguration) value); return true;
-            case "bridgeErrorHandler": ((LangChain4jChatComponent) component).setBridgeErrorHandler((boolean) value); return true;
             case "lazyStartProducer": ((LangChain4jChatComponent) component).setLazyStartProducer((boolean) value); return true;
             case "autowiredEnabled": ((LangChain4jChatComponent) component).setAutowiredEnabled((boolean) value); return true;
             case "chatModel": getOrCreateConfiguration((LangChain4jChatComponent) component).setChatModel((dev.langchain4j.model.chat.ChatModel) value); return true;
diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/LangChain4jChatEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/LangChain4jChatEndpointBuilderFactory.java
index eee753b8deae..b17113618897 100644
--- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/LangChain4jChatEndpointBuilderFactory.java
+++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/LangChain4jChatEndpointBuilderFactory.java
@@ -35,220 +35,13 @@ import org.apache.camel.builder.endpoint.AbstractEndpointBuilder;
 public interface LangChain4jChatEndpointBuilderFactory {
 
     /**
-     * Builder for endpoint consumers for the LangChain4j Chat component.
-     */
-    public interface LangChain4jChatEndpointConsumerBuilder
-            extends
-                EndpointConsumerBuilder {
-        default AdvancedLangChain4jChatEndpointConsumerBuilder advanced() {
-            return (AdvancedLangChain4jChatEndpointConsumerBuilder) this;
-        }
-        /**
-         * Operation in case of Endpoint of type CHAT. The value is one of the
-         * values of
-         * org.apache.camel.component.langchain4j.chat.LangChain4jChatOperations.
-         * 
-         * The option is a:
-         * <code>org.apache.camel.component.langchain4j.chat.LangChain4jChatOperations</code> type.
-         * 
-         * Required: true
-         * Default: CHAT_SINGLE_MESSAGE
-         * Group: common
-         * 
-         * @param chatOperation the value to set
-         * @return the dsl builder
-         */
-        default LangChain4jChatEndpointConsumerBuilder chatOperation(org.apache.camel.component.langchain4j.chat.LangChain4jChatOperations chatOperation) {
-            doSetProperty("chatOperation", chatOperation);
-            return this;
-        }
-        /**
-         * Operation in case of Endpoint of type CHAT. The value is one of the
-         * values of
-         * org.apache.camel.component.langchain4j.chat.LangChain4jChatOperations.
-         * 
-         * The option will be converted to a
-         * <code>org.apache.camel.component.langchain4j.chat.LangChain4jChatOperations</code> type.
-         * 
-         * Required: true
-         * Default: CHAT_SINGLE_MESSAGE
-         * Group: common
-         * 
-         * @param chatOperation the value to set
-         * @return the dsl builder
-         */
-        default LangChain4jChatEndpointConsumerBuilder chatOperation(String chatOperation) {
-            doSetProperty("chatOperation", chatOperation);
-            return this;
-        }
-    }
-
-    /**
-     * Advanced builder for endpoint consumers for the LangChain4j Chat component.
-     */
-    public interface AdvancedLangChain4jChatEndpointConsumerBuilder
-            extends
-                EndpointConsumerBuilder {
-        default LangChain4jChatEndpointConsumerBuilder basic() {
-            return (LangChain4jChatEndpointConsumerBuilder) this;
-        }
-        /**
-         * Allows for bridging the consumer to the Camel routing Error Handler,
-         * which mean any exceptions (if possible) occurred while the Camel
-         * consumer is trying to pickup incoming messages, or the likes, will
-         * now be processed as a message and handled by the routing Error
-         * Handler. Important: This is only possible if the 3rd party component
-         * allows Camel to be alerted if an exception was thrown. Some
-         * components handle this internally only, and therefore
-         * bridgeErrorHandler is not possible. In other situations we may
-         * improve the Camel component to hook into the 3rd party component and
-         * make this possible for future releases. By default the consumer will
-         * use the org.apache.camel.spi.ExceptionHandler to deal with
-         * exceptions, that will be logged at WARN or ERROR level and ignored.
-         * 
-         * The option is a: <code>boolean</code> type.
-         * 
-         * Default: false
-         * Group: consumer (advanced)
-         * 
-         * @param bridgeErrorHandler the value to set
-         * @return the dsl builder
-         */
-        default AdvancedLangChain4jChatEndpointConsumerBuilder bridgeErrorHandler(boolean bridgeErrorHandler) {
-            doSetProperty("bridgeErrorHandler", bridgeErrorHandler);
-            return this;
-        }
-        /**
-         * Allows for bridging the consumer to the Camel routing Error Handler,
-         * which mean any exceptions (if possible) occurred while the Camel
-         * consumer is trying to pickup incoming messages, or the likes, will
-         * now be processed as a message and handled by the routing Error
-         * Handler. Important: This is only possible if the 3rd party component
-         * allows Camel to be alerted if an exception was thrown. Some
-         * components handle this internally only, and therefore
-         * bridgeErrorHandler is not possible. In other situations we may
-         * improve the Camel component to hook into the 3rd party component and
-         * make this possible for future releases. By default the consumer will
-         * use the org.apache.camel.spi.ExceptionHandler to deal with
-         * exceptions, that will be logged at WARN or ERROR level and ignored.
-         * 
-         * The option will be converted to a <code>boolean</code> type.
-         * 
-         * Default: false
-         * Group: consumer (advanced)
-         * 
-         * @param bridgeErrorHandler the value to set
-         * @return the dsl builder
-         */
-        default AdvancedLangChain4jChatEndpointConsumerBuilder bridgeErrorHandler(String bridgeErrorHandler) {
-            doSetProperty("bridgeErrorHandler", bridgeErrorHandler);
-            return this;
-        }
-        /**
-         * To let the consumer use a custom ExceptionHandler. Notice if the
-         * option bridgeErrorHandler is enabled then this option is not in use.
-         * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored.
-         * 
-         * The option is a: <code>org.apache.camel.spi.ExceptionHandler</code>
-         * type.
-         * 
-         * Group: consumer (advanced)
-         * 
-         * @param exceptionHandler the value to set
-         * @return the dsl builder
-         */
-        default AdvancedLangChain4jChatEndpointConsumerBuilder exceptionHandler(org.apache.camel.spi.ExceptionHandler exceptionHandler) {
-            doSetProperty("exceptionHandler", exceptionHandler);
-            return this;
-        }
-        /**
-         * To let the consumer use a custom ExceptionHandler. Notice if the
-         * option bridgeErrorHandler is enabled then this option is not in use.
-         * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored.
-         * 
-         * The option will be converted to a
-         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
-         * 
-         * Group: consumer (advanced)
-         * 
-         * @param exceptionHandler the value to set
-         * @return the dsl builder
-         */
-        default AdvancedLangChain4jChatEndpointConsumerBuilder exceptionHandler(String exceptionHandler) {
-            doSetProperty("exceptionHandler", exceptionHandler);
-            return this;
-        }
-        /**
-         * Sets the exchange pattern when the consumer creates an exchange.
-         * 
-         * The option is a: <code>org.apache.camel.ExchangePattern</code> type.
-         * 
-         * Group: consumer (advanced)
-         * 
-         * @param exchangePattern the value to set
-         * @return the dsl builder
-         */
-        default AdvancedLangChain4jChatEndpointConsumerBuilder exchangePattern(org.apache.camel.ExchangePattern exchangePattern) {
-            doSetProperty("exchangePattern", exchangePattern);
-            return this;
-        }
-        /**
-         * Sets the exchange pattern when the consumer creates an exchange.
-         * 
-         * The option will be converted to a
-         * <code>org.apache.camel.ExchangePattern</code> type.
-         * 
-         * Group: consumer (advanced)
-         * 
-         * @param exchangePattern the value to set
-         * @return the dsl builder
-         */
-        default AdvancedLangChain4jChatEndpointConsumerBuilder exchangePattern(String exchangePattern) {
-            doSetProperty("exchangePattern", exchangePattern);
-            return this;
-        }
-        /**
-         * Chat Model of type dev.langchain4j.model.chat.ChatModel.
-         * 
-         * The option is a: <code>dev.langchain4j.model.chat.ChatModel</code>
-         * type.
-         * 
-         * Group: advanced
-         * 
-         * @param chatModel the value to set
-         * @return the dsl builder
-         */
-        default AdvancedLangChain4jChatEndpointConsumerBuilder chatModel(dev.langchain4j.model.chat.ChatModel chatModel) {
-            doSetProperty("chatModel", chatModel);
-            return this;
-        }
-        /**
-         * Chat Model of type dev.langchain4j.model.chat.ChatModel.
-         * 
-         * The option will be converted to a
-         * <code>dev.langchain4j.model.chat.ChatModel</code> type.
-         * 
-         * Group: advanced
-         * 
-         * @param chatModel the value to set
-         * @return the dsl builder
-         */
-        default AdvancedLangChain4jChatEndpointConsumerBuilder chatModel(String chatModel) {
-            doSetProperty("chatModel", chatModel);
-            return this;
-        }
-    }
-
-    /**
-     * Builder for endpoint producers for the LangChain4j Chat component.
+     * Builder for endpoint for the LangChain4j Chat component.
      */
-    public interface LangChain4jChatEndpointProducerBuilder
+    public interface LangChain4jChatEndpointBuilder
             extends
                 EndpointProducerBuilder {
-        default AdvancedLangChain4jChatEndpointProducerBuilder advanced() {
-            return (AdvancedLangChain4jChatEndpointProducerBuilder) this;
+        default AdvancedLangChain4jChatEndpointBuilder advanced() {
+            return (AdvancedLangChain4jChatEndpointBuilder) this;
         }
 
         /**
@@ -261,12 +54,12 @@ public interface LangChain4jChatEndpointBuilderFactory {
          * 
          * Required: true
          * Default: CHAT_SINGLE_MESSAGE
-         * Group: common
+         * Group: producer
          * 
          * @param chatOperation the value to set
          * @return the dsl builder
          */
-        default LangChain4jChatEndpointProducerBuilder chatOperation(org.apache.camel.component.langchain4j.chat.LangChain4jChatOperations chatOperation) {
+        default LangChain4jChatEndpointBuilder chatOperation(org.apache.camel.component.langchain4j.chat.LangChain4jChatOperations chatOperation) {
             doSetProperty("chatOperation", chatOperation);
             return this;
         }
@@ -280,23 +73,25 @@ public interface LangChain4jChatEndpointBuilderFactory {
          * 
          * Required: true
          * Default: CHAT_SINGLE_MESSAGE
-         * Group: common
+         * Group: producer
          * 
          * @param chatOperation the value to set
          * @return the dsl builder
          */
-        default LangChain4jChatEndpointProducerBuilder chatOperation(String chatOperation) {
+        default LangChain4jChatEndpointBuilder chatOperation(String chatOperation) {
             doSetProperty("chatOperation", chatOperation);
             return this;
         }
     }
 
     /**
-     * Advanced builder for endpoint producers for the LangChain4j Chat component.
+     * Advanced builder for endpoint for the LangChain4j Chat component.
      */
-    public interface AdvancedLangChain4jChatEndpointProducerBuilder extends EndpointProducerBuilder {
-        default LangChain4jChatEndpointProducerBuilder basic() {
-            return (LangChain4jChatEndpointProducerBuilder) this;
+    public interface AdvancedLangChain4jChatEndpointBuilder
+            extends
+                EndpointProducerBuilder {
+        default LangChain4jChatEndpointBuilder basic() {
+            return (LangChain4jChatEndpointBuilder) this;
         }
 
         /**
@@ -318,7 +113,7 @@ public interface LangChain4jChatEndpointBuilderFactory {
          * @param lazyStartProducer the value to set
          * @return the dsl builder
          */
-        default AdvancedLangChain4jChatEndpointProducerBuilder lazyStartProducer(boolean lazyStartProducer) {
+        default AdvancedLangChain4jChatEndpointBuilder lazyStartProducer(boolean lazyStartProducer) {
             doSetProperty("lazyStartProducer", lazyStartProducer);
             return this;
         }
@@ -341,104 +136,10 @@ public interface LangChain4jChatEndpointBuilderFactory {
          * @param lazyStartProducer the value to set
          * @return the dsl builder
          */
-        default AdvancedLangChain4jChatEndpointProducerBuilder lazyStartProducer(String lazyStartProducer) {
+        default AdvancedLangChain4jChatEndpointBuilder lazyStartProducer(String lazyStartProducer) {
             doSetProperty("lazyStartProducer", lazyStartProducer);
             return this;
         }
-        /**
-         * Chat Model of type dev.langchain4j.model.chat.ChatModel.
-         * 
-         * The option is a: <code>dev.langchain4j.model.chat.ChatModel</code>
-         * type.
-         * 
-         * Group: advanced
-         * 
-         * @param chatModel the value to set
-         * @return the dsl builder
-         */
-        default AdvancedLangChain4jChatEndpointProducerBuilder chatModel(dev.langchain4j.model.chat.ChatModel chatModel) {
-            doSetProperty("chatModel", chatModel);
-            return this;
-        }
-        /**
-         * Chat Model of type dev.langchain4j.model.chat.ChatModel.
-         * 
-         * The option will be converted to a
-         * <code>dev.langchain4j.model.chat.ChatModel</code> type.
-         * 
-         * Group: advanced
-         * 
-         * @param chatModel the value to set
-         * @return the dsl builder
-         */
-        default AdvancedLangChain4jChatEndpointProducerBuilder chatModel(String chatModel) {
-            doSetProperty("chatModel", chatModel);
-            return this;
-        }
-    }
-
-    /**
-     * Builder for endpoint for the LangChain4j Chat component.
-     */
-    public interface LangChain4jChatEndpointBuilder
-            extends
-                LangChain4jChatEndpointConsumerBuilder,
-                LangChain4jChatEndpointProducerBuilder {
-        default AdvancedLangChain4jChatEndpointBuilder advanced() {
-            return (AdvancedLangChain4jChatEndpointBuilder) this;
-        }
-
-        /**
-         * Operation in case of Endpoint of type CHAT. The value is one of the
-         * values of
-         * org.apache.camel.component.langchain4j.chat.LangChain4jChatOperations.
-         * 
-         * The option is a:
-         * <code>org.apache.camel.component.langchain4j.chat.LangChain4jChatOperations</code> type.
-         * 
-         * Required: true
-         * Default: CHAT_SINGLE_MESSAGE
-         * Group: common
-         * 
-         * @param chatOperation the value to set
-         * @return the dsl builder
-         */
-        default LangChain4jChatEndpointBuilder chatOperation(org.apache.camel.component.langchain4j.chat.LangChain4jChatOperations chatOperation) {
-            doSetProperty("chatOperation", chatOperation);
-            return this;
-        }
-        /**
-         * Operation in case of Endpoint of type CHAT. The value is one of the
-         * values of
-         * org.apache.camel.component.langchain4j.chat.LangChain4jChatOperations.
-         * 
-         * The option will be converted to a
-         * <code>org.apache.camel.component.langchain4j.chat.LangChain4jChatOperations</code> type.
-         * 
-         * Required: true
-         * Default: CHAT_SINGLE_MESSAGE
-         * Group: common
-         * 
-         * @param chatOperation the value to set
-         * @return the dsl builder
-         */
-        default LangChain4jChatEndpointBuilder chatOperation(String chatOperation) {
-            doSetProperty("chatOperation", chatOperation);
-            return this;
-        }
-    }
-
-    /**
-     * Advanced builder for endpoint for the LangChain4j Chat component.
-     */
-    public interface AdvancedLangChain4jChatEndpointBuilder
-            extends
-                AdvancedLangChain4jChatEndpointConsumerBuilder,
-                AdvancedLangChain4jChatEndpointProducerBuilder {
-        default LangChain4jChatEndpointBuilder basic() {
-            return (LangChain4jChatEndpointBuilder) this;
-        }
-
         /**
          * Chat Model of type dev.langchain4j.model.chat.ChatModel.
          * 
@@ -542,7 +243,7 @@ public interface LangChain4jChatEndpointBuilderFactory {
          * 
          * The option is a: {@code String} type.
          * 
-         * Group: common
+         * Group: producer
          * 
          * @return the name of the header {@code LangChain4jChatPromptTemplate}.
          */
@@ -554,7 +255,7 @@ public interface LangChain4jChatEndpointBuilderFactory {
          * 
          * The option is a: {@code String} type.
          * 
-         * Group: common
+         * Group: producer
          * 
          * @return the name of the header {@code LangChain4jChatAugmentedData}.
          */


(camel) 02/03: chore(langchain4j-agent): fix documentation examples and MCP properties

Posted by fm...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

Croway pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit f41c96451d2f307e529ddd6478a6e04e250edb7c
Author: Croway <fe...@gmail.com>
AuthorDate: Fri May 8 15:17:03 2026 +0200

    chore(langchain4j-agent): fix documentation examples and MCP properties
    
    Fix transport type description to include streamableHttp alias,
    correct header name (CamelLangChain4jMemoryId -> CamelLangChain4jAgentMemoryId),
    fix Guardrails import path, and document new oauthProfile MCP property.
---
 .../src/main/docs/langchain4j-agent-component.adoc                 | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/components/camel-ai/camel-langchain4j-agent/src/main/docs/langchain4j-agent-component.adoc b/components/camel-ai/camel-langchain4j-agent/src/main/docs/langchain4j-agent-component.adoc
index 37df7d930263..bb6902b30a4e 100644
--- a/components/camel-ai/camel-langchain4j-agent/src/main/docs/langchain4j-agent-component.adoc
+++ b/components/camel-ai/camel-langchain4j-agent/src/main/docs/langchain4j-agent-component.adoc
@@ -566,13 +566,14 @@ Supported properties:
 |===
 | Property | Default | Description
 
-| `transportType` | `stdio` | Transport type: `stdio`, `http` (Streamable HTTP), or `sse` (legacy SSE)
+| `transportType` | `stdio` | Transport type: `stdio`, `http` or `streamableHttp` (Streamable HTTP), or `sse` (legacy SSE)
 | `command` | | Comma-separated command for stdio transport (e.g., `docker,run,-i,--rm,mcp/time`)
 | `url` | | Server URL for `http` or `sse` transport
 | `environment.<key>` | | Environment variables for stdio transport
 | `timeout` | `60` | Timeout in seconds
 | `logRequests` | `false` | Log requests sent to the MCP server
 | `logResponses` | `false` | Log responses from the MCP server
+| `oauthProfile` | | OAuth profile name for HTTP transport auth (Client Credentials grant, requires `camel-oauth`)
 |===
 
 Example with two MCP servers configured inline:
@@ -1133,7 +1134,7 @@ public class SecureAgentRoute extends RouteBuilder {
 
         // Secure chat route with error handling
         from("direct:chat")
-            .setHeader("CamelLangChain4jMemoryId", simple("${header.userId}"))
+            .setHeader("CamelLangChain4jAgentMemoryId", simple("${header.userId}"))
             .doTry()
                 .to("langchain4j-agent:chat?agent=#secureAgent")
             .doCatch(dev.langchain4j.service.guardrail.GuardrailException.class)
@@ -1183,7 +1184,7 @@ import dev.langchain4j.model.chat.ChatLanguageModel;
 import org.apache.camel.component.langchain4j.agent.api.Agent;
 import org.apache.camel.component.langchain4j.agent.api.AgentConfiguration;
 import org.apache.camel.component.langchain4j.agent.api.AgentWithoutMemory;
-import org.apache.camel.component.langchain4j.agent.api.Guardrails;
+import org.apache.camel.component.langchain4j.agent.api.guardrails.Guardrails;
 
 @Configuration
 public class AgentConfig {