This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot.git
The following commit(s) were added to refs/heads/main by this push:
new c6a10a3bcab [create-pull-request] automated change (#1896)
c6a10a3bcab is described below
commit c6a10a3bcab0831c100aa8a8980cf02550356dbc
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Wed Aug 26 07:13:51 2026 +0200
[create-pull-request] automated change (#1896)
Co-authored-by: oscerd <[email protected]>
---
.../springboot/catalog/components/ai-tool.json | 18 ++++----
.../catalog/components/langchain4j-agent.json | 34 ++++++++-------
.../springboot/catalog/components/openai.json | 37 +++++++++--------
.../src/main/docs/ai-tool.json | 7 ++++
.../springboot/AiToolComponentConfiguration.java | 15 +++++++
.../src/main/docs/langchain4j-agent.json | 21 ++++++++++
.../LangChain4jAgentComponentConfiguration.java | 48 ++++++++++++++++++++++
.../modules/ROOT/pages/starters/ai-tool.adoc | 3 +-
.../ROOT/pages/starters/langchain4j-agent.adoc | 5 ++-
tooling/camel-spring-boot-dependencies/pom.xml | 41 ++++++++++++------
10 files changed, 174 insertions(+), 55 deletions(-)
diff --git
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/ai-tool.json
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/ai-tool.json
index cfe4022bd5b..e3d1250783a 100644
---
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/ai-tool.json
+++
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/ai-tool.json
@@ -35,9 +35,10 @@
"outputSchema": { "index": 8, "kind": "property", "displayName": "Output
Schema", "group": "consumer", "label": "consumer", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"supportFileReference": true, "configurationClass":
"org.apache.camel.component.ai.tool.AiToolConfiguration", "configurationField":
"configuration", "description": "Raw JSON Schema describing the tool's
structured [...]
"parameters": { "index": 9, "kind": "property", "displayName":
"Parameters", "group": "consumer", "label": "consumer", "required": false,
"type": "object", "javaType": "java.util.Map<java.lang.String,
java.lang.String>", "prefix": "parameter.", "multiValue": true, "deprecated":
false, "deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.ai.tool.AiToolConfiguration",
"configurationField": "configuration", "description": "Tool in [...]
"readOnlyHint": { "index": 10, "kind": "property", "displayName": "Read
Only Hint", "group": "consumer", "label": "consumer", "required": false,
"type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue":
false, "configurationClass":
"org.apache.camel.component.ai.tool.AiToolConfiguration", "configurationField":
"configuration", "description": "MCP hint that the tool only reads data and
does not [...]
- "tags": { "index": 11, "kind": "property", "displayName": "Tags", "group":
"consumer", "label": "consumer", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.ai.tool.AiToolConfiguration", "configurationField":
"configuration", "description": "Comma-separated list of tags used to group
tools. Producers filter the registry by these tags t [...]
- "title": { "index": 12, "kind": "property", "displayName": "Title",
"group": "consumer", "label": "consumer", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.ai.tool.AiToolConfiguration", "configurationField":
"configuration", "description": "Optional display title for MCP tool listings.
Advisory hint for MCP clients only." },
- "autowiredEnabled": { "index": 13, "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 [...]
+ "returnDirect": { "index": 11, "kind": "property", "displayName": "Return
Direct", "group": "consumer", "label": "consumer", "required": false, "type":
"boolean", "javaType": "java.lang.Boolean", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue":
false, "configurationClass":
"org.apache.camel.component.ai.tool.AiToolConfiguration", "configurationField":
"configuration", "description": "When true, AI producers that support agentic
tool loo [...]
+ "tags": { "index": 12, "kind": "property", "displayName": "Tags", "group":
"consumer", "label": "consumer", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.ai.tool.AiToolConfiguration", "configurationField":
"configuration", "description": "Comma-separated list of tags used to group
tools. Producers filter the registry by these tags t [...]
+ "title": { "index": 13, "kind": "property", "displayName": "Title",
"group": "consumer", "label": "consumer", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.ai.tool.AiToolConfiguration", "configurationField":
"configuration", "description": "Optional display title for MCP tool listings.
Advisory hint for MCP clients only." },
+ "autowiredEnabled": { "index": 14, "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 [...]
},
"properties": {
"toolName": { "index": 0, "kind": "path", "displayName": "Tool Name",
"group": "consumer", "label": "", "required": true, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The tool name. This is the
name the LLM sees and uses to invoke the tool." },
@@ -50,10 +51,11 @@
"outputSchema": { "index": 7, "kind": "parameter", "displayName": "Output
Schema", "group": "consumer", "label": "consumer", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"supportFileReference": true, "configurationClass":
"org.apache.camel.component.ai.tool.AiToolConfiguration", "configurationField":
"configuration", "description": "Raw JSON Schema describing the tool's
structured [...]
"parameters": { "index": 8, "kind": "parameter", "displayName":
"Parameters", "group": "consumer", "label": "consumer", "required": false,
"type": "object", "javaType": "java.util.Map<java.lang.String,
java.lang.String>", "prefix": "parameter.", "multiValue": true, "deprecated":
false, "deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.ai.tool.AiToolConfiguration",
"configurationField": "configuration", "description": "Tool i [...]
"readOnlyHint": { "index": 9, "kind": "parameter", "displayName": "Read
Only Hint", "group": "consumer", "label": "consumer", "required": false,
"type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue":
false, "configurationClass":
"org.apache.camel.component.ai.tool.AiToolConfiguration", "configurationField":
"configuration", "description": "MCP hint that the tool only reads data and
does not [...]
- "tags": { "index": 10, "kind": "parameter", "displayName": "Tags",
"group": "consumer", "label": "consumer", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.ai.tool.AiToolConfiguration", "configurationField":
"configuration", "description": "Comma-separated list of tags used to group
tools. Producers filter the registry by these tags [...]
- "title": { "index": 11, "kind": "parameter", "displayName": "Title",
"group": "consumer", "label": "consumer", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.ai.tool.AiToolConfiguration", "configurationField":
"configuration", "description": "Optional display title for MCP tool listings.
Advisory hint for MCP clients only." },
- "bridgeErrorHandler": { "index": 12, "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": 13, "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 de [...]
- "exchangePattern": { "index": 14, "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." }
+ "returnDirect": { "index": 10, "kind": "parameter", "displayName": "Return
Direct", "group": "consumer", "label": "consumer", "required": false, "type":
"boolean", "javaType": "java.lang.Boolean", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue":
false, "configurationClass":
"org.apache.camel.component.ai.tool.AiToolConfiguration", "configurationField":
"configuration", "description": "When true, AI producers that support agentic
tool lo [...]
+ "tags": { "index": 11, "kind": "parameter", "displayName": "Tags",
"group": "consumer", "label": "consumer", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.ai.tool.AiToolConfiguration", "configurationField":
"configuration", "description": "Comma-separated list of tags used to group
tools. Producers filter the registry by these tags [...]
+ "title": { "index": 12, "kind": "parameter", "displayName": "Title",
"group": "consumer", "label": "consumer", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.ai.tool.AiToolConfiguration", "configurationField":
"configuration", "description": "Optional display title for MCP tool listings.
Advisory hint for MCP clients only." },
+ "bridgeErrorHandler": { "index": 13, "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": 14, "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 de [...]
+ "exchangePattern": { "index": 15, "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." }
}
}
diff --git
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/langchain4j-agent.json
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/langchain4j-agent.json
index 294ea0e9d76..1d1b85d3382 100644
---
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/langchain4j-agent.json
+++
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/langchain4j-agent.json
@@ -27,14 +27,17 @@
"agent": { "index": 0, "kind": "property", "displayName": "Agent",
"group": "producer", "label": "", "required": false, "type": "object",
"javaType": "org.apache.camel.component.langchain4j.agent.api.Agent",
"deprecated": false, "deprecationNote": "", "autowired": true, "secret": false,
"configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "The agent to use for the
component" },
"agentConfiguration": { "index": 1, "kind": "property", "displayName":
"Agent Configuration", "group": "producer", "label": "", "required": false,
"type": "object", "javaType":
"org.apache.camel.component.langchain4j.agent.api.AgentConfiguration",
"deprecated": false, "deprecationNote": "", "autowired": true, "secret": false,
"configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "Agent [...]
"agentFactory": { "index": 2, "kind": "property", "displayName": "Agent
Factory", "group": "producer", "label": "", "required": false, "type":
"object", "javaType":
"org.apache.camel.component.langchain4j.agent.api.AgentFactory", "deprecated":
false, "deprecationNote": "", "autowired": true, "secret": false,
"configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "The agent factory to us
[...]
- "configuration": { "index": 3, "kind": "property", "displayName":
"Configuration", "group": "producer", "label": "", "required": false, "type":
"object", "javaType":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"deprecated": false, "autowired": false, "secret": false, "description": "The
configuration" },
- "jsonSchema": { "index": 4, "kind": "property", "displayName": "Json
Schema", "group": "producer", "label": "", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "supportFileReference": true,
"configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "JSON schema for
structured output validat [...]
- "lazyStartProducer": { "index": 5, "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 [...]
- "outputClass": { "index": 6, "kind": "property", "displayName": "Output
Class", "group": "producer", "label": "", "required": false, "type": "string",
"javaType": "java.lang.Class<java.lang.Object>", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "Java class to use for
structured output. Camel deriv [...]
- "tags": { "index": 7, "kind": "property", "displayName": "Tags", "group":
"producer", "label": "", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "autowired": false, "secret": false,
"configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "Tags for discovering and
calling Camel route tools" },
- "autowiredEnabled": { "index": 8, "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 [...]
- "mcpClients": { "index": 9, "kind": "property", "displayName": "Mcp
Clients", "group": "advanced", "label": "advanced", "required": false, "type":
"array", "javaType": "java.util.List<dev.langchain4j.mcp.client.McpClient>",
"deprecated": false, "autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "Pre-built MCP (Model
Context Protocol) client insta [...]
- "mcpServer": { "index": 10, "kind": "property", "displayName": "Mcp
Server", "group": "advanced", "label": "advanced", "required": false, "type":
"object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>",
"prefix": "mcpServer.", "multiValue": true, "deprecated": false, "autowired":
false, "secret": false, "configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "MCP server [...]
+ "compensateOnToolErrors": { "index": 3, "kind": "property", "displayName":
"Compensate On Tool Errors", "group": "producer", "label": "producer",
"required": false, "type": "boolean", "javaType": "java.lang.Boolean",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "Whether Lang [...]
+ "configuration": { "index": 4, "kind": "property", "displayName":
"Configuration", "group": "producer", "label": "", "required": false, "type":
"object", "javaType":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"deprecated": false, "autowired": false, "secret": false, "description": "The
configuration" },
+ "executeToolsConcurrently": { "index": 5, "kind": "property",
"displayName": "Execute Tools Concurrently", "group": "producer", "label":
"producer", "required": false, "type": "boolean", "javaType":
"java.lang.Boolean", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "Whether m [...]
+ "jsonSchema": { "index": 6, "kind": "property", "displayName": "Json
Schema", "group": "producer", "label": "", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "supportFileReference": true,
"configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "JSON schema for
structured output validat [...]
+ "lazyStartProducer": { "index": 7, "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 [...]
+ "maxToolCallingRoundTrips": { "index": 8, "kind": "property",
"displayName": "Max Tool Calling Round Trips", "group": "producer", "label":
"producer", "required": false, "type": "integer", "javaType": "int",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "defaultValue": 0, "configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "Maximum number of
tool-ca [...]
+ "outputClass": { "index": 9, "kind": "property", "displayName": "Output
Class", "group": "producer", "label": "", "required": false, "type": "string",
"javaType": "java.lang.Class<java.lang.Object>", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "Java class to use for
structured output. Camel deriv [...]
+ "tags": { "index": 10, "kind": "property", "displayName": "Tags", "group":
"producer", "label": "", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "autowired": false, "secret": false,
"configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "Tags for discovering and
calling Camel route tools" },
+ "autowiredEnabled": { "index": 11, "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 [...]
+ "mcpClients": { "index": 12, "kind": "property", "displayName": "Mcp
Clients", "group": "advanced", "label": "advanced", "required": false, "type":
"array", "javaType": "java.util.List<dev.langchain4j.mcp.client.McpClient>",
"deprecated": false, "autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "Pre-built MCP (Model
Context Protocol) client inst [...]
+ "mcpServer": { "index": 13, "kind": "property", "displayName": "Mcp
Server", "group": "advanced", "label": "advanced", "required": false, "type":
"object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>",
"prefix": "mcpServer.", "multiValue": true, "deprecated": false, "autowired":
false, "secret": false, "configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "MCP server [...]
},
"headers": {
"CamelLangChain4jAgentSystemMessage": { "index": 0, "kind": "header",
"displayName": "", "group": "producer", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The system prompt.", "constantName":
"org.apache.camel.component.langchain4j.agent.api.Headers#SYSTEM_MESSAGE" },
@@ -57,11 +60,14 @@
"agent": { "index": 1, "kind": "parameter", "displayName": "Agent",
"group": "producer", "label": "", "required": false, "type": "object",
"javaType": "org.apache.camel.component.langchain4j.agent.api.Agent",
"deprecated": false, "deprecationNote": "", "autowired": true, "secret": false,
"configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "The agent to use for the
component" },
"agentConfiguration": { "index": 2, "kind": "parameter", "displayName":
"Agent Configuration", "group": "producer", "label": "", "required": false,
"type": "object", "javaType":
"org.apache.camel.component.langchain4j.agent.api.AgentConfiguration",
"deprecated": false, "deprecationNote": "", "autowired": true, "secret": false,
"configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "Agen [...]
"agentFactory": { "index": 3, "kind": "parameter", "displayName": "Agent
Factory", "group": "producer", "label": "", "required": false, "type":
"object", "javaType":
"org.apache.camel.component.langchain4j.agent.api.AgentFactory", "deprecated":
false, "deprecationNote": "", "autowired": true, "secret": false,
"configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "The agent factory to u
[...]
- "jsonSchema": { "index": 4, "kind": "parameter", "displayName": "Json
Schema", "group": "producer", "label": "", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "supportFileReference": true,
"configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "JSON schema for
structured output valida [...]
- "outputClass": { "index": 5, "kind": "parameter", "displayName": "Output
Class", "group": "producer", "label": "", "required": false, "type": "string",
"javaType": "java.lang.Class<java.lang.Object>", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "Java class to use for
structured output. Camel deri [...]
- "tags": { "index": 6, "kind": "parameter", "displayName": "Tags", "group":
"producer", "label": "", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "autowired": false, "secret": false,
"configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "Tags for discovering and
calling Camel route tools" },
- "lazyStartProducer": { "index": 7, "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 [...]
- "mcpClients": { "index": 8, "kind": "parameter", "displayName": "Mcp
Clients", "group": "advanced", "label": "advanced", "required": false, "type":
"array", "javaType": "java.util.List<dev.langchain4j.mcp.client.McpClient>",
"deprecated": false, "autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "Pre-built MCP (Model
Context Protocol) client inst [...]
- "mcpServer": { "index": 9, "kind": "parameter", "displayName": "Mcp
Server", "group": "advanced", "label": "advanced", "required": false, "type":
"object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>",
"prefix": "mcpServer.", "multiValue": true, "deprecated": false, "autowired":
false, "secret": false, "configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "MCP server [...]
+ "compensateOnToolErrors": { "index": 4, "kind": "parameter",
"displayName": "Compensate On Tool Errors", "group": "producer", "label":
"producer", "required": false, "type": "boolean", "javaType":
"java.lang.Boolean", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "Whether Lan [...]
+ "executeToolsConcurrently": { "index": 5, "kind": "parameter",
"displayName": "Execute Tools Concurrently", "group": "producer", "label":
"producer", "required": false, "type": "boolean", "javaType":
"java.lang.Boolean", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "Whether [...]
+ "jsonSchema": { "index": 6, "kind": "parameter", "displayName": "Json
Schema", "group": "producer", "label": "", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "supportFileReference": true,
"configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "JSON schema for
structured output valida [...]
+ "maxToolCallingRoundTrips": { "index": 7, "kind": "parameter",
"displayName": "Max Tool Calling Round Trips", "group": "producer", "label":
"producer", "required": false, "type": "integer", "javaType": "int",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "defaultValue": 0, "configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "Maximum number of tool-c
[...]
+ "outputClass": { "index": 8, "kind": "parameter", "displayName": "Output
Class", "group": "producer", "label": "", "required": false, "type": "string",
"javaType": "java.lang.Class<java.lang.Object>", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "Java class to use for
structured output. Camel deri [...]
+ "tags": { "index": 9, "kind": "parameter", "displayName": "Tags", "group":
"producer", "label": "", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "autowired": false, "secret": false,
"configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "Tags for discovering and
calling Camel route tools" },
+ "lazyStartProducer": { "index": 10, "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 produ [...]
+ "mcpClients": { "index": 11, "kind": "parameter", "displayName": "Mcp
Clients", "group": "advanced", "label": "advanced", "required": false, "type":
"array", "javaType": "java.util.List<dev.langchain4j.mcp.client.McpClient>",
"deprecated": false, "autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "Pre-built MCP (Model
Context Protocol) client ins [...]
+ "mcpServer": { "index": 12, "kind": "parameter", "displayName": "Mcp
Server", "group": "advanced", "label": "advanced", "required": false, "type":
"object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>",
"prefix": "mcpServer.", "multiValue": true, "deprecated": false, "autowired":
false, "secret": false, "configurationClass":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
"configurationField": "configuration", "description": "MCP serve [...]
}
}
diff --git
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/openai.json
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/openai.json
index c1bbbf46668..4d2ba09c7f5 100644
---
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/openai.json
+++
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/openai.json
@@ -176,23 +176,24 @@
"streaming": { "index": 60, "kind": "parameter", "displayName":
"Streaming", "group": "producer", "label": "", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "defaultValue": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "Enable streaming
responses" },
"stripThinking": { "index": 61, "kind": "parameter", "displayName": "Strip
Thinking", "group": "producer", "label": "", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "defaultValue": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "Strip ... blocks from
model responses (used by reasoning models like [...]
"systemMessage": { "index": 62, "kind": "parameter", "displayName":
"System Message", "group": "producer", "label": "", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "System message to
prepend. When set and conversationMemory is enabled, the conversat [...]
- "temperature": { "index": 63, "kind": "parameter", "displayName":
"Temperature", "group": "producer", "label": "", "required": false, "type":
"number", "javaType": "java.lang.Double", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "Temperature for response
generation (0.0 to 2.0)" },
- "toolExecutionErrorStrategy": { "index": 64, "kind": "parameter",
"displayName": "Tool Execution Error Strategy", "group": "producer", "label":
"", "required": false, "type": "enum", "javaType":
"org.apache.camel.component.openai.ToolExecutionErrorStrategy", "enum": [
"failExchange", "repromptModel" ], "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "defaultValue": "failExchange",
"configurationClass": "org.apache.camel.component.openai.OpenAIConfigur [...]
- "topP": { "index": 65, "kind": "parameter", "displayName": "Top P",
"group": "producer", "label": "", "required": false, "type": "number",
"javaType": "java.lang.Double", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "Top P for response generation (0.0 to 1.0)" },
- "userMessage": { "index": 66, "kind": "parameter", "displayName": "User
Message", "group": "producer", "label": "", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "Default user message
text to use when no prompt is provided" },
- "lazyStartProducer": { "index": 67, "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 produ [...]
- "oauthProfile": { "index": 68, "kind": "parameter", "displayName": "Oauth
Profile", "group": "security", "label": "security", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "OAuth profile name for
obtaining an access token via the OAuth 2.0 Client Cred [...]
- "sslContextParameters": { "index": 69, "kind": "parameter", "displayName":
"Ssl Context Parameters", "group": "security", "label": "security", "required":
false, "type": "object", "javaType":
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "SSLContextParameters to
use [...]
- "sslEndpointAlgorithm": { "index": 70, "kind": "parameter", "displayName":
"Ssl Endpoint Algorithm", "group": "security", "label": "security", "required":
false, "type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "security":
"insecure:ssl", "insecureValue": "none", "defaultValue": "https",
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", [...]
- "sslKeymanagerAlgorithm": { "index": 71, "kind": "parameter",
"displayName": "Ssl Keymanager Algorithm", "group": "security", "label":
"security", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "defaultValue": "SunX509", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The algorithm used by the key [...]
- "sslKeyPassword": { "index": 72, "kind": "parameter", "displayName": "Ssl
Key Password", "group": "security", "label": "security", "required": false,
"type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": true, "security":
"secret", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The password of the private key in the key
store file" },
- "sslKeystoreLocation": { "index": 73, "kind": "parameter", "displayName":
"Ssl Keystore Location", "group": "security", "label": "security", "required":
false, "type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "The location of the key
store file. This is optional and can be [...]
- "sslKeystorePassword": { "index": 74, "kind": "parameter", "displayName":
"Ssl Keystore Password", "group": "security", "label": "security", "required":
false, "type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": true, "security":
"secret", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The store password for the key store file" },
- "sslKeystoreType": { "index": 75, "kind": "parameter", "displayName": "Ssl
Keystore Type", "group": "security", "label": "security", "required": false,
"type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue":
"JKS", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The file format of the key store file" },
- "sslProtocol": { "index": 76, "kind": "parameter", "displayName": "Ssl
Protocol", "group": "security", "label": "security", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue":
"TLSv1.3", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The SSL protocol used to generate the
SSLContext" },
- "sslTrustmanagerAlgorithm": { "index": 77, "kind": "parameter",
"displayName": "Ssl Trustmanager Algorithm", "group": "security", "label":
"security", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "defaultValue": "PKIX", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The algorithm used by the tru [...]
- "sslTruststoreLocation": { "index": 78, "kind": "parameter",
"displayName": "Ssl Truststore Location", "group": "security", "label":
"security", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The location of the trust store file, used to
validate the [...]
- "sslTruststorePassword": { "index": 79, "kind": "parameter",
"displayName": "Ssl Truststore Password", "group": "security", "label":
"security", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": true, "security": "secret", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The password for the trust store file. [...]
- "sslTruststoreType": { "index": 80, "kind": "parameter", "displayName":
"Ssl Truststore Type", "group": "security", "label": "security", "required":
false, "type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue":
"JKS", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The file format of the trust store file" }
+ "tags": { "index": 63, "kind": "parameter", "displayName": "Tags",
"group": "producer", "label": "", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "Comma-separated tags for discovering
route-based tools registered via the ai-tool component. When set, [...]
+ "temperature": { "index": 64, "kind": "parameter", "displayName":
"Temperature", "group": "producer", "label": "", "required": false, "type":
"number", "javaType": "java.lang.Double", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "Temperature for response
generation (0.0 to 2.0)" },
+ "toolExecutionErrorStrategy": { "index": 65, "kind": "parameter",
"displayName": "Tool Execution Error Strategy", "group": "producer", "label":
"", "required": false, "type": "enum", "javaType":
"org.apache.camel.component.openai.ToolExecutionErrorStrategy", "enum": [
"failExchange", "repromptModel" ], "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "defaultValue": "failExchange",
"configurationClass": "org.apache.camel.component.openai.OpenAIConfigur [...]
+ "topP": { "index": 66, "kind": "parameter", "displayName": "Top P",
"group": "producer", "label": "", "required": false, "type": "number",
"javaType": "java.lang.Double", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "Top P for response generation (0.0 to 1.0)" },
+ "userMessage": { "index": 67, "kind": "parameter", "displayName": "User
Message", "group": "producer", "label": "", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "Default user message
text to use when no prompt is provided" },
+ "lazyStartProducer": { "index": 68, "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 produ [...]
+ "oauthProfile": { "index": 69, "kind": "parameter", "displayName": "Oauth
Profile", "group": "security", "label": "security", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "OAuth profile name for
obtaining an access token via the OAuth 2.0 Client Cred [...]
+ "sslContextParameters": { "index": 70, "kind": "parameter", "displayName":
"Ssl Context Parameters", "group": "security", "label": "security", "required":
false, "type": "object", "javaType":
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "SSLContextParameters to
use [...]
+ "sslEndpointAlgorithm": { "index": 71, "kind": "parameter", "displayName":
"Ssl Endpoint Algorithm", "group": "security", "label": "security", "required":
false, "type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "security":
"insecure:ssl", "insecureValue": "none", "defaultValue": "https",
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", [...]
+ "sslKeymanagerAlgorithm": { "index": 72, "kind": "parameter",
"displayName": "Ssl Keymanager Algorithm", "group": "security", "label":
"security", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "defaultValue": "SunX509", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The algorithm used by the key [...]
+ "sslKeyPassword": { "index": 73, "kind": "parameter", "displayName": "Ssl
Key Password", "group": "security", "label": "security", "required": false,
"type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": true, "security":
"secret", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The password of the private key in the key
store file" },
+ "sslKeystoreLocation": { "index": 74, "kind": "parameter", "displayName":
"Ssl Keystore Location", "group": "security", "label": "security", "required":
false, "type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"configurationClass": "org.apache.camel.component.openai.OpenAIConfiguration",
"configurationField": "configuration", "description": "The location of the key
store file. This is optional and can be [...]
+ "sslKeystorePassword": { "index": 75, "kind": "parameter", "displayName":
"Ssl Keystore Password", "group": "security", "label": "security", "required":
false, "type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": true, "security":
"secret", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The store password for the key store file" },
+ "sslKeystoreType": { "index": 76, "kind": "parameter", "displayName": "Ssl
Keystore Type", "group": "security", "label": "security", "required": false,
"type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue":
"JKS", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The file format of the key store file" },
+ "sslProtocol": { "index": 77, "kind": "parameter", "displayName": "Ssl
Protocol", "group": "security", "label": "security", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue":
"TLSv1.3", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The SSL protocol used to generate the
SSLContext" },
+ "sslTrustmanagerAlgorithm": { "index": 78, "kind": "parameter",
"displayName": "Ssl Trustmanager Algorithm", "group": "security", "label":
"security", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "defaultValue": "PKIX", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The algorithm used by the tru [...]
+ "sslTruststoreLocation": { "index": 79, "kind": "parameter",
"displayName": "Ssl Truststore Location", "group": "security", "label":
"security", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The location of the trust store file, used to
validate the [...]
+ "sslTruststorePassword": { "index": 80, "kind": "parameter",
"displayName": "Ssl Truststore Password", "group": "security", "label":
"security", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": true, "security": "secret", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The password for the trust store file. [...]
+ "sslTruststoreType": { "index": 81, "kind": "parameter", "displayName":
"Ssl Truststore Type", "group": "security", "label": "security", "required":
false, "type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue":
"JKS", "configurationClass":
"org.apache.camel.component.openai.OpenAIConfiguration", "configurationField":
"configuration", "description": "The file format of the trust store file" }
}
}
diff --git
a/components-starter/camel-ai-tool-starter/src/main/docs/ai-tool.json
b/components-starter/camel-ai-tool-starter/src/main/docs/ai-tool.json
index 8d1ad3ac759..1498d19ecea 100644
--- a/components-starter/camel-ai-tool-starter/src/main/docs/ai-tool.json
+++ b/components-starter/camel-ai-tool-starter/src/main/docs/ai-tool.json
@@ -102,6 +102,13 @@
"sourceType":
"org.apache.camel.component.ai.tool.springboot.AiToolComponentConfiguration",
"defaultValue": false
},
+ {
+ "name": "camel.component.ai-tool.return-direct",
+ "type": "java.lang.Boolean",
+ "description": "When true, AI producers that support agentic tool loops
(such as camel-openai) return this tool's result directly to the caller without
sending it back to the model. Also published as an MCP tool annotation when the
tool is exposed via camel-mcp-server.",
+ "sourceType":
"org.apache.camel.component.ai.tool.springboot.AiToolComponentConfiguration",
+ "defaultValue": false
+ },
{
"name": "camel.component.ai-tool.tags",
"type": "java.lang.String",
diff --git
a/components-starter/camel-ai-tool-starter/src/main/java/org/apache/camel/component/ai/tool/springboot/AiToolComponentConfiguration.java
b/components-starter/camel-ai-tool-starter/src/main/java/org/apache/camel/component/ai/tool/springboot/AiToolComponentConfiguration.java
index 3847b9173d5..1ad2adb5976 100644
---
a/components-starter/camel-ai-tool-starter/src/main/java/org/apache/camel/component/ai/tool/springboot/AiToolComponentConfiguration.java
+++
b/components-starter/camel-ai-tool-starter/src/main/java/org/apache/camel/component/ai/tool/springboot/AiToolComponentConfiguration.java
@@ -112,6 +112,13 @@ public class AiToolComponentConfiguration
* Advisory for MCP clients; not enforced by Camel.
*/
private Boolean readOnlyHint = false;
+ /**
+ * When true, AI producers that support agentic tool loops (such as
+ * camel-openai) return this tool's result directly to the caller without
+ * sending it back to the model. Also published as an MCP tool annotation
+ * when the tool is exposed via camel-mcp-server.
+ */
+ private Boolean returnDirect = false;
/**
* Comma-separated list of tags used to group tools. Producers filter the
* registry by these tags to select which tools to expose to the LLM. When
@@ -221,6 +228,14 @@ public class AiToolComponentConfiguration
this.readOnlyHint = readOnlyHint;
}
+ public Boolean getReturnDirect() {
+ return returnDirect;
+ }
+
+ public void setReturnDirect(Boolean returnDirect) {
+ this.returnDirect = returnDirect;
+ }
+
public String getTags() {
return tags;
}
diff --git
a/components-starter/camel-langchain4j-agent-starter/src/main/docs/langchain4j-agent.json
b/components-starter/camel-langchain4j-agent-starter/src/main/docs/langchain4j-agent.json
index a9ef8aaf1ce..1e8bd046c9e 100644
---
a/components-starter/camel-langchain4j-agent-starter/src/main/docs/langchain4j-agent.json
+++
b/components-starter/camel-langchain4j-agent-starter/src/main/docs/langchain4j-agent.json
@@ -38,6 +38,13 @@
"sourceType":
"org.apache.camel.component.langchain4j.agent.springboot.LangChain4jAgentComponentConfiguration",
"defaultValue": true
},
+ {
+ "name": "camel.component.langchain4j-agent.compensate-on-tool-errors",
+ "type": "java.lang.Boolean",
+ "description": "Whether LangChain4j should compensate when a tool
execution fails. Only supported in inline agent creation mode
(agentConfiguration without agent or agentFactory). URI value overrides the
same option on the agentConfiguration bean.",
+ "sourceType":
"org.apache.camel.component.langchain4j.agent.springboot.LangChain4jAgentComponentConfiguration",
+ "defaultValue": false
+ },
{
"name": "camel.component.langchain4j-agent.configuration",
"type":
"org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration",
@@ -55,6 +62,13 @@
"description": "Whether to enable auto configuration of the
langchain4j-agent component. This is enabled by default.",
"sourceType":
"org.apache.camel.component.langchain4j.agent.springboot.LangChain4jAgentComponentConfiguration"
},
+ {
+ "name": "camel.component.langchain4j-agent.execute-tools-concurrently",
+ "type": "java.lang.Boolean",
+ "description": "Whether multiple tools requested in a single LLM turn
are executed concurrently. Camel route tools run on isolated exchange copies.
Only supported in inline agent creation mode (agentConfiguration without agent
or agentFactory). URI value overrides the same option on the agentConfiguration
bean.",
+ "sourceType":
"org.apache.camel.component.langchain4j.agent.springboot.LangChain4jAgentComponentConfiguration",
+ "defaultValue": false
+ },
{
"name": "camel.component.langchain4j-agent.json-schema",
"type": "java.lang.String",
@@ -68,6 +82,13 @@
"sourceType":
"org.apache.camel.component.langchain4j.agent.springboot.LangChain4jAgentComponentConfiguration",
"defaultValue": false
},
+ {
+ "name": "camel.component.langchain4j-agent.max-tool-calling-round-trips",
+ "type": "java.lang.Integer",
+ "description": "Maximum number of tool-calling round trips allowed per
request. Each round trip is one LLM call plus execution of the tools requested
in that call. Set to 0 to leave unset and use the LangChain4j default. Only
supported in inline agent creation mode (agentConfiguration without agent or
agentFactory). URI value overrides the same option on the agentConfiguration
bean.",
+ "sourceType":
"org.apache.camel.component.langchain4j.agent.springboot.LangChain4jAgentComponentConfiguration",
+ "defaultValue": 0
+ },
{
"name": "camel.component.langchain4j-agent.mcp-clients",
"type": "java.util.List<dev.langchain4j.mcp.client.McpClient>",
diff --git
a/components-starter/camel-langchain4j-agent-starter/src/main/java/org/apache/camel/component/langchain4j/agent/springboot/LangChain4jAgentComponentConfiguration.java
b/components-starter/camel-langchain4j-agent-starter/src/main/java/org/apache/camel/component/langchain4j/agent/springboot/LangChain4jAgentComponentConfiguration.java
index 95981ab8a37..0ee565ac753 100644
---
a/components-starter/camel-langchain4j-agent-starter/src/main/java/org/apache/camel/component/langchain4j/agent/springboot/LangChain4jAgentComponentConfiguration.java
+++
b/components-starter/camel-langchain4j-agent-starter/src/main/java/org/apache/camel/component/langchain4j/agent/springboot/LangChain4jAgentComponentConfiguration.java
@@ -60,11 +60,26 @@ public class LangChain4jAgentComponentConfiguration
* type.
*/
private AgentFactory agentFactory;
+ /**
+ * Whether LangChain4j should compensate when a tool execution fails. Only
+ * supported in inline agent creation mode (agentConfiguration without
agent
+ * or agentFactory). URI value overrides the same option on the
+ * agentConfiguration bean.
+ */
+ private Boolean compensateOnToolErrors = false;
/**
* The configuration. The option is a
*
org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration type.
*/
private LangChain4jAgentConfiguration configuration;
+ /**
+ * Whether multiple tools requested in a single LLM turn are executed
+ * concurrently. Camel route tools run on isolated exchange copies. Only
+ * supported in inline agent creation mode (agentConfiguration without
agent
+ * or agentFactory). URI value overrides the same option on the
+ * agentConfiguration bean.
+ */
+ private Boolean executeToolsConcurrently = false;
/**
* JSON schema for structured output validation. Only supported in inline
* agent creation mode: agentConfiguration must be set and neither agent
nor
@@ -82,6 +97,15 @@ public class LangChain4jAgentComponentConfiguration
* and prolong the total processing time of the processing.
*/
private Boolean lazyStartProducer = false;
+ /**
+ * Maximum number of tool-calling round trips allowed per request. Each
+ * round trip is one LLM call plus execution of the tools requested in that
+ * call. Set to 0 to leave unset and use the LangChain4j default. Only
+ * supported in inline agent creation mode (agentConfiguration without
agent
+ * or agentFactory). URI value overrides the same option on the
+ * agentConfiguration bean.
+ */
+ private Integer maxToolCallingRoundTrips = 0;
/**
* Java class to use for structured output. Camel derives the JSON schema
* from the class and instructs the model to produce matching JSON; the
@@ -146,6 +170,14 @@ public class LangChain4jAgentComponentConfiguration
this.agentFactory = agentFactory;
}
+ public Boolean getCompensateOnToolErrors() {
+ return compensateOnToolErrors;
+ }
+
+ public void setCompensateOnToolErrors(Boolean compensateOnToolErrors) {
+ this.compensateOnToolErrors = compensateOnToolErrors;
+ }
+
public LangChain4jAgentConfiguration getConfiguration() {
return configuration;
}
@@ -154,6 +186,14 @@ public class LangChain4jAgentComponentConfiguration
this.configuration = configuration;
}
+ public Boolean getExecuteToolsConcurrently() {
+ return executeToolsConcurrently;
+ }
+
+ public void setExecuteToolsConcurrently(Boolean executeToolsConcurrently) {
+ this.executeToolsConcurrently = executeToolsConcurrently;
+ }
+
public String getJsonSchema() {
return jsonSchema;
}
@@ -170,6 +210,14 @@ public class LangChain4jAgentComponentConfiguration
this.lazyStartProducer = lazyStartProducer;
}
+ public Integer getMaxToolCallingRoundTrips() {
+ return maxToolCallingRoundTrips;
+ }
+
+ public void setMaxToolCallingRoundTrips(Integer maxToolCallingRoundTrips) {
+ this.maxToolCallingRoundTrips = maxToolCallingRoundTrips;
+ }
+
public Class<Object> getOutputClass() {
return outputClass;
}
diff --git a/docs/spring-boot/modules/ROOT/pages/starters/ai-tool.adoc
b/docs/spring-boot/modules/ROOT/pages/starters/ai-tool.adoc
index ca6e420f802..e413b5e9d28 100644
--- a/docs/spring-boot/modules/ROOT/pages/starters/ai-tool.adoc
+++ b/docs/spring-boot/modules/ROOT/pages/starters/ai-tool.adoc
@@ -23,7 +23,7 @@ Please refer to the above links for usage and configuration
details.
== Spring Boot Auto-Configuration
-The starter supports 15 options, which are listed below.
+The starter supports 16 options, which are listed below.
[width="100%",cols="2,5,^1,2",options="header"]
|===
@@ -41,6 +41,7 @@ The starter supports 15 options, which are listed below.
| camel.component.ai-tool.output-schema | Raw JSON Schema describing the
tool's structured output. Supports inline JSON and resource references
(classpath:, file:, resource:). Mutually exclusive with the outputParameter
multi-value options. When declared, the route body is parsed as JSON and
exposed as structured content to MCP clients. | | String
| camel.component.ai-tool.parameters | Tool input parameters. Format:
parameter.NAME=TYPE, parameter.NAME.description=TEXT,
parameter.NAME.required=true or false, parameter.NAME.enum=val1,val2. Supported
types: string, integer, number, boolean. Mutually exclusive with argSchema.
This is a multi-value option with prefix: parameter. | | String>
| camel.component.ai-tool.read-only-hint | MCP hint that the tool only reads
data and does not modify state. Advisory for MCP clients; not enforced by
Camel. | false | Boolean
+| camel.component.ai-tool.return-direct | When true, AI producers that support
agentic tool loops (such as camel-openai) return this tool's result directly to
the caller without sending it back to the model. Also published as an MCP tool
annotation when the tool is exposed via camel-mcp-server. | false | Boolean
| camel.component.ai-tool.tags | Comma-separated list of tags used to group
tools. Producers filter the registry by these tags to select which tools to
expose to the LLM. When omitted, the tool goes into a default pool available to
all producers. | | String
| camel.component.ai-tool.title | Optional display title for MCP tool
listings. Advisory hint for MCP clients only. | | String
|===
diff --git
a/docs/spring-boot/modules/ROOT/pages/starters/langchain4j-agent.adoc
b/docs/spring-boot/modules/ROOT/pages/starters/langchain4j-agent.adoc
index aa45788db03..d214d63da13 100644
--- a/docs/spring-boot/modules/ROOT/pages/starters/langchain4j-agent.adoc
+++ b/docs/spring-boot/modules/ROOT/pages/starters/langchain4j-agent.adoc
@@ -23,7 +23,7 @@ Please refer to the above links for usage and configuration
details.
== Spring Boot Auto-Configuration
-The starter supports 12 options, which are listed below.
+The starter supports 15 options, which are listed below.
[width="100%",cols="2,5,^1,2",options="header"]
|===
@@ -32,10 +32,13 @@ The starter supports 12 options, which are listed below.
| camel.component.langchain4j-agent.agent-configuration | AgentConfiguration
used by Camel to create the agent internally. When set, Camel creates an
AgentWithMemory if a ChatMemoryProvider is configured, otherwise an
AgentWithoutMemory. If an agentFactory is also configured, the factory takes
precedence. The option is a
org.apache.camel.component.langchain4j.agent.api.AgentConfiguration type. | |
AgentConfiguration
| camel.component.langchain4j-agent.agent-factory | The agent factory to use
for creating agents if no Agent is provided. The option is a
org.apache.camel.component.langchain4j.agent.api.AgentFactory type. | |
AgentFactory
| camel.component.langchain4j-agent.autowired-enabled | 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 type, which then gets configured on the component. This
can be used for automatic configuring JDBC data sources, JMS connection
factories, AWS Clients, etc. | true | Boolean
+| camel.component.langchain4j-agent.compensate-on-tool-errors | Whether
LangChain4j should compensate when a tool execution fails. Only supported in
inline agent creation mode (agentConfiguration without agent or agentFactory).
URI value overrides the same option on the agentConfiguration bean. | false |
Boolean
| camel.component.langchain4j-agent.configuration | The configuration. The
option is a
org.apache.camel.component.langchain4j.agent.LangChain4jAgentConfiguration
type. | | LangChain4jAgentConfiguration
| camel.component.langchain4j-agent.enabled | Whether to enable auto
configuration of the langchain4j-agent component. This is enabled by default. |
| Boolean
+| camel.component.langchain4j-agent.execute-tools-concurrently | Whether
multiple tools requested in a single LLM turn are executed concurrently. Camel
route tools run on isolated exchange copies. Only supported in inline agent
creation mode (agentConfiguration without agent or agentFactory). URI value
overrides the same option on the agentConfiguration bean. | false | Boolean
| camel.component.langchain4j-agent.json-schema | JSON schema for structured
output validation. Only supported in inline agent creation mode:
agentConfiguration must be set and neither agent nor agentFactory may be
configured. Mutually exclusive with outputClass. | | String
| camel.component.langchain4j-agent.lazy-start-producer | 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 during starting and cause the route to fail being started.
By deferring this startup to be lazy then the startup failure can be handled
during routing messages via Camel's routing error handlers. Beware that when
the first message is proc [...]
+| camel.component.langchain4j-agent.max-tool-calling-round-trips | Maximum
number of tool-calling round trips allowed per request. Each round trip is one
LLM call plus execution of the tools requested in that call. Set to 0 to leave
unset and use the LangChain4j default. Only supported in inline agent creation
mode (agentConfiguration without agent or agentFactory). URI value overrides
the same option on the agentConfiguration bean. | 0 | Integer
| camel.component.langchain4j-agent.mcp-clients | Pre-built MCP (Model Context
Protocol) client instances for external tool integration. Reference beans from
the registry, e.g., #myMcpClient1,#myMcpClient2 | | McpClient>
| camel.component.langchain4j-agent.mcp-server | MCP server definitions in the
form of mcpServer..=. Supported properties: transportType (stdio, http or
streamableHttp, default: stdio), command (comma-separated, for stdio), url (for
http/streamableHttp), environment.= (for stdio), timeout (in seconds, default:
60), logRequests, logResponses, oauthProfile (OAuth profile for HTTP auth,
requires camel-oauth). This is a multi-value option with prefix: mcpServer. |
| Object>
| camel.component.langchain4j-agent.output-class | Java class to use for
structured output. Camel derives the JSON schema from the class and instructs
the model to produce matching JSON; the response body is left as a raw JSON
string. Only supported in inline agent creation mode: agentConfiguration must
be set and neither agent nor agentFactory may be configured. The class must be
a POJO with public fields or getters; simple types, enums, and collections are
not supported. Mutually exclu [...]
diff --git a/tooling/camel-spring-boot-dependencies/pom.xml
b/tooling/camel-spring-boot-dependencies/pom.xml
index 2b19c413d63..78bbd93d185 100644
--- a/tooling/camel-spring-boot-dependencies/pom.xml
+++ b/tooling/camel-spring-boot-dependencies/pom.xml
@@ -33,12 +33,12 @@
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>dysmsapi20170525</artifactId>
- <version>4.1.1</version>
+ <version>4.6.0</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>eventbridge-client</artifactId>
- <version>1.2.6</version>
+ <version>1.3.14</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
@@ -58,7 +58,7 @@
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>tea-openapi</artifactId>
- <version>0.3.8</version>
+ <version>0.3.15</version>
</dependency>
<dependency>
<groupId>com.google.api.grpc</groupId>
@@ -84,7 +84,7 @@
<dependency>
<groupId>com.openai</groupId>
<artifactId>openai-java</artifactId>
- <version>4.49.0</version>
+ <version>4.52.0</version>
</dependency>
<dependency>
<groupId>eu.maveniverse.maven.mima.runtime</groupId>
@@ -295,12 +295,12 @@
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy</artifactId>
- <version>1.18.11</version>
+ <version>1.18.12</version>
</dependency>
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy-agent</artifactId>
- <version>1.18.11</version>
+ <version>1.18.12</version>
</dependency>
<dependency>
<groupId>org.apache.avro</groupId>
@@ -4094,11 +4094,6 @@
<artifactId>camel-ldif</artifactId>
<version>4.23.0-SNAPSHOT</version>
</dependency>
- <dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-leveldb</artifactId>
- <version>4.23.0-SNAPSHOT</version>
- </dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-log</artifactId>
@@ -4804,6 +4799,26 @@
<artifactId>camel-ssh</artifactId>
<version>4.23.0-SNAPSHOT</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-state-store</artifactId>
+ <version>4.23.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-state-store-caffeine</artifactId>
+ <version>4.23.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-state-store-infinispan</artifactId>
+ <version>4.23.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-state-store-redis</artifactId>
+ <version>4.23.0-SNAPSHOT</version>
+ </dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-stax</artifactId>
@@ -5353,12 +5368,12 @@
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
- <version>4.0.3</version>
+ <version>4.1.0</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-xml</artifactId>
- <version>3.0.1</version>
+ <version>3.1.0</version>
</dependency>
<dependency>
<groupId>org.jooq</groupId>