[
https://issues.apache.org/jira/browse/CAMEL-23078?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Federico Mariani updated CAMEL-23078:
-------------------------------------
Summary: camel-openai: MCP improvements — parallel tool execution and
runtime tool refresh (was: camel-openai MCP improvements)
> camel-openai: MCP improvements — parallel tool execution and runtime tool
> refresh
> ---------------------------------------------------------------------------------
>
> Key: CAMEL-23078
> URL: https://issues.apache.org/jira/browse/CAMEL-23078
> Project: Camel
> Issue Type: Improvement
> Components: camel-openai
> Affects Versions: 4.18.0
> Reporter: Federico Mariani
> Priority: Minor
>
> Implementing https://issues.apache.org/jira/browse/CAMEL-23076 I noticed the
> following improvements:
> * Parallel tool execution - mcpToolExecutorThreads config, CompletableFuture
> for batch calls
> When the model returns multiple tool calls in a single response (e.g., "get
> weather for London" and "get weather for Paris" simultaneously), they're
> currently executed sequentially. This is a per-exchange latency optimization
> — with 3 tools at 500ms each, sequential = 1.5s, parallel = ~500ms. It does
> not address thread exhaustion under concurrent load; the exchange thread
> remains blocked for the full agentic loop regardless. A configurable
> mcpToolExecutorThreads (default 1 = sequential, current behavior) would
> create a fixed thread pool at endpoint startup, used only for concurrent
> callTool() within a single model response.
> * Tool list refresh - mcpToolRefreshInterval or SDK toolsChangeConsumer
> callback
> Tools are listed once at doStart() and cached for the lifetime of the route.
> If an MCP server adds, removes, or updates tools at runtime, the cached list
> becomes stale — the model may try to call tools that no longer exist, or miss
> new ones.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)