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-agenty su módulo eraagent_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
argorix_agents.init(...)registra el agente, sus steps y sus evaluadores.- Los decoradores
@control(...)envuelven pasos sync y async. - El SDK evalúa cada paso en
prey enpost. - Según la decisión: bloquea (
ControlViolationError), sugiere steering (ControlSteerError) o deja pasar, y registra el evento runtime. - El backend deja trazabilidad por
agent_name,step,trace_idyspan_id.
Autenticación
app_numberen cada requestAuthorization: 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 detectadosGuardrails Log: eventos runtime y decisionesAI 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()devuelveAgentRegistrationyclient.evaluate()devuelveAgentEvaluationen vez dedict. El acceso por clave se mantiene (registration["agent"]).result.matchesahora sonControlMatch;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
- Versión actual:
0.2.0 - Historial:
CHANGELOG.md - Licencia:
LICENSE
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a8a1cfa83a67f1d389bf5f842801759f3e067ad191205aec4b2ce62c405a6108
|
|
| MD5 |
57f162905f125ce904ec60bed59ae80e
|
|
| BLAKE2b-256 |
94e680b04eb4c9f22181652517625b653d7aeb40fea453368ec83c6a31782180
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
argorix_guardrails_agent-0.2.0.tar.gz -
Subject digest:
a8a1cfa83a67f1d389bf5f842801759f3e067ad191205aec4b2ce62c405a6108 - Sigstore transparency entry: 2318464728
- Sigstore integration time:
-
Permalink:
argorixlabs/argorix-guardrails-agent@cfe7da76ec7c2b9c9ee01b8b9b6228c6326b1665 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/argorixlabs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@cfe7da76ec7c2b9c9ee01b8b9b6228c6326b1665 -
Trigger Event:
push
-
Statement type:
File details
Details for the file argorix_guardrails_agent-0.2.0-py3-none-any.whl.
File metadata
- Download URL: argorix_guardrails_agent-0.2.0-py3-none-any.whl
- Upload date:
- Size: 15.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4243a7159ef6fa56f002b320b4451f688590c47f82d6bcbd12824d8b74bd982
|
|
| MD5 |
26466581d5787d7f0790e77466e05ab7
|
|
| BLAKE2b-256 |
b62a82f118003e2008ced97aea4f66c1e480e90ba3d60c45fd97e9ccaca79b94
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
argorix_guardrails_agent-0.2.0-py3-none-any.whl -
Subject digest:
d4243a7159ef6fa56f002b320b4451f688590c47f82d6bcbd12824d8b74bd982 - Sigstore transparency entry: 2318464805
- Sigstore integration time:
-
Permalink:
argorixlabs/argorix-guardrails-agent@cfe7da76ec7c2b9c9ee01b8b9b6228c6326b1665 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/argorixlabs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@cfe7da76ec7c2b9c9ee01b8b9b6228c6326b1665 -
Trigger Event:
push
-
Statement type: