Files
agent_contas/agent_framework_oci/docs/EXTERNAL_GUARDRAILS_JUDGES.md

1.4 KiB

External Guardrails and Judges SPI

agent_framework_oci supports agent-owned guardrails and judges without importing domain code into the core.

output:
  - code: ACME_POLICY
    type: external
    class: app.extensions.guardrails:AcmePolicyRail
judges:
  - name: acme_quality
    type: external
    class: app.extensions.judges:AcmeQualityJudge
    threshold: 0.7

Native entries remain unchanged. External synchronous evaluate() methods execute in worker threads via asyncio.to_thread; asynchronous methods execute concurrently on the framework event loop. Judges run concurrently with asyncio.gather, preserving YAML result order. Agent plugins should reuse the LLM supplied by the framework rather than instantiate a separate provider.

The core must not reference a concrete agent package, company, product, telecom identifier or domain-specific policy. Domain-specific variants belong to the agent and should receive distinct public codes/names.

Compatibility rule

Domain policies must not be replaced by cosmetically generic text inside the core while losing the original policy. The generic core implementation and the agent-specific implementation may coexist; the embedding agent explicitly selects its own code/name in YAML.

Legacy business validators should migrate to the agent domain. A temporary compatibility shim is acceptable for old imports, but new application code must import the agent-owned implementation.