Explorando o Sinal de Agência Oculta (Â) de LLMs para Melhor Chamada de Ferramentas

Durante a depuração de falhas do agente ReAct com o Qwen3, um desenvolvedor descobriu que os estados ocultos imediatamente antes das chamadas de ferramentas são linearmente separáveis dos estados sem ferramentas com AUC > 0,94. Essa direção no espaço latente, chamada  (de "agência"), existe em todos os tamanhos de modelo, de 1,7B a 8B, e prevê chamadas de ferramentas usando apenas uma sonda linear.
Como Usar o Sinal de Agência
Durante a inferência, projete cada estado oculto em Â. Se a projeção exceder um limite θ, o modelo quer chamar uma ferramenta mesmo que não a expresse textualmente. Você pode então forçar uma chamada de ferramenta.
# No momento da inferência (pseudo-código)
hidden_state = get_middle_layer_state(model, input_text)
proj = np.dot(hidden_state, Â)
if proj > threshold:
# Modelo quer agir → forçar chamada de ferramenta
tool = choose_tool() # pode ser aprendido ou heurístico
result = execute_tool(tool)
else:
# Geração normal
output = model.generate(input_text)
Resultados de Desempenho
Testado em 40 tarefas diversas (busca, código, arquivo, comunicação, dados) com modelos Qwen3:
- Qwen3-1.7B: 26,7% → 85% (+58% de ganho)
- Qwen3-8B: 52,5% → 76,3% (+23% de ganho)
O modo de falha "sem ferramenta" caiu de 43% para 2,6%. Modelos menores se beneficiam mais porque sua decodificação textual é mais fraca, mas o sinal geométrico é igualmente forte.
Como Extrair Â
Três métodos:
- Opção 1: A partir de seus próprios rastros - Calcule a diferença média normalizada entre estados ocultos com e sem ferramenta
- Opção 2: Via prompts contrastivos - Execute 15 pares de prompts (um exigindo uma ferramenta, outro passivo) através do seu modelo e tome a diferença média na camada intermediária
- Opção 3: Use direções pré-computadas - Use as direções  extraídas para modelos Qwen3 compartilhadas no repositório
Implementação Empacotada
A descoberta foi empacotada em uma biblioteca para fácil reutilização:
bash
pip install a-hat-optimizer
python
from a_hat_optimizer import AHat
# Extração automática de qualquer modelo HF em 1 linha
ahat = AHat.from_model("Qwen/Qwen3-8B")
# Ou carregue pré-extraído
ahat = AHat.from_file("my_ahat_dir/")
# Use no seu agente
should_call, confidence = ahat.predict(hidden_state)
if should_call:
print(f"Forçar chamada de ferramenta (confiança: {confidence:.2f})")
A biblioteca lida com extração automática via prompts contrastivos, 4 estratégias de calibração (ponto médio, F1, Youden, percentil), previsão em lote e salvar/carregar com metadados incluindo AUC e informações da camada.
📖 Leia a fonte completa: r/LocalLLaMA
👀 See Also

Explorando IA com Pequenos Bots: Entendendo Agentes de IA através do Nanobot Tutor
Membro da comunidade OpenClaw compartilha insights com o 'Nanobot Tutor', um framework em miniatura que visa desmistificar a funcionalidade dos agentes de IA. Descubra como mergulhar neste ambiente de aprendizagem compacto revela o funcionamento dos agentes inteligentes.

Logira: Auditoria de Runtime eBPF para Execuções de Agentes de IA
Logira é uma ferramenta CLI apenas para observação no Linux que registra eventos de execução, arquivo e rede via eBPF durante execuções de agentes de IA, com armazenamento local por execução em JSONL e SQLite e regras de detecção integradas para acesso a credenciais, alterações de persistência e padrões suspeitos.

Flash-MoE: Executando o Modelo Qwen de 397B Parâmetros no MacBook Pro com C/Metal Puro
Flash-MoE é um mecanismo de inferência puro em C/Metal que executa o modelo Qwen3.5-397B-A17B, um modelo Mixture-of-Experts com 397 bilhões de parâmetros, em um MacBook Pro com 48GB de RAM a 4.4+ tokens/segundo. O modelo de 209GB é transmitido do SSD por meio de shaders de computação Metal personalizados, sem Python ou frameworks.

Aplicativo Gratuito para macOS na Barra de Menu Monitora o Uso do Claude em Tempo Real
Um desenvolvedor criou um aplicativo gratuito para a barra de menus do macOS que monitora o uso do Claude inteiramente usando Claude Code com Opus. O aplicativo mostra barras de uso de sessão de 5 horas e 7 dias, porcentagem de preenchimento da janela de contexto e envia notificações ao se aproximar dos limites.