Skip to main content

Argorix Agent Guardrails SDK for Python

SDK oficial para instrumentar agentes, tools y pasos LLM con Argorix Agent Guardrails.

pip install argorix-guardrails-agent
import argorix_agents
from argorix_agents import ControlSteerError, ControlViolationError, control

Rebranding. Este paquete se llamaba governanceai-guardrails-agent y su módulo era agent_control. Ambos siguen publicados como shim de compatibilidad. Ver Migración.

API cubierta

Endpoint Método del SDK
POST /v1/agent-guardrails/runtime/agents/init init(), AgentGuardrailsClient.init_agent()
GET /v1/agent-guardrails/runtime/agents/{agent_name}/controls list_agent_controls()
POST /v1/agent-guardrails/runtime/evaluate @control(), evaluate_step(), client.evaluate()
POST /v1/agent-guardrails/runtime/evaluate/stream client.evaluate_stream(), client.evaluate_streamed_result()
POST /v1/agent-guardrails/runtime/events client.record_event()

Los guardrails clásicos (/v1/guardrails/*) viven en el paquete argorix, del que este depende.

Flujo que resuelve

  1. argorix_agents.init(...) registra el agente, sus steps y sus evaluadores.
  2. Los decoradores @control(...) envuelven pasos sync y async.
  3. El SDK evalúa cada paso en pre y en post.
  4. Según la decisión: bloquea (ControlViolationError), sugiere steering (ControlSteerError) o deja pasar, y registra el evento runtime.
  5. El backend deja trazabilidad por agent_name, step, trace_id y span_id.

Autenticación

  • app_number en cada request
  • Authorization: Bearer <APP_API_KEY>
Variable Uso Fallback legado
ARGORIX_API_URL base_url ARGORIX_BASE_URL, AGENT_CONTROL_URL, GOVERNANCE_AI_URL
ARGORIX_APP_NUMBER app_number AGENT_CONTROL_APP_NUMBER, APP_NUMBER
ARGORIX_APP_API_KEY app_api_key AGENT_CONTROL_APP_API_KEY, APP_API_KEY

Sin base_url explícito ni variable de entorno, cae a http://127.0.0.1:8001 para desarrollo local.

Quick start

import asyncio

import argorix_agents
from argorix_agents import ControlViolationError, control


@control("query_db", step_type="tool")
async def query_db(query: str, context: dict | None = None) -> str:
    return f"Executed: {query}"


async def main() -> None:
    argorix_agents.init(
        agent_name="support_bot",
        agent_description="Customer support automation",
        base_url="https://api.argorix.com",
        app_number=123456,
        app_api_key="ax_live_replace_me",
        default_metadata={"environment": "production"},
    )

    try:
        print(await query_db("SELECT * FROM tickets", context={"tenant": "acme"}))
    except ControlViolationError as exc:
        print(f"Blocked by {exc.control_name}: {exc.message}")


asyncio.run(main())

Evaluación manual

Cuando el decorador no encaja (frameworks con su propio wrapping, orquestadores externos), evalúa el paso a mano:

evaluation = argorix_agents.evaluate_step(
    stage="pre",
    step={"type": "tool", "name": "lookup_booking", "input": {"email": "a@b.com"}},
)

if evaluation.denied:
    raise RuntimeError(evaluation.matches[0].message)

Streaming (SSE)

client = argorix_agents.current_client()

for event in client.evaluate_stream(
    agent_name="support_bot",
    stage="pre",
    step={"type": "llm", "name": "chat", "input": prompt},
):
    print(event.event, event.data.get("status", ""))

evaluate_streamed_result(...) consume el stream y devuelve la AgentEvaluation final; levanta ArgorixAgentError si llega un evento error o si el stream cierra sin result.

Modelos de respuesta

AgentEvaluation: overall_decision, allowed / denied, requires_steering, confidence, evaluated_controls, matches, non_matches, errors, raw, más matches_with_action(action).

ControlMatch: control_id, control_name, action, evaluator_name, selector_path, matched, confidence, message, error, metadata y steering_message.

AgentRegistration: created, agent, agent_name, controls, raw.

Los tres aceptan acceso tipo diccionario para leer campos que el control plane agregue después de esta versión.

Errores, timeout y retry

AgentGuardrailsClient acepta timeout_seconds, max_retries, retry_backoff_seconds y retry_status_codes. Los fallos levantan ArgorixAgentError (alias: AgentControlError) con status_code y response_body.

Cómo se refleja en la consola

  • Guardrails for Agents: catálogo, bindings y agentes detectados
  • Guardrails Log: eventos runtime y decisiones
  • AI Applications > Risk & Governance: consolidación de señal agentic y runtime

Migración desde agent_control

pip uninstall governanceai-guardrails-agent
pip install argorix-guardrails-agent
Antes Ahora
import agent_control import argorix_agents
agent_control.AgentControlClient argorix_agents.AgentGuardrailsClient
AgentControlError ArgorixAgentError
AGENT_CONTROL_URL ARGORIX_API_URL

Los nombres viejos siguen exportados como alias desde argorix_agents. Cambios de comportamiento a revisar:

  • init() devuelve AgentRegistration y client.evaluate() devuelve AgentEvaluation en vez de dict. El acceso por clave se mantiene (registration["agent"]).
  • result.matches ahora son ControlMatch; match["action"] sigue funcionando.

El paquete governanceai-guardrails-agent 0.2.0 reexporta este SDK —incluido el mismo objeto state—, así que mezclar ambos imports en un mismo proceso es consistente.

Desarrollo

pip install -e ./sdk/python -e ./sdk/python-agents
python -m pytest ./sdk/python-agents/tests
python -m build ./sdk/python-agents

Semver y changelog

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

argorix_guardrails_agent-0.2.0.tar.gz (19.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

argorix_guardrails_agent-0.2.0-py3-none-any.whl (15.7 kB view details)

Uploaded Python 3

File details

Details for the file argorix_guardrails_agent-0.2.0.tar.gz.

File metadata

  • Download URL: argorix_guardrails_agent-0.2.0.tar.gz
  • Upload date:
  • Size: 19.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for argorix_guardrails_agent-0.2.0.tar.gz
Algorithm Hash digest
SHA256 a8a1cfa83a67f1d389bf5f842801759f3e067ad191205aec4b2ce62c405a6108
MD5 57f162905f125ce904ec60bed59ae80e
BLAKE2b-256 94e680b04eb4c9f22181652517625b653d7aeb40fea453368ec83c6a31782180

See more details on using hashes here.

Provenance

The following attestation bundles were made for argorix_guardrails_agent-0.2.0.tar.gz:

Publisher: publish-pypi.yml on argorixlabs/argorix-guardrails-agent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file argorix_guardrails_agent-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for argorix_guardrails_agent-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d4243a7159ef6fa56f002b320b4451f688590c47f82d6bcbd12824d8b74bd982
MD5 26466581d5787d7f0790e77466e05ab7
BLAKE2b-256 b62a82f118003e2008ced97aea4f66c1e480e90ba3d60c45fd97e9ccaca79b94

See more details on using hashes here.

Provenance

The following attestation bundles were made for argorix_guardrails_agent-0.2.0-py3-none-any.whl:

Publisher: publish-pypi.yml on argorixlabs/argorix-guardrails-agent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page