Exploiter le Signal d'Agence Cachée des LLM (Â) pour un Meilleur Appel d'Outils

En déboguant les échecs d'agent ReAct avec Qwen3, un développeur a découvert que les états cachés juste avant les appels d'outils sont linéairement séparables des états sans outil avec une AUC > 0,94. Cette direction dans l'espace latent, appelée  (pour "agentivité"), existe à travers différentes tailles de modèles de 1,7B à 8B et prédit les appels d'outils en utilisant simplement une sonde linéaire.
Comment utiliser le signal d'agentivité
Pendant l'inférence, projetez chaque état caché sur Â. Si la projection dépasse un seuil θ, le modèle souhaite appeler un outil même s'il ne l'exprime pas textuellement. Vous pouvez alors forcer un appel d'outil.
# Au moment de l'inférence (pseudo-code)
hidden_state = get_middle_layer_state(model, input_text)
proj = np.dot(hidden_state, Â)
if proj > threshold:
# Le modèle veut agir → forcer l'appel d'outil
tool = choose_tool() # peut être appris ou heuristique
result = execute_tool(tool)
else:
# Génération normale
output = model.generate(input_text)
Résultats de performance
Testé sur 40 tâches diverses (recherche, code, fichier, communication, données) avec les modèles Qwen3 :
- Qwen3-1.7B : 26,7 % → 85 % (+58 % d'amélioration)
- Qwen3-8B : 52,5 % → 76,3 % (+23 % d'amélioration)
Le mode d'échec "sans outil" est passé de 43 % à 2,6 %. Les modèles plus petits bénéficient davantage car leur décodage textuel est plus faible, mais le signal géométrique est tout aussi fort.
Comment extraire Â
Trois méthodes :
- Option 1 : À partir de vos propres traces - Calculez la différence moyenne normalisée entre les états cachés avec outil et sans outil
- Option 2 : Via des invites contrastives - Exécutez 15 paires d'invites (une nécessitant un outil, une passive) dans votre modèle et prenez la différence moyenne au niveau de la couche intermédiaire
- Option 3 : Utilisez des directions pré-calculées - Utilisez les directions  extraites pour les modèles Qwen3 partagées dans le dépôt
Implémentation empaquetée
La découverte a été empaquetée dans une bibliothèque pour une réutilisation facile :
bash
pip install a-hat-optimizer
python
from a_hat_optimizer import AHat
# Extraction automatique depuis n'importe quel modèle HF en 1 ligne
ahat = AHat.from_model("Qwen/Qwen3-8B")
# Ou charger pré-extrait
ahat = AHat.from_file("my_ahat_dir/")
# Utiliser dans votre agent
should_call, confidence = ahat.predict(hidden_state)
if should_call:
print(f"Forcer l'appel d'outil (confiance : {confidence:.2f})")
La bibliothèque gère l'extraction automatique via des invites contrastives, 4 stratégies de calibration (point médian, F1, Youden, percentile), la prédiction par lots, et la sauvegarde/chargement avec des métadonnées incluant l'AUC et les informations de couche.
📖 Lire la source complète : r/LocalLLaMA
👀 See Also

Déployer les artefacts de design Claude sur des sites Web en direct avec Teenyapp
Teenyapp fournit un service d'hébergement que Claude Design peut utiliser directement depuis le chat via un lien de jeton d'agent, permettant le déploiement autonome d'artefacts avec support backend.

Claude Code Hook surveille l'accumulation des travaux en cours dans les flux de travail de codage IA
Un développeur a créé un crochet UserPromptSubmit pour Claude Code qui met en lumière l'accumulation de travaux en cours à travers quatre files d'attente : modifications non validées dépassant 200 lignes, trois commits ou plus non poussés, commits poussés sans fichiers de changelog, et PRs de release ouvertes depuis plus de 24 heures.

engram : plugin de mémoire Claude avec capture à seuil de saillance et cycles de rêve
engram est un plugin de mémoire pour Claude qui filtre les observations au moment de la capture en utilisant 5 dimensions de saillance, ne conservant que les événements à score élevé dans SQLite sans appels LLM pour le scoring. Il propose une injection automatique via 5 crochets et des cycles de rêve qui extraient les workflows récurrents à la fin de la session.

Fondateur d'AgentMail détaille l'intégration native aux agents après qu'OpenClaw ait exposé le blocage CAPTCHA
AgentMail, une API d'e-mail pour agents IA, a reconstruit son processus d'intégration après que son propre agent OpenClaw a échoué à un CAPTCHA Cloudflare. Le nouveau système propose un seul point de terminaison REST pour la création de compte programmatique tout en maintenant l'intervention humaine pour la vérification.