Skip to content

Guardrails: RAISE does not fail the workflow, FIX does not redact #488

Description

@ambiorix2099

Found by: examples/agents/90_guardrail_e2e_tests.py, the repo's own guardrail E2E harness

Symptom: The harness runs 27 cases (tool INPUT/OUTPUT × Regex/LLM/Custom × RETRY/RAISE/FIX) and asserts each outcome. 24 pass, 3 fail:

# 8  aout_custom_raise:  expected FAILED, got COMPLETED
# 9  aout_custom_fix:    missing 'REDACTED'
#11  tin_regex_raise:    expected FAILED, got COMPLETED

Cause: Two distinct enforcement gaps.

  1. RAISE does not fail the execution. A guardrail configured to raise lets the workflow complete instead. Affects a custom guardrail on tool output (# 8) and a regex guardrail on tool input (#11), so it is not specific to one guardrail type or one direction.
  2. FIX does not redact. The fixed output is missing the expected REDACTED marker (# 9).

A guardrail that silently fails to enforce is worse than no guardrail: callers believe the check ran.

Reproduce:

CONDUCTOR_AGENT_LLM_MODEL=openai/gpt-4o python examples/agents/90_guardrail_e2e_tests.py

Takes about 5 minutes; it prints a per-case table and a FAILURES section. The harness prints nothing between cases, so any timeout under ~5 minutes kills it mid-run and looks like a hang — that is how this went unnoticed.

Verify: All 27 cases pass.

Note: Each failing case prints its workflow id, so the server-side execution can be inspected directly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions