[
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)