Proyectos / Agent Tool Capabilities

Agent Tool Capabilities

Autorización de herramientas por argumento, recurso y vencimiento, con presupuestos atómicos de llamadas y bytes y registros verificables de rechazo y revocación.

Autor: · Python 3.11.13 · Licencia: MIT

Ficha publicada: · Ficha actualizada:

Repositorio · Evidencia original · Release v1.0.0

Problema y utilidad para agentes

El nombre de una herramienta no limita sus argumentos, su acceso a recursos ni su costo. Las solicitudes concurrentes pueden superar un presupuesto si la autorización no se aplica antes de producir efectos.

El agente recibe únicamente autoridad de ejecución; un anfitrión confiable conserva la emisión de permisos, la revocación y el registro de herramientas.

Arquitectura

  1. Emitir permisos acotados. Tokens de portador opacos y locales al proceso remiten a alcances inmutables de herramienta, argumentos, recursos virtuales y vencimiento.
  2. Reservar de forma atómica. Un bloqueo compartido de admisión valida el alcance y la revocación, y reserva tanto llamadas como bytes de entrada antes de ejecutar una función.
  3. Registrar decisiones. Los registros ordenados e inmutables omiten tokens y valores de argumentos. Los rechazos dejan intacto el almacén de notas sintético.

Qué demuestra

  • Comprobaciones atómicas de presupuesto en dos pruebas de concurrencia con ocho hilos.
  • Restricciones estrictas de argumentos y normalización de recursos antes de ejecutar las funciones.
  • Orden de revocación con tratamiento explícito del trabajo ya admitido.

Resultados publicados

El experimento local fijo contiene 25 casos secuenciales, dos pruebas de concurrencia con 64 intentos y una revocación durante la ejecución controlada mediante eventos.

Los casos secuenciales se reproducen con herramientas de notas propias que operan en memoria. La evidencia de concurrencia registra admisiones, rechazos y efectos sobre los recursos; el verificador comprueba la aritmética sin reproducir la planificación histórica de los hilos.

Comprobaciones de admisión y revocación

Evidencia original ·
ComprobaciónResultado observado
Controles secuenciales permitidos3/3 admitidos
Casos adversariales o con presupuesto agotado22/22 rechazados
Llamadas rechazadas que modificaron el almacén0/22
Concurrencia sobre el presupuesto de llamadas, 64 intentos7 admitidos, 57 rechazados
Concurrencia sobre el presupuesto de bytes, 64 intentos7 admitidos, 57 rechazados
RevocaciónLa llamada admitida terminó; la posterior fue rechazada

El experimento confirma estos casos sintéticos, no una resistencia general a ataques. No afirma resultados de capacidad de procesamiento, latencia ni auditoría de seguridad independiente.

Reproducir

Python 3.11 o posterior, sin dependencias de ejecución.

Ejecutá las mediciones en una carpeta de salida nueva y los trabajos pesados de a uno. Dentro de la serie original de proyectos, usá el ejecutor compartido benchmark_lock.py. Los comandos siguientes usan sintaxis de shell POSIX.

Verificar la evidencia guardada

git clone https://github.com/lucioduran/agent-tool-capabilities.git
cd agent-tool-capabilities
git checkout f4d3df5ea1399da44f6eb90050933b32d3782918
python -m experiments.verify results/reference.json

Repetir el experimento local

python -m experiments.reproduce --output build/new-run.json
python -m experiments.verify build/new-run.json

Alcance y límites

  • El código Python arbitrario dentro del proceso intermediario puede eludir este límite de autorización de la aplicación. No es un entorno aislado por el sistema operativo.
  • El robo de un token de portador transfiere la autoridad restante. Los permisos son locales al proceso y no tienen autenticación, persistencia ni aplicación distribuida.
  • Las rutas de recursos virtuales no aplican límites sobre enlaces simbólicos del sistema de archivos, redirecciones de URL ni el sistema operativo.
  • La revocación no cancela llamadas admitidas. Los fallos consumen presupuesto y pueden dejar efectos parciales. Los registros de auditoría están en memoria, no tienen límite y no están firmados.

Fuentes y revisión

El informe de referencia registra la fecha, la revisión de implementación sin cambios locales, los hashes de fuentes y el hardware. La release agrega archivos de publicación; los hashes establecen consistencia, no autenticidad.