[ 
https://issues.apache.org/jira/browse/CAMEL-25687?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen updated CAMEL-25687:
--------------------------------
    Description: 
The AI tools of camel-jbang reach models through four clients, with more than 
100 tool names between them (main, Oct 15 2026):

||client||tools||what they are||
|camel-jbang-mcp|85|16 {{camel_...}} tools, 36 {{camel_runtime_...}} tools over 
the shared registry, 33 of its own|
|camel run --mcp ({{JbangDevMcpServer}} of camel-mcp-server)|68|every tool of 
the shared registry, under the registry's names|
|camel ask|25 to a local model, 61 to a hosted one|the registry's tools under 
the registry's names, a core and a full set since CAMEL-25676|
|camel tui (AI panel and camel tui --mcp)|64, 25 to a local model|the 16 
{{camel_...}} tools and 48 of its own|

The shared registry ({{ToolRegistry}} in camel-jbang-core: 16 {{camel_...}} 
tools and 52 others) is one implementation, but a model meets it under two 
names: {{camel_runtime_routes}} of camel-jbang-mcp is {{get_routes}} of camel 
run --mcp and camel ask. So prompts, hints and benchmark results for one client 
do not carry over to another, a host that picks a tool by its name 
(CAMEL-25639) meets two names for one tool, and a local model pays for every 
tool definition in time: 74 tools made the first request of a camel ask 
question 9.5k tokens, against 5.2k with 25 (CAMEL-25676).

h3. Proposal
* One consolidated set: the tools CAMEL-25639 settles on for camel-jbang-mcp, 
defined once in camel-jbang-core with their name, description and arguments, 
and served under the same names by all four clients.
* Two sizes of it: a core set of about 25 tools for a local model 
({{ToolDescriptor.core}} and the tool groups of the integration, as camel ask 
and the AI panel pick them) and the full set for a frontier model. Each client 
adds its own few: the CLI for camel ask, the screen for the monitor. The 
profiles of CAMEL-25537 can be these two.
* camel run --mcp needs the same choice between a local and a frontier model. 
As an MCP server it cannot see the model behind its client, so an option 
chooses the core or the full set (camel ask and the AI panel pick by the 
provider, with an option to override).
* Delete the ten registry tools that the {{camel_...}} tools replaced: 
{{get_errors}}, {{eval_expression}} and eight {{catalog_...}} tools. Since 
CAMEL-25676 only camel run --mcp serves them.
* Give the six tools that only camel ask and camel run --mcp serve their shared 
counterparts: {{list_processes}} and {{select_process}} 
({{camel_runtime_processes}}), {{stop_application}} ({{camel_control}} with 
stop), {{write_heap_dump}} (the heap dump tool), {{list_examples}} and 
{{get_example_file}} ({{camel_catalog_examples}}, 
{{camel_catalog_example_file}}).
* Measure the core set with local models on the benchmark ladder, before and 
after.

Do it with or after CAMEL-25639: the names are the ones it settles on.


  was:
The runtime tools of the shared registry ({{ToolRegistry}} in camel-jbang-core) 
reach models under two names. The Camel MCP server serves them as 
{{camel_runtime_...}} tools that call the registry by its own names, 36 such 
tools: {{camel_runtime_routes}} calls {{get_routes}}, for example. {{camel 
ask}} shows the registry names themselves. The tool group guidance is written 
with the MCP names, so {{camel ask}} translates it ({{AskTools.GROUP_TOOLS}}, 
CAMEL-25676). Prompts, hints and benchmark results for one client do not carry 
over to the other, and a model that picks a tool by its name (CAMEL-25639) 
meets two names for one tool.

h3. Proposal
* One public name per shared tool: the registry tools take the names the MCP 
server serves, with the same description and arguments, and the MCP server's 
tool methods take their descriptions from the registry. The MCP server's tool 
names stay, so its clients see no change; {{camel ask}} shows the same tools as 
the MCP server.
* Delete the ten registry tools that the {{camel_...}} tools replaced: 
{{get_errors}}, {{eval_expression}} and the eight {{catalog_...}} tools 
({{catalog_components}}, {{catalog_component_doc}} and the like). Since 
CAMEL-25676 no client serves them.
* The six registry tools that only {{camel ask}} serves use their shared 
counterparts:
** {{list_processes}} and {{select_process}}: {{camel_runtime_processes}}; the 
MCP server passes a process name with each call, {{camel ask}} keeps its 
selection
** {{stop_application}}: {{camel_control}} with stop
** {{write_heap_dump}}: the heap dump tool of the MCP server
** {{list_examples}} and {{get_example_file}}: {{camel_catalog_examples}} and 
{{camel_catalog_example_file}}
* The {{GROUP_TOOLS}} translation in {{AskTools}} goes away.

Do it with or after CAMEL-25639, which consolidates the MCP server's tools and 
their arguments: the shared names are the ones it settles on. The core and full 
subsets that {{camel ask}} gives a local and a hosted model (CAMEL-25676) can 
then line up with the tool profiles of CAMEL-25537.

Counts on main (Oct 15 2026): the registry has 68 tools (16 {{camel_...}}, 52 
others); the MCP server 85 (16 {{camel_...}}, 36 {{camel_runtime_...}} over the 
registry, 33 of its own); {{camel ask}} serves 25 tools to a local model and 61 
to a hosted one since CAMEL-25676.


        Summary: camel-jbang - one AI tool set across clients, for local and 
frontier models  (was: camel-jbang - one name per shared AI tool in camel ask 
and the MCP server)

> camel-jbang - one AI tool set across clients, for local and frontier models
> ---------------------------------------------------------------------------
>
>                 Key: CAMEL-25687
>                 URL: https://issues.apache.org/jira/browse/CAMEL-25687
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-jbang, camel-jbang-mcp
>            Reporter: Claus Ibsen
>            Priority: Major
>             Fix For: 4.24.0
>
>
> The AI tools of camel-jbang reach models through four clients, with more than 
> 100 tool names between them (main, Oct 15 2026):
> ||client||tools||what they are||
> |camel-jbang-mcp|85|16 {{camel_...}} tools, 36 {{camel_runtime_...}} tools 
> over the shared registry, 33 of its own|
> |camel run --mcp ({{JbangDevMcpServer}} of camel-mcp-server)|68|every tool of 
> the shared registry, under the registry's names|
> |camel ask|25 to a local model, 61 to a hosted one|the registry's tools under 
> the registry's names, a core and a full set since CAMEL-25676|
> |camel tui (AI panel and camel tui --mcp)|64, 25 to a local model|the 16 
> {{camel_...}} tools and 48 of its own|
> The shared registry ({{ToolRegistry}} in camel-jbang-core: 16 {{camel_...}} 
> tools and 52 others) is one implementation, but a model meets it under two 
> names: {{camel_runtime_routes}} of camel-jbang-mcp is {{get_routes}} of camel 
> run --mcp and camel ask. So prompts, hints and benchmark results for one 
> client do not carry over to another, a host that picks a tool by its name 
> (CAMEL-25639) meets two names for one tool, and a local model pays for every 
> tool definition in time: 74 tools made the first request of a camel ask 
> question 9.5k tokens, against 5.2k with 25 (CAMEL-25676).
> h3. Proposal
> * One consolidated set: the tools CAMEL-25639 settles on for camel-jbang-mcp, 
> defined once in camel-jbang-core with their name, description and arguments, 
> and served under the same names by all four clients.
> * Two sizes of it: a core set of about 25 tools for a local model 
> ({{ToolDescriptor.core}} and the tool groups of the integration, as camel ask 
> and the AI panel pick them) and the full set for a frontier model. Each 
> client adds its own few: the CLI for camel ask, the screen for the monitor. 
> The profiles of CAMEL-25537 can be these two.
> * camel run --mcp needs the same choice between a local and a frontier model. 
> As an MCP server it cannot see the model behind its client, so an option 
> chooses the core or the full set (camel ask and the AI panel pick by the 
> provider, with an option to override).
> * Delete the ten registry tools that the {{camel_...}} tools replaced: 
> {{get_errors}}, {{eval_expression}} and eight {{catalog_...}} tools. Since 
> CAMEL-25676 only camel run --mcp serves them.
> * Give the six tools that only camel ask and camel run --mcp serve their 
> shared counterparts: {{list_processes}} and {{select_process}} 
> ({{camel_runtime_processes}}), {{stop_application}} ({{camel_control}} with 
> stop), {{write_heap_dump}} (the heap dump tool), {{list_examples}} and 
> {{get_example_file}} ({{camel_catalog_examples}}, 
> {{camel_catalog_example_file}}).
> * Measure the core set with local models on the benchmark ladder, before and 
> after.
> Do it with or after CAMEL-25639: the names are the ones it settles on.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to