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.
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
- Emitir permisos acotados. Tokens de portador opacos y locales al proceso remiten a alcances inmutables de herramienta, argumentos, recursos virtuales y vencimiento.
- 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.
- 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
| Comprobación | Resultado observado |
|---|---|
| Controles secuenciales permitidos | 3/3 admitidos |
| Casos adversariales o con presupuesto agotado | 22/22 rechazados |
| Llamadas rechazadas que modificaron el almacén | 0/22 |
| Concurrencia sobre el presupuesto de llamadas, 64 intentos | 7 admitidos, 57 rechazados |
| Concurrencia sobre el presupuesto de bytes, 64 intentos | 7 admitidos, 57 rechazados |
| Revocación | La 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.jsonRepetir el experimento local
python -m experiments.reproduce --output build/new-run.json
python -m experiments.verify build/new-run.jsonAlcance 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.
- Revisión consultada:
f4d3df5ea1399da44f6eb90050933b32d3782918 - Revisión registrada por el experimento:
7397b9c40f0f284c108f584966b8d6c803ebebcd - Fecha del informe (UTC):
- Release publicada: v1.0.0 ·