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

Infracost réduit l'utilisation des tokens Claude de 79% en reconcevant l'interface CLI pour les agents IA
Infracost a repensé son CLI pour les appelants d'agents IA, réduisant les tokens de sortie de Claude de 79 % et le coût API de 67 % par rapport à une référence Claude seule. Les axes clés : prédicat pushdown dans le CLI et un format de sortie économe en tokens.

Objectif pour Claude Code : tâches persistantes avec examen contradictoire
Une commande /goal pour Claude Code qui le maintient sur une tâche longue à travers de nombreux tours, avec une session Claude distincte et facultative qui examine le résultat final pour éviter une complétion prématurée.

Pipeline open-source transforme le flux de travail Claude Code en compétences réutilisables
Un développeur qui a utilisé Claude Code quotidiennement pendant 9 mois a open-sourcé un pipeline qui structure le développement de fonctionnalités avec des points de contrôle comme la documentation fonctionnelle, la documentation technique, l'estimation de la complexité et les vérifications de sécurité. Le pipeline inclut des points d'entrée /new-feature et /bug-fix qui guident la mise en œuvre.

Nexus Desktop App automatise la configuration MCP pour la gestion de campagnes TTRPG
Fatigué de modifier manuellement le fichier de configuration de Claude Desktop pour chaque MCP ? Nexus installe et configure Archivist, Foundry VTT, Notion, Obsidian et NotebookLM pour la gestion de campagnes TTRPG.