AI 일일 뉴스 수집 스킬
이 스킬을 사용해야 할 때: 사용자가 "AI 뉴스레터 / AI 뉴스 / 오늘 AI 업계 소식 / 뉴스레터 푸시 / Feishu 시트에 작성" 등의 의도를 언급할 때 이 파일의 절차를 따릅니다.
사용자가 말할 수 있는 예: "오늘 AI 뉴스레터 실행해줘" / "오늘 AI 업계 주요 소식 봐줘" / "뉴스레터를 내 Feishu에 푸시해줘".
당일 AI 뉴스를 수집하고, 선별 및 요약하여 뉴스레터를 작성합니다. 설정에 따라 Feishu 3종 세트(멀티 차원 테이블 / 봇 푸시 / 클라우드 문서 보관)에 전달합니다. 각 정보는 원본 링크를 보존하여 추적 가능합니다.
Feishu를 설정하지 않아도 사용할 수 있습니다(L0): 3단계에서 설정을 감지하고 자동으로 건너뛰며, 뉴스레터가 대화에 직접 출력됩니다.
작업 흐름 (Agent가 이 순서대로 실행)
0단계: 환경 준비
cd <스킬 디렉토리>/scripts
# 의존성 자가 진단: ModuleNotFoundError 발생 시 먼저 pip install feedparser requests 실행
python -c "import feedparser, requests" 2>/dev/null || pip install feedparser requests
# 프록시 탐지: 연결되면 활성화(해외 소스 필요), 연결되지 않으면 직접 연결(중문 소스는 강제로 직접 연결, 해외 소스 실패 시 자동 폴백)
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
lark-cli를 수동으로 지정할 필요가 없습니다: 스크립트가 자동으로 PATH와 일반적인 설치 위치(Windows npm 전역 디렉토리 포함)를 탐지합니다. 비표준 설치인 경우에만 export LARK_CLI=<전체 경로>가 필요합니다.
1단계: 원시 항목 수집
python fetch_sources.py --hours 24 # items.json 출력 (매일 정기 실행 시 --hours 26 권장, 날짜 간 경계 커버)
- 각 소스는
sources.json에network: proxy|direct로 선언됨: 해외 소스는 프록시(환경 변수HTTPS_PROXY), 중문 소스는 강제 직접 연결 - 개별 소스 실패(예: arXiv 간헐적 502)는
items.json의errors에 기록되고 계속 실행되며 중단하지 않음
2단계: 선별 및 요약 (Agent/LLM의 책임)
items.json의 모든 항목을 읽은 후 다음을 수행합니다:
- 노이즈 제거: AI와 관련 없는 항목 제거(HN/InfoQ에 많은 비AI 콘텐츠 혼입)
- 중복 병합: 동일 이벤트의 여러 소스 보도를 병합하고 가장 권위 있는 원문 링크 보존
- 요약: 각 항목 2-3문장의 중문으로, 사실만陈述
- 태깅:
category(최신 동향/커뮤니티 핫이슈/중문 뉴스/논문 다이제스트/제품 소식),importance(높음=업계급 발표·투자·정책 / 중 / 낮음), 자유tags - 일일 총평: 2-3문장의
digest를 작성, 오늘의 핫이슈와 큰 흐름 요약, selection.json 최상위에 배치——뉴스레터 시작 부분이 됨
결과를 scripts/selection.json에 작성, 형식은 다음과 같음(idx는 items.json의 배열 인덱스 참조; source_override는 선택 사항, 소스를 테이블 옵션 이름(예: TechCrunch / The Verge)으로 통일하는 데 사용):
{
"digest": "2-3문장 일일 총평",
"items": [
{"idx": 0, "title": "덮어쓸 제목", "summary": "요약", "importance": "높음",
"category": "최신 동향", "tags": ["태그"], "source_override": "OpenAI"}
]
}
그런 다음:
python make_curated.py # curated.json 합성 (10-30개 항목)
철칙: url은 items.json의 원문에서만 가져와야 하며, 수정하거나 추측하지 않음——추적 가능성은 이 스킬의 핵심 가치입니다.
3단계: Feishu 적용 (설정에 따라 분기, 먼저 판단해야 함)
먼저 scripts/config.json 확인: 파일이 없거나 base_token/table_id/user_open_id/base_url 중 하나라도 비어 있음 → Feishu가 설정되지 않은 것으로 판단, 이 단계의 모든 명령 건너뛰기, 바로 "완료 후 보고"로 이동(뉴스레터 본문을 사용자에게 출력); 보고서末尾에 다음 문장 추가: Feishu 설정 시 테이블 보관과 일일 푸시를 받을 수 있습니다. 자세한 내용은 저장소 docs/setup.md를 참조하세요.
설정되어 있으면 실행:
python run_daily.py curated.json # 테이블 작성 + 카드 푸시 + 클라우드 문서 보관
- 작성 전 자동으로 태그 옵션 풀 병합(자유 태그 불일치 방지), 항목별로 작성
- Feishu 메시지 카드로 푸시(분할 열, 제목 클릭 가능), 3단계 다운그레이드로 전달 보장(카드→markdown→순수 텍스트)
- 보관 시 클라우드 문서 앵커 블록 뒤에 삽입(callout 핫이슈 블록 + 분류별 섹션, 최신이 위에); 보관이 설정되지 않은 경우 자동 건너뛰기
- 반복 실행 시 중복 작성되므로 재실행 금지
완료 후: 사용자에게 보고
- Feishu 설정 안 됨(L0): curated.json을 정리하여 뉴스레터 본문으로 출력(총평 + 각 항목 "제목 / 요약 / 원문 링크"), 설정 안내 추가
- Feishu 설정됨: 네 가지 항목 보고——오늘 항목 수, 분류 분포, 총평 한 문장, 실패한 소스
엔드투엔드 실패 시: 구체적인 오류만 보고하고, 재시도는 한 번을 초과하지 않음.
사용자 설정 (scripts/config.json)
config.example.json을 복사하여 config.json으로 만들고 작성——각 항목의 획득 방법은 템플릿 주석에 설명되어 있으며,
lark-cli 설치 및 Feishu 앱 설정 단계는 저장소 docs/setup.md를 참조하세요. 모든 필드는 환경 변수로 덮어쓰기 가능합니다.
이 스킬 디렉토리에는 비밀 키가 포함되어 있지 않으며, Feishu 자격 증명은 lark-cli 전역 설정으로 관리됩니다.
선행 의존성
- Python 3.10+:
pip install feedparser requests - Feishu 적용(3단계)은 lark-cli(공식 CLI,
npx @larksuite/cli@latest install)가config init및auth login을 완료해야 함; lark-cli를 찾을 수 없으면 환경 변수LARK_CLI로 전체 경로 지정
정보 소스 목록 (sources.json, 추가/삭제 가능)
| 소스 | 방식 | 네트워크 |
|---|---|---|
| OpenAI 공식 뉴스 | RSS | 프록시 |
| Google DeepMind / Google AI 블로그 | RSS | 프록시 |
| Anthropic 뉴스 | sitemap (공식 RSS 없음) | 프록시 |
| Hugging Face 블로그 | RSS | 프록시 |
| TechCrunch / The Verge AI | RSS | 프록시 |
| MIT Tech Review AI | RSS | 프록시 |
| Hacker News AI 인기 게시물 | Algolia API (시간 창+투표 수+키워드 경계 필터) | 직접 연결 |
| InfoQ 중문 | RSS (AI 관련 항목은 2단계에서 선별) | 직접 연결 |
| arXiv cs.AI / cs.CL | arXiv API | 프록시 |
장애 처리: RSS 주소 변경 시 먼저 curl로 확인한 후 sources.json 업데이트; 机器之心/量子位의 무료 API, xAI 및 Stability의 sitemap(네비게이션 페이지 노이즈/안티 크롤링)은 모두 사용 불가능하므로 재시도에 시간 낭비하지 마십시오.
정기 실행
스킬은 상태 비저장이며, 모든 스케줄러가 호출 가능합니다. 권장 시간은 매일 08:00(Asia/Shanghai)입니다. 각 호스트의 설정 방법은 docs/scheduling.md를 참조하고, 프롬프트 템플릿은 examples/cron-prompt.txt를 참조하세요.