[
https://issues.apache.org/jira/browse/CAMEL-26357?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen updated CAMEL-26357:
--------------------------------
Fix Version/s: 4.25.0
(was: 4.24.0)
> camel-ai-tool - validate tool arguments against the input schema and results
> against the output schema
> ------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-26357
> URL: https://issues.apache.org/jira/browse/CAMEL-26357
> Project: Camel
> Issue Type: Improvement
> Components: camel-ai, camel-mcp-server
> Reporter: Claus Ibsen
> Priority: Major
> Fix For: 4.25.0
>
>
> {{AiToolExecutor}} checks only that the required argument names are present.
> Types, enums, formats and nested objects in the input schema are not checked,
> so a wrong call reaches the route. With an {{outputSchema}}, the result is
> parsed as JSON but never validated, so a route can return
> {{structuredContent}} that breaks the schema it advertises.
> h3. Proposal
> * At startup, check the declared input and output schemas against their JSON
> Schema meta-schema (draft 2020-12 unless {{$schema}} says otherwise). A
> broken schema stops the route.
> * Validate the arguments before the route runs. A failure is an
> {{ArgumentError}} naming the location of the bad value, for example
> {{$.address.zip: must be a string}}. That message is returned as-is, as
> argument errors are today, so the model can correct the call.
> * Validate the result against {{outputSchema}}. A mismatch is a tool error
> with a generic message, and the details go to the log.
> * This lives in {{camel-ai-tool}}, so the standalone MCP server and the
> in-process agents (langchain4j-agent, openai, spring-ai-chat) all get it.
> * An option to turn validation off, for routes that rely on loose arguments
> today. If the default is on, that's an upgrade-guide entry.
> _Filed by Claude Code on behalf of davsclaus_
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)