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

Work on CAMEL-25632 started by 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)

Reply via email to