Aprovechando la Señal de Agencia Oculta (Â) de los LLM para Mejorar la Llamada de Herramientas

Mientras depuraba fallos del agente ReAct con Qwen3, un desarrollador descubrió que los estados ocultos justo antes de las llamadas a herramientas son linealmente separables de los estados sin herramientas con AUC > 0.94. Esta dirección en el espacio latente, llamada  (por "agencia"), existe en todos los tamaños de modelo desde 1.7B hasta 8B y predice llamadas a herramientas usando solo una sonda lineal.
Cómo usar la señal de agencia
Durante la inferencia, proyecta cada estado oculto en Â. Si la proyección supera un umbral θ, el modelo quiere llamar a una herramienta incluso si no lo expresa textualmente. Luego puedes forzar una llamada a herramienta.
# En tiempo de inferencia (pseudocódigo)
hidden_state = get_middle_layer_state(model, input_text)
proj = np.dot(hidden_state, Â)
if proj > threshold:
# El modelo quiere actuar → forzar llamada a herramienta
tool = choose_tool() # puede aprenderse o ser heurístico
result = execute_tool(tool)
else:
# Generación normal
output = model.generate(input_text)
Resultados de rendimiento
Probado en 40 tareas diversas (búsqueda, código, archivos, comunicación, datos) con modelos Qwen3:
- Qwen3-1.7B: 26.7% → 85% (+58% de mejora)
- Qwen3-8B: 52.5% → 76.3% (+23% de mejora)
El modo de fallo "sin herramientas" bajó del 43% al 2.6%. Los modelos más pequeños se benefician más porque su decodificación textual es más débil, pero la señal geométrica es igualmente fuerte.
Cómo extraer Â
Tres métodos:
- Opción 1: Desde tus propios rastros - Calcula la diferencia media normalizada entre estados ocultos con herramienta y sin herramienta
- Opción 2: Mediante prompts contrastivos - Ejecuta 15 pares de prompts (uno que requiere una herramienta, otro pasivo) a través de tu modelo y toma la diferencia media en la capa media
- Opción 3: Usa direcciones precalculadas - Usa las direcciones  extraídas para modelos Qwen3 compartidas en el repositorio
Implementación empaquetada
El descubrimiento se ha empaquetado en una biblioteca para fácil reutilización:
bash
pip install a-hat-optimizer
python
from a_hat_optimizer import AHat
# Extracción automática desde cualquier modelo HF en 1 línea
ahat = AHat.from_model("Qwen/Qwen3-8B")
# O cargar preextraída
ahat = AHat.from_file("my_ahat_dir/")
# Usar en tu agente
should_call, confidence = ahat.predict(hidden_state)
if should_call:
print(f"Forzar llamada a herramienta (confianza: {confidence:.2f})")
La biblioteca maneja extracción automática mediante prompts contrastivos, 4 estrategias de calibración (punto medio, F1, Youden, percentil), predicción por lotes, y guardar/cargar con metadatos incluyendo AUC e información de capas.
📖 Read the full source: r/LocalLLaMA
👀 Ver también

AgentSwarms: Parque de juegos práctico y gratuito para aprender IA agéntica
AgentSwarms ofrece 5 pistas, más de 40 lecciones y más de 30 agentes ejecutables de forma gratuita, sin necesidad de configuración ni claves API para empezar. Aprende construyendo desde indicaciones hasta enjambres multiagente.

idea-reality-mcp: El servidor MCP verifica la existencia de herramientas antes de que Claude escriba código
Un desarrollador construyó un servidor MCP llamado idea-reality-mcp que escanea repositorios de GitHub, discusiones de Hacker News, paquetes npm y PyPI antes de que Claude escriba cualquier código, devolviendo una puntuación de 'señal de realidad' de 0-100 que indica la competencia en el mercado.

Marco de Indicación Visual Reemplaza Indicaciones de Texto con una Sola Imagen para Claude AI
El Principio de Capacidad de Carga v9 es un marco estructural bidireccional que utiliza una única imagen de diagrama de flujo en lugar de indicaciones de texto para Claude AI. Proporciona diagnósticos estructurales o planes de construcción generativos basados en parámetros del sistema u objetivos.

Spectral: Captura Tráfico de Aplicaciones para Generar Servidores MCP para Agentes OpenClaw
Spectral es una herramienta de código abierto que captura el tráfico de cualquier aplicación, lo analiza con un LLM y genera un servidor MCP funcional, permitiendo que los agentes de OpenClaw llamen a la API real de la aplicación directamente en lugar de depender de la automatización del navegador.