Andrea Cosentino created CAMEL-24613:
----------------------------------------

             Summary: camel-langchain4j-agent-api: guardrail robustness 
(English false-reject with allowMixed=false, no guardrail-class interface check)
                 Key: CAMEL-24613
                 URL: https://issues.apache.org/jira/browse/CAMEL-24613
             Project: Camel
          Issue Type: Bug
          Components: camel-langchain4j-agent
            Reporter: Andrea Cosentino
            Assignee: Andrea Cosentino
             Fix For: 4.23.0


Two low-severity robustness issues in the agent-api guardrails:

1. LanguageGuardrail with allowMixed(false) and allowedLanguages={ENGLISH} 
falsely rejects plain English. The ENGLISH and LATIN_SCRIPT enum patterns 
overlap (ASCII letters match both), so detectedLanguages ends up {ENGLISH, 
LATIN_SCRIPT}; the mixed-content check then treats LATIN_SCRIPT as 'not allowed 
and not ENGLISH' and fails with 'Mixed language content is not allowed.'. Only 
in the non-default allowMixed(false) configuration. Fix: treat LATIN_SCRIPT as 
satisfied when ENGLISH is allowed (or de-overlap the patterns) before the 
mixed-content check.

2. AgentConfiguration.parseGuardrailClasses loads class names via Class.forName 
with no check that the class implements InputGuardrail/OutputGuardrail; a wrong 
or unrelated class name is silently accepted and only fails deep inside 
langchain4j later. The single shared parse method also cannot distinguish input 
vs output, so an output-guardrail name given to the input list is accepted. 
Fix: validate the loaded class against the expected guardrail interface and 
log/skip mismatches (as it already does for ClassNotFoundException).

_Reported by an automated functional audit._



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to