Criei uma versão open source do Deep Research da OpenAI

Fala TabNews! Queria compartilhar minha implementação open source do Deep Research da OpenAI, usando Firecrawl para busca e extração de dados.

Ontem a noite a OpenAI lançou o Deep Research, uma ferramenta que permite realizar pesquisas profundas na web usando IA. Entao em algumas horas decidi criar uma versão open source usando Next.js, Firecrawl e o AI SDK da Vercel.

O meu post no X na madrugada teve muitas visualizações e então lancei pela manhã.

Como Funciona:

  1. Arquitetura Principal:
  • Utilizei o AI SDK da Vercel para gerenciar streams e chamadas de modelo - partiu de um fork do AI chatbot da Vercel que eu tinha apaptado.
  • Implementei um sistema de agentes que coordena busca, extração e análise
  • Criei um deep research context no React para gerenciar o estado da pesquisa em tempo real
  1. Componentes Principais:
  • Um agente de pesquisa que utiliza Firecrawl para buscar e extrair dados da web
  • Sistema de análise progressiva que avalia e sintetiza informações
  • UI em tempo real mostrando progresso, fontes e atividades
  1. Fluxo de Pesquisa:
  • Busca inicial usando Firecrawl
  • Extração estruturada de dados das páginas relevantes
  • Análise progressiva usando modelos de raciocínio
  • Síntese final dos resultados

Dentro do Agente O coração do sistema está no arquivo api/chat/route.ts, onde implementei o agente de pesquisa:

O agente opera em um ciclo iterativo de busca-extração-análise, controlado por um sistema de estado gerenciado. Cada ciclo começa com uma busca usando Firecrawl /search, que retorna URLs relevantes ao prompt da pesquisa. O agente então extrai informações estruturadas dessas URLs usando a função /extract do Firecrawl, que processa as URLs mais relevantes por vez e extraí qualquer dado que você queira da URL. Após a extração, a função analyzeAndPlan avalia os dados coletados, determinando lacunas no conhecimento e próximos passos. O agente mantém um researchState que rastreia descobertas, sumários e métricas de progresso, com limites de profundidade (maxDepth) e tempo (5 minutos) para evitar o maxDuration da edge function da Vercel.

Todo o processo é transmitido em tempo real via dataStream, permitindo uma UI reativa que mostra o progresso da pesquisa, fontes consultadas e atividades do agente. O ciclo continua até que o agente determine que tem informações suficientes ou atinja os limites estabelecidos, culminando em uma síntese final usando um modelo de raciocínio para gerar uma análise abrangente das descobertas.

Stack:

  • Next.js (App Router)
  • Firecrawl para busca e extração
  • AI SDK da Vercel
  • TypeScript
  • Tailwind CSS
  • Radix UI para componentes base

Se gostaram me avisa que vou começar a trazer mais desse conteúdo e se quiserem dar um star na repo, ajuda demais!

https://github.com/nickscamara/open-deep-research

Obrigado :)

Muito show! Gostei demais da implementação. Qual o motivo de ter escolhido essa stack?

Espero só que não tenha nenhum viés. Pois se perguntar ao Deepseek o que ocorreu na china em 1989 ele não responde.

Parabéns pela implementação. precisamos de mais implementações opensource em soluções de IA.

Considere colaborar aqui também:

https://huggingface.co/blog/open-deep-research

sucesso e parabéns

Mano gostei muito mas e se eu quiser usar Groq no lugar da OpenAI e seus modelos, onde eu altero?

nick, bem legal. parabéns