LangChain perde o reasoning content de modelos CoT: como corrigir o bug com provedores de LLM

Desenvolvedores encontraram um bug sério no LangChain: ChatOpenAI, ChatDeepSeek e outras classes de chat não repassam o bloco de reasoning content na integração com provedores de LLM. Enquanto o modelo "pensa", o usuário fica diante de uma tela vazia. O autor analisou o problema usando como exemplo o stepfun/step-3.5-flash e o polza.ai e propôs uma solução funcional baseada na extensão das classes padrão.

Processado por IA de Habr AI; editado por Hamidun News
LangChain perde o reasoning content de modelos CoT: como corrigir o bug com provedores de LLM
Fonte: Habr AI. Colagem: Hamidun News.
Ouvir artigo

Desenvolvedores que trabalham com modelos CoT via LangChain tiveram uma surpresa desagradável: as classes de chat do framework, como ChatOpenAI, ChatDeepSeek e similares, não preservam o bloco de reasoning content na resposta final. Na prática, o usuário simplesmente espera enquanto o modelo "pensa", sem receber nenhum feedback, e o raciocínio desaparece sem deixar rastro.

O problema afeta a integração com a maioria dos provedores e agregadores populares de LLM. Quando um modelo com capacidade de raciocínio, como os da família DeepSeek-R1 ou o step-3.5-flash da Stepfun, gera uma resposta, o processo interno de raciocínio é registrado em um bloco separado, o reasoning_content. É justamente esse bloco que se perde: nem o ChatOpenAI nem as demais classes de chat do LangChain o repassam adiante na cadeia de processamento.

Por que isso importa? Modelos CoT (Chain of Thought, ou cadeia de raciocínio) são treinados especificamente para produzir etapas explícitas de pensamento antes da resposta final. Os desenvolvedores os escolhem justamente por essa transparência: a possibilidade de mostrar ao usuário como o modelo chegou à solução ou de usar as etapas intermediárias em processamentos posteriores no pipeline. Quando o bloco de raciocínio se perde, o valor da abordagem CoT vai por água abaixo.

A falta de streaming do reasoning content afeta diretamente a UX. O usuário vê uma tela vazia enquanto o modelo percorre uma cadeia de raciocínio de algumas centenas de tokens. O tempo de resposta percebido aumenta drasticamente, embora o modelo já esteja, de fato, trabalhando. Para produtos em que a velocidade percebida é crítica, essa é uma desvantagem considerável.

O autor se deparou com o problema na prática ao usar o modelo stepfun/step-3.5-flash por meio do provedor russo polza.ai. O provedor envia o reasoning content no stream, mas o LangChain não o captura nem o repassa adiante. Nenhum dos agregadores testados resolvia o problema do seu lado.

A solução veio da extensão das classes de chat padrão do LangChain. A ideia é sobrescrever o método que processa os chunks do stream para que ele extraia explicitamente o campo reasoning_content da resposta do provedor e o adicione à estrutura de saída do AIMessage. Assim, o bloco de raciocínio fica disponível tanto no modo de streaming quanto em uma chamada comum ao modelo.

Na prática, isso significa criar uma classe de chat personalizada que herda de ChatOpenAI e sobrescreve o método _stream e a lógica de montagem da mensagem final. Com o streaming, o reasoning_content passa a ser exibido imediatamente, à medida que o modelo gera o raciocínio, o que melhora de forma fundamental a responsividade da interface.

O caso é relevante como solução técnica e também como sintoma de um problema mais amplo: frameworks de uso geral como o LangChain demoram a se adaptar às particularidades das novas classes de modelos. Os padrões de API para envio do reasoning content variam entre provedores, e não existe uma abordagem unificada. Enquanto ela não surgir, os desenvolvedores terão de cobrir essas lacunas por conta própria, com customizações.

Para equipes que desenvolvem produtos com modelos CoT e LangChain, a abordagem descrita oferece um modelo de extensão pronto para uso. Ela pode ser reproduzida com qualquer provedor que retorne o reasoning_content em formato compatível com a API da OpenAI.

História
ZK
Zhemal Khamidun — CPO da Alpina Digital, gerente de produto do AlpinaGPT. Cria produtos de IA desde 2019. O Hamidun News é um projeto pessoal que virou um agregador em produção com mais de 6.000 leitores.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
O que você acha?
Carregando comentários…