BrowseAI Dev

Pesquisa web baseada em evidências para agentes de IA. Verificação de alegações BM25+NLI, pontuações de confiança, citações, detecção de contradições. 12 ferramentas MCP. Funciona com Claude Desktop, Cursor, Windsurf. SDK Python (pip install browseaidev), integrações LangChain, CrewAI, LlamaIndex. npx browseai-dev

Documentação

LastSearch

npm PyPI LangChain License Discord

Infraestrutura de pesquisa para agentes de IA com Inteligência Fundamentada — busca web em tempo real, extração de evidências, verificação e citações estruturadas. Cada afirmação é respaldada por uma URL. Cada resposta tem uma pontuação de confiança.

Agent → LastSearch → Internet → Verified answers + sources

Website · Playground · API Docs · Alternativas · Discord

Nomes dos pacotes: npm: lastsearch · PyPI: lastsearch · LangChain: langchain-lastsearch — Anteriormente lastsearch e lastsearch. Os nomes antigos ainda funcionam e redirecionam automaticamente.


Como Funciona

search → fetch pages → neural rerank → extract claims → verify → cited answer (streamed)

Cada resposta passa por um pipeline de verificação em múltiplas etapas. Sem alucinação. Cada afirmação é respaldada por uma fonte real.

Verificação e Pontuação de Confiança

As pontuações de confiança são baseadas em evidências — não autoavaliadas por LLM. Após o LLM extrair afirmações e fontes, um mecanismo de verificação pós-extração verifica cada afirmação contra o texto real da página de origem:

  1. Decomposição atômica de afirmações — Afirmações compostas são automaticamente divididas em fatos individuais verificáveis. "A Tesla teve US$ 96 bilhões em receita e 1,8 milhão de entregas" torna-se duas afirmações atômicas, cada uma verificada de forma independente.
  2. Recuperação híbrida combinando correspondência por palavras-chave e semântica — Para cada afirmação, a correspondência por palavras-chave encontra correspondências lexicais e embeddings densos encontram correspondências semânticas no texto da fonte. Os rankings são fundidos para capturar evidências parafraseadas que a correspondência por palavras-chave sozinha não detecta (por exemplo, "previne respostas fabricadas" correspondendo a "reduz alucinações"). Disponível apenas no nível premium, com fallback gracioso apenas por palavras-chave.
  3. Reclassificação semântica de evidências — Os principais candidatos por afirmação são reclassificados por um modelo de verificação construído especificamente, treinado em mais de 1,4 milhão de pares afirmação-evidência que melhora a cada consulta. Seleciona a melhor evidência de suporte, aplica penalidades por contradição e reforços por paráfrase.
  4. Busca multi-provedor — Busca paralela em múltiplos provedores para maior diversidade de fontes. Mais fontes independentes = referência cruzada mais forte = maior confiança.
  5. Pontuação de autoridade de domínio — Mais de 10.000 domínios em 5 níveis (institucional .gov/.edu → grandes veículos de notícias → jornalismo de tecnologia → comunidade → baixa qualidade). Pontuação dinâmica que melhora com dados reais de verificação.
  6. Verificação de citações da fonte — Citações extraídas por LLM são verificadas contra o texto real da página usando estratégias de correspondência múltipla.
  7. Consenso entre fontes — Cada afirmação é verificada contra todos os textos de página disponíveis. Afirmações apoiadas por 3 ou mais domínios independentes recebem "consenso forte". Afirmações com fonte única são sinalizadas como "fracas".
  8. Detecção de contradições — Pares de afirmações são analisados quanto a conflitos semânticos usando sobreposição de tópicos e classificação de contradições. Contradições detectadas são exibidas na resposta e penalizam a confiança.
  9. Consistência multi-passagem — No modo aprofundado, as afirmações são verificadas cruzadamente em passagens de extração independentes. Afirmações confirmadas por ambas as passagens são reforçadas; afirmações inconsistentes são penalizadas.
  10. Confiança calibrada automaticamente — A fórmula de confiança multifatorial se ajusta automaticamente com base no feedback real dos usuários. A confiança prevista se alinha com a precisão real ao longo do tempo. Fatores: taxa de verificação, autoridade do domínio, número de fontes, consenso, diversidade de domínios, fundamentação das afirmações, atualidade das fontes e profundidade das citações.
  11. Recuperação de evidências por afirmação — Afirmações fracas recebem consultas de busca direcionadas geradas por LLM e são pesquisadas individualmente em todos os provedores. Cada afirmação recebe seu próprio conjunto de evidências em vez de compartilhar o mesmo corpus.
  12. Verificação por contra-consulta — Afirmações verificadas são testadas sob estresse com consultas adversariais do tipo "o que poderia refutar isso?". Se contra-evidências forem encontradas, a confiança da afirmação é penalizada.
  13. Recuperação iterativa com limite de confiança — O modo aprofundado usa um loop com limite de confiança: verificar → se houver afirmações fracas → gerar consulta direcionada → buscar → reverificar. Faz até 3 iterações com término antecipado quando as consultas se repetem ou a confiança atinge o limite.
  14. Saúde de citações em tempo real — Nos modos aprofundado e profundo, cada URL citada é verificada no servidor e classificada como live (resolve agora), stale (link quebrado — arquivado uma vez) ou dead (sem DNS, sem arquivo — provavelmente fabricado). Agentes de pesquisa profunda alucinam uma parcela significativa das URLs de citação; isso torna "toda citação resolve" uma garantia verificável.

As afirmações incluem campos verified, verificationScore, consensusCount e consensusLevel. As fontes incluem verified, authority e urlHealth. contradictions detectados e um resumo citationHealth são retornados no nível superior. Os agentes podem usar esses campos para tomar decisões de confiança programaticamente.

Fallback gracioso: Quando as chaves premium não estão configuradas, o sistema executa verificação apenas por palavras-chave. A recuperação semântica e a reclassificação são aprimoramentos premium transparentes — sem degradação, sem erros.

Modos de Profundidade

Três níveis de profundidade controlam o rigor da pesquisa:

ProfundidadeComportamentoCaso de uso
fast (padrão)Busca única → extração → passagem de verificaçãoConsultas rápidas, agentes em tempo real
thoroughLoop iterativo com limite de confiança (até 3 passagens), recuperação de evidências por afirmação, verificação por contra-consulta, verificação de consistência multi-passagemPesquisas importantes, verificação de fatos
deepPesquisa agêntica premium em múltiplas etapas: ciclos iterativos pensar-buscar-extrair-avaliar (até 4 etapas no total). A análise de lacunas identifica informações ausentes e gera consultas de acompanhamento. Afirmações/fontes mescladas entre etapas com reverificação final. Confiança alvo: 0,85. Requer chave LastSearch + login. Faz fallback para o modo aprofundado quando a cota é esgotada.Perguntas de pesquisa complexas, análise abrangente
# Thorough mode
curl -X POST https://lastsearch.ai/api/browse/answer \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ls_xxx" \
  -d '{"query": "What is quantum computing?", "depth": "thorough"}'

# Deep mode (uses premium features)
curl -X POST https://lastsearch.ai/api/browse/answer \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ls_xxx" \
  -d '{"query": "Compare CRISPR approaches for sickle cell disease", "depth": "deep"}'

O modo profundo executa ciclos iterativos pensar-buscar-extrair-avaliar: cada etapa realiza análise de lacunas para identificar o que está faltando, gera consultas de acompanhamento direcionadas e mescla afirmações/fontes entre etapas com uma passagem final de reverificação. Ele visa um limite de confiança de 0,85 (DEEP_CONFIDENCE_THRESHOLD) e executa até 3 etapas de acompanhamento (MAX_FOLLOW_UP_STEPS, 4 no total incluindo a passagem inicial). Usa reclassificação semântica, busca multi-provedor e consistência multi-passagem. Cada consulta profunda custa 3x a cota (100 consultas profundas/dia). Quando a cota é esgotada, o modo profundo faz fallback graciosamente para o modo aprofundado. Sem uma chave LastSearch, o modo profundo também faz fallback para o modo aprofundado.

As respostas do modo profundo incluem reasoningSteps mostrando o processo de pesquisa em múltiplas etapas (número da etapa, consulta, análise de lacunas, contagem de afirmações, confiança por etapa).

API de Streaming

Obtenha progresso em tempo real com streaming de respostas token por token. O endpoint de streaming envia Server-Sent Events (SSE) conforme cada etapa do pipeline é concluída. As etapas do modo profundo são agrupadas por passagem de pesquisa para exibição limpa do progresso:

curl -N -X POST https://lastsearch.ai/api/browse/answer/stream \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ls_xxx" \
  -d '{"query": "What is quantum computing?"}'

Eventos: trace (progresso), sources (descoberto antecipadamente), token (texto da resposta em streaming), result (resposta final), done.

Repetição com Backoff

Todas as chamadas de API externas (provedores de busca, LLM, busca de páginas) repetem automaticamente em falhas transitórias (limites de taxa 429, erros de servidor 5xx) com backoff exponencial e jitter. Erros de autenticação (401/403) falham imediatamente — sem repetições desperdiçadas.

Memória de Pesquisa (Sessões)

Sessões de pesquisa persistentes que acumulam conhecimento em múltiplas consultas. Consultas posteriores recuperam automaticamente afirmações verificadas anteriormente, construindo compreensão mais profunda ao longo do tempo.

As sessões exigem uma chave de API LastSearch (ls_xxx) para identidade e propriedade. Obtenha uma chave gratuita em lastsearch.ai/dashboard. Para MCP, defina a variável de ambiente LASTSEARCH_API_KEY. Para o SDK Python, passe api_key="ls_xxx". Para a API REST, use Authorization: Bearer ls_xxx.

# Python SDK
session = client.session("quantum-research")
r1 = session.ask("What is quantum entanglement?")       # 13 claims stored
r2 = session.ask("How is entanglement used in computing?")  # 12 claims recalled!
knowledge = session.knowledge()  # Export all accumulated claims

# Share with other agents or humans
share = session.share()  # Returns shareId + URL
# Another agent forks and continues the research
forked = client.fork_session(share.share_id)
# REST API
curl -X POST https://lastsearch.ai/api/session \
  -H "Authorization: Bearer ls_xxx" \
  -d '{"name": "my-research"}'
# Returns session ID, then:
curl -X POST https://lastsearch.ai/api/session/{id}/ask \
  -H "Authorization: Bearer ls_xxx" \
  -d '{"query": "What is quantum entanglement?"}'

# Share a session publicly
curl -X POST https://lastsearch.ai/api/session/{id}/share \
  -H "Authorization: Bearer ls_xxx"

# Fork a shared session (copies all knowledge)
curl -X POST https://lastsearch.ai/api/session/share/{shareId}/fork \
  -H "Authorization: Bearer ls_xxx"

Cada resposta de sessão inclui recalledClaims e newClaimsStored. As sessões podem ser compartilhadas publicamente e bifurcadas por outros agentes — permitindo fluxos de trabalho de pesquisa colaborativos e multi-agente.

Planejamento de Consultas

Consultas complexas são automaticamente decompostas em sub-consultas focadas com rótulos de intenção (definição, evidência, comparação, contra-argumento, técnico, histórico). Cada sub-consulta visa um aspecto diferente da pergunta, maximizando a diversidade de fontes. Consultas factuais simples ignoram o planejamento — sem latência adicional.

Precisão Auto-Aprimorável

Todo o pipeline de verificação melhora automaticamente com o uso:

  • Autoridade de domínio — A pontuação dinâmica ajusta as pontuações de confiança dos domínios conforme as evidências se acumulam. As pontuações estáticas por nível dominam inicialmente, depois as taxas reais de verificação assumem.
  • Limites de verificação adaptativos — Os limites de verificação de afirmações se ajustam por tipo de consulta com base nas taxas de verificação observadas. Muito rígido? Afrouxa. Muito permissivo? Aperta.
  • Ajuste do limite de consenso — Os limites de concordância entre fontes se adaptam com base no desempenho por tipo de consulta.
  • Otimização dos pesos de confiança — A fórmula de confiança multifatorial reequilibra os pesos por tipo de consulta quando o feedback do usuário indica imprecisão.
  • Otimização da contagem de páginas — As contagens de busca de fontes se ajustam com base nos resultados de confiança por tipo de consulta.

Loop de Feedback

Envie feedback sobre os resultados para acelerar o aprendizado. Agentes e usuários podem avaliar os resultados como good, bad ou wrong — isso alimenta diretamente o mecanismo de limites adaptativos.

curl -X POST https://lastsearch.ai/api/browse/feedback \
  -H "Content-Type: application/json" \
  -d '{"resultId": "abc123", "rating": "good"}'
client.feedback(result_id="abc123", rating="good")
# Or flag a specific wrong claim:
client.feedback(result_id="abc123", rating="wrong", claim_index=2)

Início Rápido

SDK Python

pip install lastsearch
from lastsearch import LastSearch

client = LastSearch(api_key="ls_xxx")

# Research with citations
result = client.ask("What is quantum computing?")
print(result.answer)
print(f"Confidence: {result.confidence:.0%}")
for source in result.sources:
    print(f"  - {source.title}: {source.url}")

# Thorough mode — auto-retries if confidence < 60%
thorough = client.ask("What is quantum computing?", depth="thorough")

# Deep mode — multi-step reasoning with gap analysis (requires LastSearch key)
deep = client.ask("Compare CRISPR approaches for sickle cell disease", depth="deep")
for step in deep.reasoning_steps or []:
    print(f"  Step {step.step}: {step.query} ({step.confidence:.0%})")

Integração LangChain: (PyPI)

pip install langchain-lastsearch
from langchain_lastsearch import LastSearchAnswerTool, LastSearchSearchTool

# Use with any LangChain agent
tools = [
    LastSearchAnswerTool(api_key="ls_xxx"),   # Verified search with citations
    LastSearchSearchTool(api_key="ls_xxx"),    # Basic web search
]

# Standalone usage
tool = LastSearchAnswerTool(api_key="ls_xxx")
result = tool.invoke({"query": "What is quantum computing?", "depth": "thorough"})

5 ferramentas disponíveis: LastSearchSearchTool, LastSearchAnswerTool (verificada), LastSearchExtractTool, LastSearchCompareTool, LastSearchClarityTool (anti-alucinação).

Servidor MCP (Claude Desktop, Cursor, Windsurf)

npx lastsearch setup

Ou adicione manualmente à sua configuração MCP:

{
  "mcpServers": {
    "lastsearch": {
      "command": "npx",
      "args": ["-y", "lastsearch"],
      "env": {
        "LASTSEARCH_API_KEY": "ls_xxx"
      }
    }
  }
}

Obtenha uma chave de API gratuita em lastsearch.ai/dashboard.

API REST

# Basic query
curl -X POST https://lastsearch.ai/api/browse/answer \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ls_xxx" \
  -d '{"query": "What is quantum computing?"}'

# Thorough mode (auto-retries if confidence < 60%)
curl -X POST https://lastsearch.ai/api/browse/answer \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ls_xxx" \
  -d '{"query": "What is quantum computing?", "depth": "thorough"}'

# Deep mode (multi-step reasoning)
curl -X POST https://lastsearch.ai/api/browse/answer \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ls_xxx" \
  -d '{"query": "Compare CRISPR approaches", "depth": "deep"}'

Auto-Hospedagem

O servidor MCP e o frontend são de código aberto e podem ser executados localmente. O mecanismo de verificação é um serviço hospedado — todas as solicitações de API são processadas pela infraestrutura em nuvem da LastSearch.

git clone https://github.com/lastsearch-hq/lastsearch.git
cd lastsearch
pnpm install
pnpm dev:web    # Run the frontend locally (API calls go to lastsearch.ai)

Chaves de API

Todo acesso à API exige uma chave de API LastSearch (ls_xxx). Cadastre-se gratuitamente em lastsearch.ai/dashboard.

MétodoComoVerificaçãoLimites
Chave de API LastSearch (Grátis)Authorization: Bearer ls_xxxPremium completo — verificação semântica, multi-provedor, consistência multi-passagemCota generosa com fallback gracioso
Chave de API LastSearch (Pro)Authorization: Bearer ls_xxxPremium completo — ilimitado, sem fallbackIlimitado + fila prioritária, chaves gerenciadas, assentos de equipe
Demo (site)Sem autenticaçãoVerificação por palavras-chave1 consulta/hora por IP

O nível gratuito inclui 100 consultas premium/dia (ou ~33 consultas profundas/dia a 3x o custo cada). Quando a cota é atingida, as consultas fazem fallback graciosamente para verificação por palavras-chave (ou o modo profundo faz fallback para o aprofundado) — ainda funciona, apenas com correspondência básica. A cota é redefinida a cada 24 horas. O Pro remove todos os limites.

As respostas da API incluem informações de cota ao usar uma chave LastSearch:

{
  "success": true,
  "result": { ... },
  "quota": { "used": 12, "limit": 100, "premiumActive": true }
}

Estrutura do Projeto

/apps/mcp              MCP server (stdio transport, npm: lastsearch)
/packages/shared       Shared types, Zod schemas, constants
/packages/python-sdk   Python SDK (PyPI: lastsearch)
/src                   React frontend (Vite, port 8080)
/supabase              Database migrations

O mecanismo de verificação (servidor de API) está em um repositório privado separado (lastsearch-hq/lastsearch-engine) e é executado como um serviço hospedado.

Endpoints da API

EndpointDescrição
POST /browse/searchPesquisar na web
POST /browse/openBuscar e analisar uma página
POST /browse/extractExtrair afirmações estruturadas de uma página
POST /browse/answerPipeline completo: pesquisa + extração + citação. depth: "fast", "thorough" ou "deep"
POST /browse/answer/streamResposta em streaming via SSE — streaming de tokens em tempo real + eventos de progresso
POST /browse/compareComparar resposta bruta do LLM vs. resposta baseada em evidências
POST /browse/clarityClarity — mecanismo de resposta anti-alucinação. Três modos: mode: "prompt" (apenas prompts aprimorados), mode: "answer" (resposta do LLM, padrão), mode: "verified" (fusão LLM + web). Legado verify: true = mode: "verified"
GET /browse/share/:idObter um resultado compartilhado
GET /browse/statsTotal de consultas respondidas
GET /browse/sources/topDomínios de fontes mais citados
GET /browse/analytics/summaryAnálises de uso (autenticado)
POST /sessionCriar uma sessão de pesquisa
POST /session/:id/askPesquisar com memória de sessão (recupera + armazena afirmações)
POST /session/:id/recallConsultar conhecimento da sessão sem nova pesquisa
GET /session/:id/knowledgeExportar todas as afirmações da sessão
POST /session/:id/shareCompartilhar uma sessão publicamente (retorna shareId)
GET /session/share/:shareIdVisualizar uma sessão compartilhada (pública, sem autenticação)
POST /session/share/:shareId/forkBifurcar uma sessão compartilhada para sua conta
GET /session/:idObter detalhes da sessão
GET /sessionsListar suas sessões (autenticado)
DELETE /session/:idExcluir uma sessão (autenticado)
POST /browse/feedbackEnviar feedback sobre um resultado (bom/ruim/incorreto)
GET /browse/learning/statsEstatísticas do mecanismo de autoaprendizado
GET /user/statsSuas estatísticas de consulta (autenticado)
GET /user/historySeu histórico de consultas (autenticado)
DELETE /user/dataExcluir todos os seus dados (direito ao apagamento da LGPD)

Ferramentas MCP

FerramentaDescrição
searchPesquisar na web por informações sobre qualquer tópico
openBuscar e analisar uma página da web em texto limpo
extractExtrair afirmações estruturadas de uma página
answerPipeline completo: pesquisa + extração + citação. depth: "fast", "thorough" ou "deep"
compareComparar resposta bruta do LLM vs. resposta baseada em evidências
clarityMecanismo de resposta anti-alucinação — três modos: prompt (apenas prompts), answer (LLM), verified (fusão LLM + web)
session_createCriar uma sessão de pesquisa (memória persistente)
session_askPesquisar dentro de uma sessão (recupera conhecimento prévio)
session_recallConsultar conhecimento da sessão sem nova pesquisa na web
session_shareCompartilhar uma sessão publicamente (retorna URL de compartilhamento)
session_knowledgeExportar todas as afirmações de uma sessão
session_forkBifurcar uma sessão compartilhada para continuar a pesquisa
feedbackEnviar feedback sobre um resultado para melhorar a precisão

SDK Python

MétodoDescrição
client.search(query)Pesquisar na web
client.open(url)Buscar e analisar uma página
client.extract(url, query=)Extrair afirmações de uma página
client.ask(query, depth=)Pipeline completo com citações. depth: "fast", "thorough" ou "deep"
client.compare(query)LLM bruto vs. baseado em evidências
client.session(name)Criar uma sessão de pesquisa
session.ask(query, depth=)Pesquisar com recuperação de memória
session.recall(query)Consultar conhecimento da sessão
session.knowledge()Exportar todas as afirmações da sessão
session.share()Compartilhar sessão publicamente (retorna shareId + URL)
client.get_session(id)Retomar uma sessão existente por ID
client.list_sessions()Listar todas as suas sessões
client.fork_session(share_id)Bifurcar uma sessão compartilhada para sua conta
session.delete()Excluir uma sessão
client.feedback(result_id, rating)Enviar feedback (bom/ruim/incorreto) para melhorar a precisão

Suporte assíncrono: AsyncLastSearch com a mesma API.

Provedores de Pesquisa Empresarial

Use o LastSearch com suas próprias fontes de dados em vez de — ou em conjunto com — a pesquisa web pública. Suporta Elasticsearch, Confluence e endpoints personalizados com retenção zero de dados opcional para conformidade.

# Elasticsearch
result = client.ask("What is our refund policy?", search_provider={
    "type": "elasticsearch",
    "endpoint": "https://es.internal.company.com/kb/_search",
    "authHeader": "Bearer es-token-xxx",
    "index": "docs",
})

# Confluence
result = client.ask("PCI compliance process?", search_provider={
    "type": "confluence",
    "endpoint": "https://company.atlassian.net/wiki/rest/api",
    "authHeader": "Basic base64-creds",
    "spaceKey": "ENG",
})

# Zero data retention (nothing stored, cached, or logged)
result = client.ask("Patient protocols", search_provider={
    "type": "elasticsearch",
    "endpoint": "https://es.hipaa.company.com/medical/_search",
    "authHeader": "Bearer token",
    "dataRetention": "none",
})
# REST API — enterprise search
curl -X POST https://lastsearch.ai/api/browse/answer \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ls_xxx" \
  -d '{
    "query": "What is our refund policy?",
    "searchProvider": {
      "type": "elasticsearch",
      "endpoint": "https://es.internal.company.com/kb/_search",
      "authHeader": "Bearer es-token-xxx",
      "index": "docs"
    }
  }'

Estrutura de Resposta

Toda resposta inclui campos estruturados para decisões programáticas de confiança:

{
  "answer": "Quantum computing uses qubits...",
  "confidence": 0.82,
  "shareId": "abc123def456",
  "effectiveDepth": "thorough",
  "claims": [
    {
      "claim": "Qubits can exist in superposition",
      "sources": ["https://en.wikipedia.org/wiki/Qubit"],
      "verified": true,
      "verificationScore": 0.87,
      "consensusCount": 3,
      "consensusLevel": "strong"
    }
  ],
  "sources": [
    {
      "url": "https://en.wikipedia.org/wiki/Qubit",
      "title": "Qubit - Wikipedia",
      "domain": "en.wikipedia.org",
      "quote": "A qubit is the basic unit of quantum information...",
      "verified": true,
      "authority": 0.70
    }
  ],
  "contradictions": [
    {
      "claimA": "Quantum computers are faster for all tasks",
      "claimB": "Quantum advantage only applies to specific problems",
      "topic": "quantum computing performance",
      "nliConfidence": 0.89
    }
  ],
  "reasoningSteps": [
    { "step": 1, "query": "quantum computing basics", "gapAnalysis": "Initial research pass", "claimCount": 8, "confidence": 0.65 },
    { "step": 2, "query": "quantum computing vs classical comparison", "gapAnalysis": "Missing classical vs quantum comparison", "claimCount": 14, "confidence": 0.82 }
  ],
  "trace": [
    { "step": "Search Web", "duration_ms": 423, "detail": "5 results" },
    { "step": "Fetch Pages", "duration_ms": 1205, "detail": "4 pages" }
  ],
  "quota": { "used": 12, "limit": 50, "premiumActive": true }
}

Campos principais:

  • confidence — pontuação baseada em evidências (0-1), não autoavaliada pelo LLM
  • shareId — ID único para compartilhar este resultado (use com /browse/share/:id)
  • effectiveDepth — profundidade real usada ("fast", "thorough" ou "deep") — pode diferir da profundidade solicitada devido a fallback
  • claims[].verified — se a afirmação foi verificada contra o texto da fonte
  • claims[].consensusLevel — "strong" (3+ fontes), "moderate" ou "weak"
  • contradictions — conflitos detectados entre afirmações (com pontuação de confiança)
  • reasoningSteps — apenas modo profundo: iterações de pesquisa em múltiplas etapas com análise de lacunas
  • trace — linha do tempo de execução para depuração e monitoramento
  • quota — uso de cota premium (apenas usuários com chave LastSearch): used, limit, premiumActive

Exemplos

Consulte o diretório examples/ para receitas de agentes prontas para execução:

Receitas de Agentes

ExemploDescrição
research-agent.pyAgente de pesquisa simples com citações
deep-research-agent.pyRaciocínio profundo em múltiplas etapas com análise de lacunas
streaming-agent.pyStreaming SSE em tempo real com eventos de progresso
contradiction-detector.pySuperficiar contradições entre fontes
enterprise-search.pyFontes de dados personalizadas + modo de retenção zero
code-research-agent.pyPesquisar bibliotecas/documentação antes de escrever código
hallucination-detector.pyComparar respostas brutas do LLM vs. baseadas em evidências
langchain-agent.pyLastSearch como ferramenta LangChain
crewai-research-team.pyEquipe de pesquisa multiagente com CrewAI
research-session.pySessões de pesquisa com memória persistente

Tutoriais

TutorialO Que Você Vai Construir
coding-agent/Agente que pesquisa antes de escrever código — nunca recomenda bibliotecas descontinuadas
support-agent/Agente que verifica respostas antes de responder — escala quando a confiança é baixa
content-agent/Agente que escreve posts de blog onde cada estatística tem uma citação
fact-checker-bot/Bot do Discord que verifica qualquer afirmação com !verify e !compare
is-this-true/Aplicativo web — cole qualquer frase, obtenha uma pontuação de confiança e fontes
debate-settler/Ferramenta CLI — duas afirmações disputam, as evidências decidem o vencedor
docs-verifier/Verifique toda afirmação factual no seu README ou documentação
podcast-prep/Construtor de briefings de pesquisa para entrevistas de podcast

Variáveis de Ambiente

Estas são para executar o servidor MCP ou o frontend localmente. O mecanismo de verificação é executado como um serviço hospedado e não requer configuração local.

VariávelObrigatóriaDescrição
LASTSEARCH_API_KEYSim (MCP)Chave da API LastSearch (ls_xxx) — obtenha uma em lastsearch.ai/dashboard

Stack Tecnológica

  • API: Node.js, TypeScript, Fastify, Zod
  • Pesquisa: Multiprovedor (pesquisa paralela entre fontes)
  • Análise: @mozilla/readability + linkedom
  • IA: LLM via OpenRouter
  • Cache: Redis ou em memória com TTL inteligente (consultas sensíveis ao tempo recebem TTL mais curto)
  • Frontend: React, Tailwind CSS, shadcn/ui, Framer Motion
  • Verificação: Correspondência híbrida de palavras-chave + semântica com reclassificação de evidências
  • MCP: @modelcontextprotocol/sdk
  • SDK Python: httpx, Pydantic
  • Banco de dados: Supabase (PostgreSQL)

Habilidades de Agente

Habilidades pré-construídas que ensinam agentes de codificação de IA (Claude Code, Codex, Cursor, etc.) quando e como usar o LastSearch:

npx skills add lastsearch-hq/lastsearch-skills
HabilidadeO que faz
researchRespostas baseadas em evidências com citações e confiança
fact-checkComparar LLM bruto vs. baseado em evidências, verificar afirmações
extractExtração estruturada de afirmações de URLs
sessionsPesquisa multi-consulta com conhecimento persistente
deep-divePesquisa agêntica em múltiplas etapas com cadeias de raciocínio e análise de lacunas
compare-claimsResolver disputas factuais — baseado em evidências vs. LLM bruto lado a lado
monitorAcompanhar tópicos em evolução ao longo do tempo, comparar com conhecimento prévio
citeGerar citações formatadas (APA/MLA) com pontuações de autoridade
clarityClarity — mecanismo de resposta anti-alucinação com verificação web opcional

Ver todas as habilidades →

Comunidade

  • Discord — perguntas, feedback, demonstrações
  • GitHub Issues — bugs, solicitações de recursos

Contribuindo

Consulte CONTRIBUTING.md para instruções de configuração, convenções de código e processo de PR.

Licença

Este projeto usa um modelo open-core:

ComponenteLicençaO que significa
SDKs, servidor MCP, integrações, frontend (este repositório)Apache 2.0Use livremente, modifique, redistribua
Mecanismo de verificação (repositório privado separado)BSL 1.1Serviço hospedado — gratuito para usar via API, mas o código-fonte não é público. Converte para Apache 2.0 em 25/03/2030

Consulte o arquivo LICENSE para detalhes sobre este repositório.