Summary
Track the use of config.lowest_temperature in self-check actions and evaluate whether temperature selection should remain a global config-level setting or become task-/rail-specific.
Background
In PR #1874, the self-check implementation calls run_self_check_task(...) with lowest_temperature=config.lowest_temperature from the config object. This raised a review concern because self-check tasks can now be parameterized and chained, but temperature control is still sourced from a global config field.
Relevant discussion:
Why this needs follow-up
Using a single config-level lowest_temperature may be too coarse-grained for:
- multiple sequential self-check tasks with different prompt characteristics
- future task-specific tuning needs
- clearer ownership of temperature behavior inside self-check execution paths
Affected areas
nemoguardrails/library/self_check/input_check/actions.py
nemoguardrails/library/self_check/output_check/actions.py
nemoguardrails/library/self_check/utils.py
- any config/schema/docs describing
lowest_temperature behavior for self-check rails
Proposed investigation
- Identify all current call sites that pass
config.lowest_temperature into self-check execution.
- Clarify the intended contract of
lowest_temperature:
- global lower bound for all LLM tasks, or
- behavior specific to self-check prompts, or
- candidate for per-task/per-rail override
- Decide whether self-check tasks should support an explicit temperature override independent of the global config.
- Update tests and docs to reflect the chosen behavior.
Acceptance criteria
- The intended semantics of
lowest_temperature are documented.
- Either:
- the current config-level behavior is explicitly validated and documented, or
- self-check task execution is refactored to use a more appropriate task-/rail-level configuration.
- Tests cover the selected behavior.
- The implementation for input and output self-checks is consistent.
Requested by: @Pouyanpi
Summary
Track the use of
config.lowest_temperaturein self-check actions and evaluate whether temperature selection should remain a global config-level setting or become task-/rail-specific.Background
In PR #1874, the self-check implementation calls
run_self_check_task(...)withlowest_temperature=config.lowest_temperaturefrom the config object. This raised a review concern because self-check tasks can now be parameterized and chained, but temperature control is still sourced from a global config field.Relevant discussion:
Why this needs follow-up
Using a single config-level
lowest_temperaturemay be too coarse-grained for:Affected areas
nemoguardrails/library/self_check/input_check/actions.pynemoguardrails/library/self_check/output_check/actions.pynemoguardrails/library/self_check/utils.pylowest_temperaturebehavior for self-check railsProposed investigation
config.lowest_temperatureinto self-check execution.lowest_temperature:Acceptance criteria
lowest_temperatureare documented.Requested by: @Pouyanpi