Skip to content

Conversation

romankhan26
Copy link
Contributor

Overview:
This PR improves the output_guardrail behavior by ensuring a valid name is always assigned to the guardrail, even when the decorator is used without parentheses or without explicitly providing a name.

Problem:
Previously, when the decorator @output_guardrail was used without a name (and without parentheses), the name attribute of the guardrail remained None. This resulted in issues during runtime — specifically, the guardrail name did not appear in result.input_guardrail_results, making it harder to trace or debug guardrail outputs.

While the OutputGuardrail.get_name() method correctly defaults to the function name when name is None, this method is not used inside the decorator. Hence, unless a name is provided explicitly, the OutputGuardrail instance holds None for its name internally.

Solution:
This PR updates the decorator logic to:

Automatically fallback to the function name if the name parameter is not provided.

Ensure that the guardrail always has a meaningful identifier, which improves downstream behavior such as logging, debugging, and result tracing.

Example Behavior Before:

@output_guardrail
def validate_output(...):
Name remains None

Example Behavior After:

@output_guardrail
def validate_output(...):
Name becomes "validate_output" automatically

Why it matters:
This small change avoids hidden bugs or inconsistencies in downstream systems (like guardrail_results) that rely on guardrail names being defined. It also brings consistent behavior whether or not parentheses are used in the decorator.

@seratch seratch added enhancement New feature or request feature:core labels Jul 15, 2025
Copy link
Member

@seratch seratch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similar change to #1053 ; it should be good to go

Copy link
Member

@seratch seratch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lint and test errors need to be resolved

@romankhan26
Copy link
Contributor Author

@seratch
Resolved!

@seratch seratch requested a review from rm-openai July 18, 2025 00:06
@rm-openai rm-openai merged commit 4b8f40e into openai:main Jul 18, 2025
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request feature:core
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants