feat: add ByoValidator for Bring Your Own Guardrail (BYOG) [AL-512] - #1833
Merged
Conversation
This was referenced Jul 29, 2026
feat: support ByoValidator (BYOG) on the decorator path [AL-512]
UiPath/uipath-langchain-python#1014
Merged
Add a BYOG validator for the @guardrail decorator so coded agents can run customer-managed validators (Azure Content Safety subscriptions, vendor connectors, or custom Integration Service connectors) configured under Admin -> AI Trust Layer -> Guardrails Configurations. - ByoValidator(validator_name, *, connection_id=None, parameters=None) references the admin configuration by byoValidatorName + optional IS connection id and builds a builtInValidator guardrail with validator_type="byo"; the guardrails service already forwards byoValidatorName/byoConnectionId on evaluate. - No stage restriction (supported_stages inherited empty): BYO validator capabilities are connector-defined and unknowable statically. - Parameters are passed through as raw ValidatorParameter values. - Export ByoValidator from decorators(.validators) and BYO_VALIDATOR_TYPE from uipath.platform.guardrails __all__. - Bump uipath-platform to 0.2.14 (0.2.13 is published on PyPI) and keep both uv.lock files in sync. Counterpart of the middleware flavor shipped in uipath-langchain-python (UiPathByoGuardrailMiddleware). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
apetraru-uipath
force-pushed
the
feat/byog-decorator-validator
branch
from
July 29, 2026 12:18
00423d2 to
82394ff
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
Adds Bring Your Own Guardrail (BYOG) support to the uipath-platform guardrails decorator framework by introducing a ByoValidator that builds a BuiltInValidatorGuardrail with validator_type="byo" and forwards the BYOG name/connection metadata on the existing wire contract.
Changes:
- Introduces
ByoValidatordecorator validator with BYOG name/connection and parameter passthrough. - Exposes
ByoValidator(andBYO_VALIDATOR_TYPE) through the public guardrails/decorators export surfaces. - Adds a dedicated test suite for
ByoValidatorbehavior and bumpsuipath-platformversion to0.2.14.
Reviewed changes
Copilot reviewed 6 out of 8 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| packages/uipath/uv.lock | Updates the editable uipath-platform version to 0.2.14 in the monorepo lock. |
| packages/uipath-platform/uv.lock | Updates the package version to 0.2.14 in the platform lock. |
| packages/uipath-platform/tests/services/test_guardrails_decorators.py | Adds TestByoValidator coverage for construction, serialization, parameter passthrough, stage behavior, and service forwarding. |
| packages/uipath-platform/src/uipath/platform/guardrails/decorators/validators/byo.py | Adds the new ByoValidator implementation that builds a BYO built-in validator guardrail. |
| packages/uipath-platform/src/uipath/platform/guardrails/decorators/validators/init.py | Re-exports ByoValidator from the validators package. |
| packages/uipath-platform/src/uipath/platform/guardrails/decorators/init.py | Re-exports ByoValidator from the decorators package. |
| packages/uipath-platform/src/uipath/platform/guardrails/init.py | Re-exports ByoValidator and adds BYO_VALIDATOR_TYPE to top-level guardrails exports. |
| packages/uipath-platform/pyproject.toml | Bumps uipath-platform version to 0.2.14. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+70
to
+74
| if not validator_name or not validator_name.strip(): | ||
| raise ValueError("validator_name must be a non-empty string") | ||
| self.validator_name = validator_name | ||
| self.connection_id = connection_id | ||
| self.parameters = list(parameters or []) |
|
apetraru-uipath
added a commit
to UiPath/uipath-langchain-python
that referenced
this pull request
Jul 29, 2026
Decorator-flavor Bring Your Own Guardrail support, pairing with the ByoValidator shipped in uipath (UiPath/uipath-python#1833): - Re-export ByoValidator from uipath_langchain.guardrails and the .guardrails.decorators shim via a guarded getattr, so the package keeps importing (ByoValidator is None) on uipath releases that predate it. TODO in-code: switch to a direct import once the dependency floor includes it. - Adapter hardening: the LLM/agent wrappers previously swallowed evaluator exceptions silently; they now log a WARNING with the guardrail name and traceback (still fail-open). This makes BYOG misconfiguration (PROVIDER_ERROR, removed/disabled config, feature flag off) visible. - Tests: adapter error-logging tests (always run) + ByoValidator-through- @guardrail tests (tool / plain function / validator reuse) that skip automatically until the installed uipath ships ByoValidator; verified passing locally against the uipath-python ByoValidator branch. - Docs: BYOG section under the decorator pattern in docs/guardrails.md, using placeholder validator/connection values and documenting the connector-defined `parameters` passthrough. - Sample: samples/joke-agent-byog-decorator starter (agent-factory AGENT scope + tool TOOL scope, bindings.json connection binding), with a commented-out Azure Content Safety `parameters` example. Bump to 0.14.18 (0.14.17 was taken by #1012 and is published on PyPI). Independent of the middleware-flavor PR (#1013); branched from main. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
apetraru-uipath
added a commit
to UiPath/uipath-langchain-python
that referenced
this pull request
Jul 29, 2026
Decorator-flavor Bring Your Own Guardrail support, pairing with the ByoValidator shipped in uipath (UiPath/uipath-python#1833): - Re-export ByoValidator from uipath_langchain.guardrails and the .guardrails.decorators shim via a guarded getattr, so the package keeps importing (ByoValidator is None) on uipath releases that predate it. TODO in-code: switch to a direct import once the dependency floor includes it. - Adapter hardening: the LLM/agent wrappers previously swallowed evaluator exceptions silently; they now log a WARNING with the guardrail name and traceback (still fail-open). This makes BYOG misconfiguration (PROVIDER_ERROR, removed/disabled config, feature flag off) visible. - Tests: adapter error-logging tests (always run) + ByoValidator-through- @guardrail tests (tool / plain function / validator reuse) that skip automatically until the installed uipath ships ByoValidator; verified passing locally against the uipath-python ByoValidator branch. - Docs: BYOG section under the decorator pattern in docs/guardrails.md, using placeholder validator/connection values and documenting the connector-defined `parameters` passthrough. - Sample: samples/joke-agent-byog-decorator starter (agent-factory AGENT scope + tool TOOL scope, bindings.json connection binding), with a commented-out Azure Content Safety `parameters` example. - Discovery: docs and sample point at `uip agent guardrails byo-configurations` (UiPath/cli#3298) rather than the raw agents_/api/designer/byog-guardrails endpoint, and note that the command needs an org-admin user session. Bump to 0.14.18 (0.14.17 was taken by #1012 and is published on PyPI). Independent of the middleware-flavor PR (#1013); branched from main. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
valentinabojan
approved these changes
Jul 30, 2026
apetraru-uipath
added a commit
to UiPath/uipath-langchain-python
that referenced
this pull request
Jul 30, 2026
Decorator-flavor Bring Your Own Guardrail support, pairing with the ByoValidator shipped in uipath (UiPath/uipath-python#1833): - Re-export ByoValidator from uipath_langchain.guardrails and the .guardrails.decorators shim via a guarded getattr, so the package keeps importing (ByoValidator is None) on uipath releases that predate it. TODO in-code: switch to a direct import once the dependency floor includes it. - Adapter hardening: the LLM/agent wrappers previously swallowed evaluator exceptions silently; they now log a WARNING with the guardrail name and traceback (still fail-open). This makes BYOG misconfiguration (PROVIDER_ERROR, removed/disabled config, BYOG not enabled) visible. - Tests: adapter error-logging tests (always run) + ByoValidator-through- @guardrail tests (tool / plain function / validator reuse) that skip automatically until the installed uipath ships ByoValidator; verified passing locally against the uipath-python ByoValidator branch. - Docs: BYOG section under the decorator pattern in docs/guardrails.md, using placeholder validator/connection values and documenting the connector-defined `parameters` passthrough. - Sample: samples/joke-agent-byog-decorator starter (agent-factory AGENT scope + tool TOOL scope, bindings.json connection binding), with a commented-out Azure Content Safety `parameters` example. - Discovery: docs and sample point at `uip agent guardrails list` for the validator name, connection id and the connector-defined `Parameters` schema, rather than the raw agents_/api/designer/byog-guardrails endpoint. - Scopes/stages: BYOG validators are not scope- or stage-restricted, so the developer chooses; here the scope is inferred from each decorated target. Bump to 0.14.18 (0.14.17 was taken by #1012 and is published on PyPI). Independent of the middleware-flavor PR (#1013); branched from main. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
apetraru-uipath
added a commit
to UiPath/uipath-langchain-python
that referenced
this pull request
Jul 30, 2026
Decorator-flavor Bring Your Own Guardrail support, pairing with the ByoValidator shipped in uipath (UiPath/uipath-python#1833): - Re-export ByoValidator from uipath_langchain.guardrails and the .guardrails.decorators shim via a guarded getattr, so the package keeps importing (ByoValidator is None) on uipath releases that predate it. TODO in-code: switch to a direct import once the dependency floor includes it. - Adapter hardening: the LLM/agent wrappers previously swallowed evaluator exceptions silently; they now log a WARNING with the guardrail name and traceback (still fail-open). This makes BYOG misconfiguration (PROVIDER_ERROR, removed/disabled config, BYOG not enabled) visible. - Tests: adapter error-logging tests (always run) + ByoValidator-through- @guardrail tests (tool / plain function / validator reuse) that skip automatically until the installed uipath ships ByoValidator; verified passing locally against the uipath-python ByoValidator branch. - Docs: BYOG section under the decorator pattern in docs/guardrails.md, using placeholder validator/connection values and documenting the connector-defined `parameters` passthrough. - Sample: samples/joke-agent-byog-decorator starter (agent-factory AGENT scope + tool TOOL scope, bindings.json connection binding), with a commented-out Azure Content Safety `parameters` example. - Discovery: docs and sample point at `uip agent guardrails list` for the validator name, connection id and the connector-defined `Parameters` schema, rather than the raw agents_/api/designer/byog-guardrails endpoint. - Scopes/stages: BYOG validators are not scope- or stage-restricted, so the developer chooses; here the scope is inferred from each decorated target. Bump to 0.14.19: 0.14.17 was taken by #1012 and is published on PyPI, and 0.14.18 belongs to the middleware flavor (#1013), which lands first. Independent of the middleware-flavor PR (#1013); branched from main. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
apetraru-uipath
added a commit
to UiPath/uipath-langchain-python
that referenced
this pull request
Jul 30, 2026
Decorator-flavor Bring Your Own Guardrail support, the counterpart to the UiPathByoGuardrailMiddleware shipped in #1013. - Re-export ByoValidator from uipath_langchain.guardrails and the .guardrails.decorators shim. `uipath-platform` is floored at >=0.2.14, the release that ships ByoValidator (UiPath/uipath-python#1833), so this is a plain import rather than a guarded getattr. - Adapter hardening: the LLM/agent wrappers previously swallowed evaluator exceptions silently; they now log a WARNING with the guardrail name and traceback (still fail-open). This makes BYOG misconfiguration (PROVIDER_ERROR, removed/disabled config, BYOG not enabled) visible. - Tests: adapter error-logging tests plus ByoValidator-through-@guardrail tests (tool / plain function / validator reuse), all running against the published uipath-platform - no conditional skips. - Docs: BYOG section under the decorator pattern in docs/guardrails.md. The admin prerequisite, discovery command and parameter-schema lookup are cross-referenced to the middleware section instead of repeated; only the decorator-specific notes are spelled out. - Sample: samples/joke-agent-byog-decorator (agent-factory AGENT scope + tool TOOL scope, bindings.json connection binding), with a commented-out Azure Content Safety `parameters` example. Cross-links the middleware sample as the sibling starter. - Replace the leftover tenant-specific validator name and connection GUID with the placeholder values used elsewhere, in this PR's tests and in tests/guardrails/middlewares/test_byo.py from #1013. - Bump to 0.14.19 (main is at 0.14.18, published on PyPI). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
apetraru-uipath
added a commit
to UiPath/uipath-langchain-python
that referenced
this pull request
Jul 30, 2026
Decorator-flavor Bring Your Own Guardrail support, the counterpart to the UiPathByoGuardrailMiddleware shipped in #1013. - Re-export ByoValidator from uipath_langchain.guardrails and the .guardrails.decorators shim. `uipath-platform` is floored at >=0.2.14, the release that ships ByoValidator (UiPath/uipath-python#1833), so this is a plain import rather than a guarded getattr. - Adapter hardening: the LLM/agent wrappers previously swallowed evaluator exceptions silently; they now log a WARNING with the guardrail name and traceback (still fail-open), via a shared _EVALUATION_FAILED_MSG constant rather than repeating the format string at each of the four call sites. This makes BYOG misconfiguration (PROVIDER_ERROR, removed/disabled config, BYOG not enabled) visible. - Tests: adapter error-logging tests plus ByoValidator-through-@guardrail tests (tool / plain function / validator reuse), all running against the published uipath-platform - no conditional skips. - Docs: BYOG section under the decorator pattern in docs/guardrails.md. The admin prerequisite, discovery command and parameter-schema lookup are cross-referenced to the middleware section instead of repeated; only the decorator-specific notes are spelled out. - Sample: samples/joke-agent-byog-decorator (agent-factory AGENT scope + tool TOOL scope, bindings.json connection binding), with a commented-out Azure Content Safety `parameters` example. Cross-links the middleware sample as the sibling starter. - Replace the leftover tenant-specific validator name and connection GUID with the placeholder values used elsewhere, in this PR's tests and in tests/guardrails/middlewares/test_byo.py from #1013. - Bump to 0.14.19 (main is at 0.14.18, published on PyPI). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
apetraru-uipath
added a commit
to UiPath/uipath-langchain-python
that referenced
this pull request
Jul 30, 2026
Decorator-flavor Bring Your Own Guardrail support, the counterpart to the UiPathByoGuardrailMiddleware shipped in #1013. - Re-export ByoValidator from uipath_langchain.guardrails and the .guardrails.decorators shim. `uipath-platform` is floored at >=0.2.14, the release that ships ByoValidator (UiPath/uipath-python#1833), so this is a plain import rather than a guarded getattr. - Adapter hardening: the LLM/agent wrappers previously swallowed evaluator exceptions silently; they now log a WARNING with the guardrail name and traceback (still fail-open), via a shared _EVALUATION_FAILED_MSG constant. This makes BYOG misconfiguration (PROVIDER_ERROR, removed/disabled config, BYOG not enabled) visible. - Tests: adapter error-logging tests plus ByoValidator-through-@guardrail tests (tool / plain function / validator reuse), all running against the published uipath-platform - no conditional skips. - Sample: merge both flavors into samples/joke-agent-bring-your-own-guardrail as ONE agent guarded twice from the same BYOG configuration -- the middleware logs on AGENT scope (PRE_AND_POST, LogAction) while the decorator blocks on LLM scope (PRE, BlockAction on a create_llm factory), so a harmful topic is first logged and then blocked before the model is invoked. The separate joke-agent-byog-decorator sample is removed. - Docs: BYOG section under the decorator pattern in docs/guardrails.md, cross-referencing the middleware section for the shared prerequisite and discovery steps. Discovery now uses `uip agent guardrails list --byo`, whose entries carry ByoValidatorName / ByoConnectionId / ByoConnectorKey and the connector-defined Parameters schema. - Replace the leftover tenant-specific validator name and connection GUID with the placeholder values used elsewhere, in this PR's tests and in tests/guardrails/middlewares/test_byo.py from #1013. - Bump to 0.14.19 (main is at 0.14.18, published on PyPI). Verified live on alpha against a real BYOG harmful-content configuration: benign topic evaluates on both flavors (agent PRE, LLM PRE per model call, agent POST) and returns a joke; harmful topic is logged by the agent-scope guardrail, then blocked by the LLM-scope guardrail before chat/completions, with the vendor verdict "Harmful content detected: Violence (severity 4)". Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
apetraru-uipath
added a commit
to UiPath/uipath-langchain-python
that referenced
this pull request
Jul 30, 2026
Decorator-flavor Bring Your Own Guardrail support, the counterpart to the UiPathByoGuardrailMiddleware shipped in #1013. - Re-export ByoValidator from uipath_langchain.guardrails and the .guardrails.decorators shim. `uipath-platform` is floored at >=0.2.14, the release that ships ByoValidator (UiPath/uipath-python#1833), so this is a plain import rather than a guarded getattr. - Adapter hardening: the LLM/agent wrappers previously swallowed evaluator exceptions silently; they now log a WARNING with the guardrail name and traceback (still fail-open), via a shared _EVALUATION_FAILED_MSG constant. This makes BYOG misconfiguration (PROVIDER_ERROR, removed/disabled config, BYOG not enabled) visible. - Tests: adapter error-logging tests plus ByoValidator-through-@guardrail tests (tool / plain function / validator reuse), all running against the published uipath-platform - no conditional skips. - Parity suite: new scenario 12 (test_byog_agent_block) runs for BOTH flavors and asserts they deliver the same byo wire contract to the service (validator_type="byo", byoValidatorName, byoConnectionId) and block identically on a failing verdict; both parity mock agents gain an "Agent BYOG Detection" guardrail (AGENT scope, PRE, BlockAction). - Sample: merge both flavors into samples/joke-agent-bring-your-own-guardrail as ONE agent guarded twice from the same BYOG configuration -- the middleware logs on AGENT scope (PRE_AND_POST, LogAction) while the decorator blocks on LLM scope (PRE, BlockAction on a create_llm factory), so a harmful topic is first logged and then blocked before the model is invoked. The separate joke-agent-byog-decorator sample is removed. - Docs: BYOG section under the decorator pattern in docs/guardrails.md, cross-referencing the middleware section for the shared prerequisite and discovery steps. Discovery now uses `uip agent guardrails list --byo`, whose entries carry ByoValidatorName / ByoConnectionId / ByoConnectorKey and the connector-defined Parameters schema. - Replace the leftover tenant-specific validator name and connection GUID with the placeholder values used elsewhere, in this PR's tests and in tests/guardrails/middlewares/test_byo.py from #1013. - Bump to 0.14.20 (0.14.19 was taken by #1008 and is published on PyPI). Verified live on alpha against a real BYOG harmful-content configuration: benign topic evaluates on both flavors (agent PRE, LLM PRE per model call, agent POST) and returns a joke; harmful topic is logged by the agent-scope guardrail, then blocked by the LLM-scope guardrail before chat/completions, with the vendor verdict "Harmful content detected: Violence (severity 4)". Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
apetraru-uipath
added a commit
to UiPath/uipath-langchain-python
that referenced
this pull request
Jul 31, 2026
Decorator-flavor Bring Your Own Guardrail support, the counterpart to the UiPathByoGuardrailMiddleware shipped in #1013. - Re-export ByoValidator from uipath_langchain.guardrails and the .guardrails.decorators shim. `uipath-platform` is floored at >=0.2.14, the release that ships ByoValidator (UiPath/uipath-python#1833), so this is a plain import rather than a guarded getattr. - Adapter hardening: the LLM/agent wrappers previously swallowed evaluator exceptions silently; they now log a WARNING with the guardrail name and traceback (still fail-open), via a shared _EVALUATION_FAILED_MSG constant. This makes BYOG misconfiguration (PROVIDER_ERROR, removed/disabled config, BYOG not enabled) visible. - Tests: adapter error-logging tests plus ByoValidator-through-@guardrail tests (tool / plain function / validator reuse), all running against the published uipath-platform - no conditional skips. - Parity suite: new scenario 12 (test_byog_agent_block) runs for BOTH flavors and asserts they deliver the same byo wire contract to the service (validator_type="byo", byoValidatorName, byoConnectionId) and block identically on a failing verdict; both parity mock agents gain an "Agent BYOG Detection" guardrail (AGENT scope, PRE, BlockAction). - Sample: merge both flavors into samples/joke-agent-bring-your-own-guardrail as ONE agent guarded twice from the same BYOG configuration -- the middleware logs on AGENT scope (PRE_AND_POST, LogAction) while the decorator blocks on LLM scope (PRE, BlockAction on a create_llm factory), so a harmful topic is first logged and then blocked before the model is invoked. The separate joke-agent-byog-decorator sample is removed. - No solution binding for the BYOG connection (review feedback): the connection is resolved server-side from the BYOG configuration, so the sample ships no bindings.json and the docs no longer point ByoConnectorKey at a connection binding. - Docs: BYOG section under the decorator pattern in docs/guardrails.md, cross-referencing the middleware section for the shared prerequisite and discovery steps. Discovery uses `uip agent guardrails list --byo`, whose entries carry ByoValidatorName / ByoConnectionId and the connector-defined Parameters schema. - Replace the leftover tenant-specific validator name and connection GUID with the placeholder values used elsewhere, in this PR's tests and in tests/guardrails/middlewares/test_byo.py from #1013. - Bump to 0.14.20 (0.14.19 was taken by #1008 and is published on PyPI). Verified live on alpha against a real BYOG harmful-content configuration: benign topic evaluates on both flavors (agent PRE, LLM PRE per model call, agent POST) and returns a joke; harmful topic is logged by the agent-scope guardrail, then blocked by the LLM-scope guardrail before chat/completions, with the vendor verdict "Harmful content detected: Violence (severity 4)". Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



What changed?
Adds Bring Your Own Guardrail (BYOG) support to the
@guardraildecorator framework inuipath-platform:ByoValidator(packages/uipath-platform/src/uipath/platform/guardrails/decorators/validators/byo.py): references an admin-created BYOG configuration (Admin → AI Trust Layer → Guardrails Configurations) byvalidator_name(byoValidatorName) + recommended Integration Serviceconnection_id, and builds abuiltInValidatorguardrail withvalidator_type="byo". TheGuardrailsService.evaluate_guardrailwire layer already forwardsbyoValidatorName/byoConnectionId, so no service changes are needed.supported_stagesinherited empty): BYO validator capabilities are connector-defined and unknowable statically; an unsupported scope/stage surfaces asPROVIDER_ERRORat evaluation time.ValidatorParametervalues.ByoValidatorfromuipath.platform.guardrails.decorators(.validators)anduipath.platform.guardrails;BYO_VALIDATOR_TYPEadded touipath.platform.guardrails.__all__.Usage:
This is the decorator-flavor counterpart of the middleware flavor shipped in
uipath-langchain-python(UiPathByoGuardrailMiddleware, UiPath/uipath-langchain-python#1013). The two PRs are independent.How has this been tested?
TestByoValidatorsuite inpackages/uipath-platform/tests/services/test_guardrails_decorators.py(11 tests): construction validation,byosentinel +byoValidatorName/byoConnectionIdalias serialization, parameter passthrough, stage permissiveness, andrun()forwarding the BYO guardrail toevaluate_guardrail.uipath-platformsuite: 1609 passed, 7 skipped (pre-existing credential-gated integration tests).ruff check,ruff format --check, andmypy src testsclean.test_guardrails_service.pyalready pin the evaluate payload contract.Are there any breaking changes?
(Server-side, BYOG evaluation is gated by the tenant's
EnableByoGuardrailsfeature flag; this SDK change is purely additive.)🤖 Generated with Claude Code