[
https://issues.apache.org/jira/browse/CAMEL-25632?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen reassigned CAMEL-25632:
-----------------------------------
Assignee: Claus Ibsen
> camel-jbang - camel_catalog_doc: let one call check several options
> -------------------------------------------------------------------
>
> Key: CAMEL-25632
> URL: https://issues.apache.org/jira/browse/CAMEL-25632
> Project: Camel
> Issue Type: Improvement
> Components: camel-jbang
> Reporter: Claus Ibsen
> Assignee: Claus Ibsen
> Priority: Major
> Fix For: 4.24.0
>
>
> AI models check each option they mean to write with its own
> {{camel_catalog_doc}} call, putting one option name in {{optionsFilter}}.
> Every answer is right: since CAMEL-25370 and CAMEL-25377, an option of a
> nested element is found too, under {{nestedOptions}} with the element it goes
> under. But a step has a limited number of tool calls, and a careful model
> spends them on lookups before it edits the route.
> In a local-model benchmark (21 examples, 3 runs, Qwen3.8 27B with thinking
> off, 20 tool calls per step):
> * connect-file-processing step 3 (adding an onException with redelivery and
> logging), all 3 runs: 17-18 {{camel_catalog_doc}} calls for {{onException}},
> with {{optionsFilter}} redelivery, logStackTrace, logExhausted, logLevel,
> log, message... The step ran out of calls before the edit.
> * connect-service-sql step 1, all 3 runs: 13-14 calls, mostly for {{sql}}:
> named, batch, onConsume, onConsumeFailed, useMessageBodyForSql...
> * Over all runs, 11 steps had 5 or more lookups of one name, and 9 of them
> failed. qwen3.6 35B-A3B had 3 such steps, and 2 failed.
> A second gap: {{optionsFilter=redelivery}} on {{onException}} matches its own
> options (redeliveryPolicy, retryWhile...), so the nested search is skipped.
> The options a model needs, {{maximumRedeliveries}} and {{redeliveryDelay}} of
> {{redeliveryPolicy}}, are not shown.
> h3. Proposal
> # {{optionsFilter}} takes several terms in one call, comma-separated
> ({{logStackTrace,logExhausted,maximumRedeliveries}}), and the tool
> description says so.
> # For an EIP, the options of its elements are searched also when its own
> options match, and both are returned ({{options}} and {{nestedOptions}}).
> # After a few lookups of the same name with different filters, answer with
> all options of the element and its nested elements (bounded, see CAMEL-25541)
> and a note that this is the full list, as {{RepeatedToolCalls}} does for
> identical calls.
> Code:
> {{dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ai/CatalogDocs.java}}
> (option matching and {{nestedOptions}}), {{AuthoringTools.java}} (the tool
> description) and {{RepeatedToolCalls.java}}.
> _Claude Code on behalf of davsclaus_
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)