You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (Jira)" <ji...@apache.org> on 2026/10/15 12:09:00 UTC

[jira] [Updated] (CAMEL-25687) camel-jbang - one AI tool set across clients, for local and frontier models

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