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
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— Anteriormentelastsearchelastsearch. 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:
- 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.
- 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.
- 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.
- 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.
- 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. - 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.
- 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".
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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) oudead(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:
| Profundidade | Comportamento | Caso de uso |
|---|---|---|
fast (padrão) | Busca única → extração → passagem de verificação | Consultas rápidas, agentes em tempo real |
thorough | Loop 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-passagem | Pesquisas importantes, verificação de fatos |
deep | Pesquisa 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 ambienteLASTSEARCH_API_KEY. Para o SDK Python, passeapi_key="ls_xxx". Para a API REST, useAuthorization: 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étodo | Como | Verificação | Limites |
|---|---|---|---|
| Chave de API LastSearch (Grátis) | Authorization: Bearer ls_xxx | Premium completo — verificação semântica, multi-provedor, consistência multi-passagem | Cota generosa com fallback gracioso |
| Chave de API LastSearch (Pro) | Authorization: Bearer ls_xxx | Premium completo — ilimitado, sem fallback | Ilimitado + fila prioritária, chaves gerenciadas, assentos de equipe |
| Demo (site) | Sem autenticação | Verificação por palavras-chave | 1 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
| Endpoint | Descrição |
|---|---|
POST /browse/search | Pesquisar na web |
POST /browse/open | Buscar e analisar uma página |
POST /browse/extract | Extrair afirmações estruturadas de uma página |
POST /browse/answer | Pipeline completo: pesquisa + extração + citação. depth: "fast", "thorough" ou "deep" |
POST /browse/answer/stream | Resposta em streaming via SSE — streaming de tokens em tempo real + eventos de progresso |
POST /browse/compare | Comparar resposta bruta do LLM vs. resposta baseada em evidências |
POST /browse/clarity | Clarity — 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/:id | Obter um resultado compartilhado |
GET /browse/stats | Total de consultas respondidas |
GET /browse/sources/top | Domínios de fontes mais citados |
GET /browse/analytics/summary | Análises de uso (autenticado) |
POST /session | Criar uma sessão de pesquisa |
POST /session/:id/ask | Pesquisar com memória de sessão (recupera + armazena afirmações) |
POST /session/:id/recall | Consultar conhecimento da sessão sem nova pesquisa |
GET /session/:id/knowledge | Exportar todas as afirmações da sessão |
POST /session/:id/share | Compartilhar uma sessão publicamente (retorna shareId) |
GET /session/share/:shareId | Visualizar uma sessão compartilhada (pública, sem autenticação) |
POST /session/share/:shareId/fork | Bifurcar uma sessão compartilhada para sua conta |
GET /session/:id | Obter detalhes da sessão |
GET /sessions | Listar suas sessões (autenticado) |
DELETE /session/:id | Excluir uma sessão (autenticado) |
POST /browse/feedback | Enviar feedback sobre um resultado (bom/ruim/incorreto) |
GET /browse/learning/stats | Estatísticas do mecanismo de autoaprendizado |
GET /user/stats | Suas estatísticas de consulta (autenticado) |
GET /user/history | Seu histórico de consultas (autenticado) |
DELETE /user/data | Excluir todos os seus dados (direito ao apagamento da LGPD) |
Ferramentas MCP
| Ferramenta | Descrição |
|---|---|
search | Pesquisar na web por informações sobre qualquer tópico |
open | Buscar e analisar uma página da web em texto limpo |
extract | Extrair afirmações estruturadas de uma página |
answer | Pipeline completo: pesquisa + extração + citação. depth: "fast", "thorough" ou "deep" |
compare | Comparar resposta bruta do LLM vs. resposta baseada em evidências |
clarity | Mecanismo de resposta anti-alucinação — três modos: prompt (apenas prompts), answer (LLM), verified (fusão LLM + web) |
session_create | Criar uma sessão de pesquisa (memória persistente) |
session_ask | Pesquisar dentro de uma sessão (recupera conhecimento prévio) |
session_recall | Consultar conhecimento da sessão sem nova pesquisa na web |
session_share | Compartilhar uma sessão publicamente (retorna URL de compartilhamento) |
session_knowledge | Exportar todas as afirmações de uma sessão |
session_fork | Bifurcar uma sessão compartilhada para continuar a pesquisa |
feedback | Enviar feedback sobre um resultado para melhorar a precisão |
SDK Python
| Método | Descriçã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 LLMshareId— 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 fallbackclaims[].verified— se a afirmação foi verificada contra o texto da fonteclaims[].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 lacunastrace— linha do tempo de execução para depuração e monitoramentoquota— 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
| Exemplo | Descrição |
|---|---|
| research-agent.py | Agente de pesquisa simples com citações |
| deep-research-agent.py | Raciocínio profundo em múltiplas etapas com análise de lacunas |
| streaming-agent.py | Streaming SSE em tempo real com eventos de progresso |
| contradiction-detector.py | Superficiar contradições entre fontes |
| enterprise-search.py | Fontes de dados personalizadas + modo de retenção zero |
| code-research-agent.py | Pesquisar bibliotecas/documentação antes de escrever código |
| hallucination-detector.py | Comparar respostas brutas do LLM vs. baseadas em evidências |
| langchain-agent.py | LastSearch como ferramenta LangChain |
| crewai-research-team.py | Equipe de pesquisa multiagente com CrewAI |
| research-session.py | Sessões de pesquisa com memória persistente |
Tutoriais
| Tutorial | O 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ável | Obrigatória | Descrição |
|---|---|---|
LASTSEARCH_API_KEY | Sim (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
| Habilidade | O que faz |
|---|---|
| research | Respostas baseadas em evidências com citações e confiança |
| fact-check | Comparar LLM bruto vs. baseado em evidências, verificar afirmações |
| extract | Extração estruturada de afirmações de URLs |
| sessions | Pesquisa multi-consulta com conhecimento persistente |
| deep-dive | Pesquisa agêntica em múltiplas etapas com cadeias de raciocínio e análise de lacunas |
| compare-claims | Resolver disputas factuais — baseado em evidências vs. LLM bruto lado a lado |
| monitor | Acompanhar tópicos em evolução ao longo do tempo, comparar com conhecimento prévio |
| cite | Gerar citações formatadas (APA/MLA) com pontuações de autoridade |
| clarity | Clarity — mecanismo de resposta anti-alucinação com verificação web opcional |
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:
| Componente | Licença | O que significa |
|---|---|---|
| SDKs, servidor MCP, integrações, frontend (este repositório) | Apache 2.0 | Use livremente, modifique, redistribua |
| Mecanismo de verificação (repositório privado separado) | BSL 1.1 | Serviç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.