paper-radar — radar de artigos de IA das big techs
Stateless: uma execução = uma janela = um relatório. Nenhuma biblioteca de artigos é mantida. O arXiv é a única fonte da verdade, e reexecutar a mesma janela produz necessariamente o mesmo resultado — portanto, não há motivo para manter uma segunda cópia. Manter uma só adiciona estado que muda silenciosamente e vive fora do controle de versão. O custo é raspar novamente toda a janela a cada execução (~1 min para 3 dias, ~3 min para 14 dias); o que você ganha é reprodutibilidade.
Leia isto primeiro, ou você chegará a conclusões erradas
O arXiv é a única fonte organizada por data de postagem. As páginas de publicações de cada fornecedor são organizadas por ano de publicação / veículo, o que estruturalmente não consegue responder "o que foi publicado nas últimas duas semanas" — uma diferença de modelo de dados, não técnica. Medido:
- Google Research: as páginas de detalhes trazem apenas o ano, e a listagem não é cronológica; 85 títulos nas primeiras 8 páginas renderam 0 dentro de uma janela de duas semanas, e a entrada mais recente tinha data de postagem no arXiv de três meses atrás
- Amazon Science: agrupado por ano, sem data por artigo
- Microsoft:
/research/feed/é um blog com curadoria editorial — ~8% de cobertura da mesma janela - 13 sites de empresas chinesas: 0 acertos de data em todos eles — são páginas de apresentação de laboratórios, não listagens de artigos
O outro fato que você precisa saber: os metadados do arXiv não trazem afiliação de autores.
A taxa de preenchimento de <arxiv:affiliation> é de 1%, Semantic Scholar 7%, e o OpenAlex retorna 0
raw_affiliation_strings para preprints (medido: 3/3 vazios, enquanto o mesmo endpoint retorna 34/34
para artigos publicados na Nature). O pipeline padrão da indústria é "editora deposita uma string de
afiliação → ML mapeia para ROR", e o arXiv nunca deposita essa string. Portanto, a afiliação precisa ser
extraída do próprio bloco de autores do artigo.
Executando
Os scripts estão neste diretório do skill e não dependem de nada fora dele — stdlib puro, sem pacotes pip.
R=<skill-dir>/scripts/paper_radar.py
python3 $R # últimos 3 dias
python3 $R --days 14 # últimos 14 dias
python3 $R --from 2026-07-20 --to 2026-08-04
python3 $R --cats cs.AI,cs.CL,cs.LG,cs.CV # ampliar categorias
python3 $R --no-scrape # fontes oficiais + nomes de equipe apenas (segundos — verificação rápida de empresa)
python3 $R -o path.md # escrever o relatório aqui
python3 $R -o - # escrever o relatório no stdout
Tempo: para uma janela de duas semanas (~3000 artigos), os metadados levam ~2 min e a busca do bloco de autores ~25 s com 6 workers. Uma janela de 3 dias termina em menos de um minuto. Para cobrir um histórico mais longo, amplie a janela e execute novamente — não há biblioteca para consultar.
Onde o relatório vai parar — você decide, o script não adivinha
O script não sabe, e não deve saber, onde o projeto que o chama mantém sua pesquisa.
Sem -o, ele escreve no diretório de trabalho atual.
Decida o destino antes de cada execução:
- O usuário nomeou um caminho → use-o
- Esta pesquisa vale a pena ser mantida → escreva-a no diretório de pesquisa daquele projeto, com a janela no nome do arquivo
- Você está apenas verificando um fato ("A Xiaomi publicou algo sobre IA auto-evolutiva?") → use
-o -e não deixe arquivo nenhum. Uma pergunta descartável que deixa um arquivo para trás se passará por um registro de pesquisa mais tarde
Arquivos
| Caminho (relativo a este skill) | Função |
|---|---|
scripts/paper_radar.py | Pipeline: buscar listagem → buscar blocos de autores → resolver afiliação → escrever relatório |
scripts/affiliation.py | Camada de resolução: mapeamento de sobrescritos + correspondência em três níveis |
scripts/data/ror_anchors.json | IDs ROR de 28 laboratórios + 98 variantes de nomes oficiais (incluindo chinês) |
A única saída é um arquivo markdown (caminho conforme acima), com uma divisão "total de acertos / dos quais principais". O diretório do skill em si não produz arquivos.
Seis estágios
0 listagem API do arXiv: cat × submittedDate → deduplicar por ID
1 texto completo arxiv.org/html/{id} + Range primeiros 90KB, cortar em ltx_authors → ltx_abstract [85%]
2 estrutura escanear da direita para a esquerda pela última posição que inicia uma sequência crescente 1,2,3…
extrair (autor, marcas[]) · (marca, afiliação) · emails · marcadores de função
3 entidade (a) domínio de email (b) variantes de nome ROR (c) tabela de alias de laboratório
4 classificação lead_orgs = afiliações do primeiro autor (podem ser várias); intern = marcador presente
5 suplementos RSS da Apple · JSON embutido da MSR · nomes de equipe do arXiv
6 relatório deduplicar por chave (um artigo pode chegar tanto do bloco de autores quanto de uma fonte
oficial), escrever markdown, manter evidências + matched_on
Cinco disciplinas, cada uma paga com bugs
1. O bloco de autores deve ser cortado estritamente em ltx_abstract. Pegue um caractere a mais e o
resumo vaza. Consequências medidas: Oracle 73 artigos (todos "oracle access"), MiniMax 17
(o algoritmo minimax), DeepSeek 58 (artigos meramente mencionando o modelo). Cortado corretamente, o
bloco de autores mediano tem ~201 caracteres.
2. A lista de afiliações deve ser encontrada da direita para a esquerda. "nome + dígito sobrescrito" na
sequência de autores e "dígito + afiliação" na sequência de afiliações têm a mesma forma, então uma
varredura da esquerda para a direita analisa Yuchen Zhao 1 Bingxuan Li como 1 → "Bingxuan Li".
3. Nunca recorra a "apenas uma empresa correspondeu, então ela lidera". Isso só lhe diz que as outras afiliações não são empresas que você monitora. Atribuição incorreta medida: Filesystem-Based Memory era liderado pela UIUC, mas foi pontuado como liderado pela Adobe porque a Adobe foi a única correspondência.
4. A assinatura de uma empresa não é um artigo da empresa. Apenas * no relatório significa liderança.
Medido em uma janela de duas semanas: Google acertou 10 artigos, mas liderou apenas 4; Google DeepMind
7 acertos, 2 liderados; Adobe 5 acertos, 0 liderados. Qualquer alegação de "N artigos de big tech"
deve dizer a qual coluna se refere.
5. Declare os pontos cegos antes dos números.
- 12% das submissões são apenas PDF e são invisíveis — o teto rígido do estágio 1
- Taxa de erro da Apple ~78% (seus autores frequentemente omitem a afiliação) → corrigido via feed RSS oficial. Este suplemento é obrigatório, não opcional
- Quando o primeiro autor lista várias afiliações, elas não podem ser classificadas; ambas recebem
* interné um marcador, não um julgamento — se o artigo de um estagiário "conta" é uma questão conceitual, exposta para quem chamou decidir
Três camadas de erro — não as confunda
| Camada | Problema | O que fazer quando falha |
|---|---|---|
| 1 extração | Não consegue obter o texto | fontes complementares; todo erro hoje está nesta camada |
| 2 estrutura | Não consegue mapear autor para afiliação | degradar para uma varredura de bloco inteiro, com precisão reduzida |
| 3 entidade | Qual empresa é esta string | unmatched mantém o texto bruto para a tabela; ROR só opera aqui |
ROR é uma tabela de consulta string-para-ID; você precisa da string primeiro. Medido em dois artigos da Xiaomi: um não tinha HTML algum, o outro bloco de autores continha 8 nomes de pessoas e nem uma palavra de afiliação. ROR não pode salvar nenhum dos dois — apenas fontes complementares podem.
Por que cada fonte complementar permanece
| Fonte | Função | Evidência |
|---|---|---|
| RSS da Apple | Corrige um erro sistemático, obrigatório | Janela de duas semanas: 2 raspados vs. 9 oficiais — 78% perdidos |
| Nomes de equipe do arXiv | Cobre "nome da empresa está no slot do autor, não no slot da afiliação" | Xiaomi MiMo Team / Kimi Team; adicionou 2 artigos, zero redundância |
| JSON embutido da MSR | Sonda de verificação cruzada | 25 raspados vs. 7 oficiais — redundante, mantido como controle dentro da execução: se uma fonte oficial tem um artigo que o bloco de autores perdeu, o estágio 1 está quebrado |
Quando uma empresa aparece zero — verifique nesta ordem
- Janela errada — o arXiv indexa com 1–2 dias de atraso e não anuncia nos fins de semana; amplie primeiro
- Categorias erradas — o padrão é cs.AI/cs.CL/cs.LG; robótica é cs.RO, visão cs.CV, sistemas cs.SE
- Pesquisa por nome de equipe —
all:"Xiaomi"/"Hunyuan"/"Kimi Team"funcionam;all:"MiniMax"é inutilizável (5800+ acertos do algoritmo minimax) — useau:"MiniMax" - Canais oficiais — RSS da Apple,
ai.meta.com/results/?content_types[0]=publicationda Meta (nota:/research/publications/retorna 400 para curl simples), NVIDIAresearch.nvidia.com/publications - Somente quando todos os itens acima estiverem vazios você pode dizer "esta empresa não publicou nada nesta janela"
Roteiro
- Adicionar fonte TeX como estágio 1, nível 2 — destar
arxiv.org/e-print/{id}e ler\author{}. Verificado: artigos sem HTML frequentemente têm TeX, com sobrescritos intactos. O ganho de cobertura mais barato disponível - Auto-verificação de integridade dentro da execução — colocar a taxa de acerto do bloco de autores do estágio 1 e a contagem de "a fonte oficial tem, mas o bloco de autores não" diretamente no cabeçalho do relatório. Protege contra uma quebra silenciosa quando o arXiv muda sua marcação (o erro de 78% da Apple foi descoberto por acidente). Não reintroduza taxas de acerto históricas armazenadas para isso — a verificação cruzada dentro da execução é suficiente
Mais uma coisa
A contagem de artigos é oferta, não repercussão. Medido: de 231 artigos de big tech em uma janela de duas semanas, 0 foram discutidos no Hacker News, enquanto todos os artigos discutidos no HN na mesma janela vieram da academia ou de uma startup. Julgar repercussão requer um sinal social separado.