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

Usando o Claude para Automatizar o QA de Aplicativos Móveis com Capacitor WebViews
Um desenvolvedor criou um sistema automatizado de QA usando Claude para testar um aplicativo móvel baseado em Capacitor em Android e iOS. A abordagem utiliza o Chrome DevTools Protocol para WebViews do Android e capturas de tela para análise visual, com a configuração do Android levando 90 minutos contra mais de 6 horas para o iOS.

Crítica: CLI de binário único e foco local para revisar planos e diffs de agentes
Crit é um CLI de binário único que abre arquivos ou diffs no navegador com uma interface inspirada no GitHub, permitindo ciclos de feedback com agentes de IA — não precisa de conta.

Audacity MCP Server Dá ao Claude AI Controle Total de Edição de Áudio
Um desenvolvedor criou um servidor MCP que conecta o Claude AI ao Audacity via mod-script-pipe, fornecendo 99 ferramentas para comandos de edição de áudio em linguagem natural. A ferramenta de código aberto funciona com Claude Desktop, Claude Code ou Cursor.

O Framework SIDJUA Adiciona Camada de Governança a Agentes de IA Autônomos
SIDJUA é uma estrutura com governança integrada, regras de autoridade baseadas em funções e trilhas de auditoria completas que fica sobre qualquer modelo de IA com uma API. A demonstração mostra uma hierarquia de três níveis que escala para 7+1 níveis, com cada decisão registrada e custos rastreados em tempo real.