Skill de Coleta Diária de Notícias de IA
Quando usar este skill: quando o usuário mencionar intenções como "briefing de IA diário / notícias de IA / o que está acontecendo no mundo da IA hoje / enviar briefing / escrever na tabela Feishu", siga o fluxo deste documento.
O que o usuário pode dizer: "Execute o briefing de IA de hoje para mim" / "Veja o que está acontecendo no mundo da IA hoje" / "Envie o briefing para o meu Feishu".
Coleta as notícias de IA do dia, filtra e resume em um briefing diário; de acordo com a configuração, entrega no ecossistema Feishu (tabela multidimensional / push via robô / arquivamento em documento na nuvem). Cada informação mantém o link original, permitindo rastreabilidade.
Funciona sem configurar o Feishu (L0): a etapa 3 detecta a configuração e pula automaticamente; o briefing é exibido diretamente na conversa.
Fluxo de Trabalho (O Agente deve executar nesta ordem)
Etapa 0: Preparação do Ambiente
cd <diretório_do_skill>/scripts
# Verificação de dependências: se houver ModuleNotFoundError, execute pip install feedparser requests primeiro
python -c "import feedparser, requests" 2>/dev/null || pip install feedparser requests
# Detecção de proxy: se funcionar, ativa (necessário para fontes internacionais); se não, desativa (fontes chinesas já forçam conexão direta; fontes internacionais falham com fallback automático)
curl -s -o /dev/null -m 5 -x http://127.0.0.1:7897 https://openai.com \
&& export HTTPS_PROXY=http://127.0.0.1:7897 \
|| unset HTTPS_PROXY HTTP_PROXY
O lark-cli não precisa ser especificado manualmente: o script detecta automaticamente o PATH e locais comuns de instalação (incluindo o diretório global do npm no Windows); apenas para instalações não padrão é necessário export LARK_CLI=<caminho_completo>.
Etapa 1: Coleta de Itens Brutos
python fetch_sources.py --hours 24 # Gera items.json (para execução diária agendada, recomenda-se --hours 26 para cobrir lacunas entre dias)
- Cada fonte em
sources.jsondeclaranetwork: proxy|direct: fontes internacionais usam proxy (variável de ambienteHTTPS_PROXY), fontes chinesas forçam conexão direta - Falhas em fontes individuais (ex.: arXiv com 502 esporádico) são registradas em
items.jsonna chaveerrors; a execução continua, sem interromper
Etapa 2: Filtragem e Resumo (Responsabilidade do Agente/LLM)
Leia todos os itens de items.json e então:
- Remover ruído: elimine itens não relacionados a IA (HN/InfoQ contêm muito conteúdo não relacionado a IA)
- Remover duplicatas e mesclar: notícias do mesmo evento de múltiplas fontes são mescladas, mantendo o link da fonte mais autoritativa
- Resumir: 2-3 frases em chinês, apenas relatando fatos
- Classificar:
category(Avanços de Ponta / Destaques da Comunidade / Notícias em Chinês / Artigos Rápidos / Novidades de Produtos),importance(alta = lançamentos a nível de setor · financiamentos · políticas / média / baixa),tagslivres - Resumo do dia: escreva um
digestde 2-3 frases resumindo os destaques e tendências do dia, colocado no nível superior deselection.json— ele se tornará a abertura do briefing
Escreva o resultado em scripts/selection.json, no seguinte formato (idx refere-se ao índice do array em items.json; source_override é opcional, usado para normalizar a fonte para nomes de opções da tabela, como TechCrunch / The Verge):
{
"digest": "Resumo do dia em 2-3 frases",
"items": [
{"idx": 0, "title": "Título editável", "summary": "Resumo", "importance": "alta",
"category": "Avanços de Ponta", "tags": ["tag"], "source_override": "OpenAI"}
]
}
Em seguida:
python make_curated.py # Gera curated.json (10-30 itens)
Regra de ouro: url deve ser extraído apenas do texto original de items.json, não pode ser reescrito ou adivinhado — a rastreabilidade é o valor central deste skill.
Etapa 3: Entrega no Feishu (ramificação baseada na configuração; deve ser verificada primeiro)
Primeiro, verifique scripts/config.json: se o arquivo não existir, ou se base_token/table_id/user_open_id/base_url estiverem vazios → considere que o Feishu não está configurado, pule todos os comandos desta etapa e vá diretamente para "Relatório ao Usuário Final" (exiba o texto do briefing para o usuário); no final do relatório, adicione uma frase: Para obter arquivamento em tabela e push diário, configure o Feishu; consulte o arquivo docs/setup.md do repositório.
Se configurado, execute:
python run_daily.py curated.json # Escreve na tabela + push de card + arquivamento em documento na nuvem
- Antes de escrever, mescla automaticamente o pool de opções de tags (tags livres não causam incompatibilidade) e escreve item por item
- O push é feito como card de mensagem do Feishu (com colunas, título clicável), com três níveis de degradação para garantir entrega (card → markdown → texto puro)
- O arquivamento insere blocos de âncora no documento na nuvem (bloco de destaque + seções categorizadas, com as mais recentes no topo); se o arquivamento não estiver configurado, pula automaticamente
- A execução repetida escreve novamente; não reexecute
Após a Conclusão: Relatório ao Usuário
- Feishu não configurado (L0): organize o curated.json como texto do briefing (resumo geral + cada item com "título / resumo / link original") e adicione a dica de configuração
- Feishu configurado: relate quatro itens — número de itens de hoje, distribuição por categoria, resumo geral em uma frase, fontes com falha
Se houver falha de ponta a ponta: apenas reporte o erro específico; não tente novamente mais de uma vez.
Configuração do Usuário (scripts/config.json)
Copie config.example.json para config.json e preencha — as instruções de como obter cada campo estão nos comentários do modelo;
as etapas de instalação do lark-cli e configuração do aplicativo Feishu estão no arquivo docs/setup.md do repositório. Todos os campos suportam substituição por variáveis de ambiente.
Este diretório de skill não contém nenhuma chave secreta; as credenciais do Feishu são gerenciadas pela configuração global do lark-cli.
Dependências Prévias
- Python 3.10+:
pip install feedparser requests - Para entrega no Feishu (Etapa 3): é necessário lark-cli (CLI oficial,
npx @larksuite/cli@latest install) comconfig initeauth loginjá executados; se o lark-cli não for encontrado, use a variável de ambienteLARK_CLIpara especificar o caminho completo
Lista de Fontes (sources.json, pode ser alterada)
| Fonte | Método | Rede |
|---|---|---|
| OpenAI Official News | RSS | Proxy |
| Google DeepMind / Google AI Blog | RSS | Proxy |
| Anthropic News | sitemap (sem RSS oficial) | Proxy |
| Hugging Face Blog | RSS | Proxy |
| TechCrunch / The Verge AI | RSS | Proxy |
| MIT Tech Review AI | RSS | Proxy |
| Hacker News AI Hot Posts | Algolia API (janela de tempo + votos + filtro de borda de palavra-chave) | Direta |
| InfoQ Chinese | RSS (itens relacionados a IA são filtrados na Etapa 2) | Direta |
| arXiv cs.AI / cs.CL | arXiv API | Proxy |
Tratamento de falhas: quando o endereço de um RSS mudar, primeiro verifique com curl e depois atualize o sources.json; feeds gratuitos de Jiqizhixin/Liangziliang e sitemaps de xAI/Stability (ruído na página de navegação/antibot) já estão indisponíveis, não perca tempo tentando novamente.
Execução Agendada
O skill não tem estado, qualquer agendador pode chamá-lo. Recomenda-se diariamente às 08:00 (Ásia/Xangai). Consulte docs/scheduling.md para configurações específicas de cada hospedeiro; o modelo de prompt está em examples/cron-prompt.txt.