Documentación

Agent Harness

Control de acceso basado en roles, presupuestos y gobernanza para agentes de IA con lean-ctx.

El Agent Harness controla lo que los agentes de IA pueden hacer, cuánto pueden gastar y qué herramientas pueden usar. Aplica control de acceso basado en roles con seguimiento de presupuesto en tiempo real.


¿Qué es el Agent Harness?

El Agent Harness es la capa de gobernanza de lean-ctx. Asigna roles a los agentes, aplica políticas de herramientas y rastrea presupuestos (tokens, invocaciones de shell, costo). Cuando se acercan los límites, se emiten advertencias; cuando se exceden, las herramientas se bloquean.


Roles integrados

lean-ctx incluye 5 roles integrados. Cada rol define acceso a herramientas, política de shell y límites de recursos. El rol predeterminado es coder.

coder

Acceso completo a herramientas para implementación. Presupuesto de 200K tokens, 100 invocaciones de shell, límite de costo de $5.

reviewer

Acceso de solo lectura para revisión de código. Sin shell, sin edición. 150K tokens, límite de costo de $3.

debugger

Enfocado en depuración con acceso shell extendido. 150K tokens, 200 invocaciones de shell, límite de costo de $5.

ops

Operaciones de infraestructura y CI/CD. Intensivo en shell, sin edición. 100K tokens, 300 invocaciones de shell, límite de costo de $3.

admin

Acceso sin restricciones con límites altos. 500K tokens, 500 invocaciones de shell, límite de costo de $50.


Aplicación de presupuestos

Cada llamada de herramienta se rastrea contra el presupuesto del rol activo. El presupuesto tiene tres dimensiones:

Budget[coder]: tokens 50000/200000 (25%) | shell 5/100 (5%) | cost $0.50/$5.00 (10%) → OK

Dimensiones del presupuesto

  • Tokens de contexto - tokens totales consumidos por las salidas de herramientas
  • Invocaciones de shell - número de llamadas ctx_shell / ctx_execute
  • Costo estimado - costo aproximado en USD de la sesión

Señales de presupuesto

El harness emite señales basadas en el consumo del presupuesto:

  • OK - uso por debajo del umbral de advertencia (predeterminado: 80%)
  • WARNING - uso entre los umbrales de advertencia (80%) y bloqueo (100%). Se agrega una advertencia a las respuestas de herramientas.
  • EXHAUSTED - uso en o por encima del umbral de bloqueo. Las llamadas de herramientas posteriores se bloquean (excepto ctx_session).

Políticas de herramientas

Cada rol define qué herramientas están permitidas y denegadas. Las herramientas denegadas siempre anulan las permitidas. Use * como comodín.

[tools]
allowed = ["ctx_read", "ctx_search", "ctx_tree", "ctx_session"]
denied = ["ctx_edit", "ctx_shell"]

Política de shell

  • track - shell permitido, los comandos se registran (predeterminado)
  • compress - shell permitido, la salida se comprime
  • deny - acceso shell completamente bloqueado

Eventos del Harness

El Agent Harness emite eventos estructurados al bus de eventos y al log JSONL:

  • BudgetWarning - una dimensión del presupuesto cruzó el umbral de advertencia
  • BudgetExhausted - una dimensión del presupuesto está completamente consumida
  • PolicyViolation - un agente intentó usar una herramienta bloqueada
  • RoleChanged - el rol activo se cambió en tiempo de ejecución

Roles personalizados

Cree archivos TOML en .lean-ctx/roles/ (local al proyecto) o ~/.lean-ctx/roles/ (global). Los roles soportan herencia mediante el campo inherits.

[role]
name = "security-auditor"
inherits = "reviewer"
description = "Security-focused code review"
shell_policy = "deny"

[tools]
allowed = ["ctx_read", "ctx_search", "ctx_tree", "ctx_review", "ctx_session"]
denied = ["ctx_edit", "ctx_shell", "ctx_execute"]

[limits]
max_context_tokens = 100000
max_shell_invocations = 0
max_cost_usd = 2.0

Verifique el rol actual con ctx_session action=role. Cambie de rol con ctx_session action=role value=<name>.


Activar un rol

Establezca la variable de entorno LEAN_CTX_ROLE:

export LEAN_CTX_ROLE=reviewer

O cambie en tiempo de ejecución vía MCP:

ctx_session action=role value=debugger

Verificar estado del presupuesto:

ctx_session action=budget