--- type: workflow tags: [workflow, skill-news, news, executor, intent] last_updated: 2026-04-06 --- # skill_news_briefing_request 워크플로우 ## 목적 뉴스 스킬 요청 처리. 뉴스 검색(search), 요약(summarize), 최신 뉴스 조회(latest)를 SKILL.md 기반 executor를 통해 skill-news 서비스로 전달한다. ## 현행 아키텍처 - **의도분류**: IntentClassifier가 SKILL.md 본문으로 `skill-news` 매칭 - **실행**: executor가 `SKILL_NEWS_URL` 환경변수에서 URL 해소 후 HTTP 호출 n8n webhook 브릿지는 사용하지 않는다. ## 흐름 ``` 사용자 발화 ("요즘 뉴스 있어?") -> IntentClassifier.classify() -- IntentResult(skill="skill-news", action="news_fetch", slots={...}) -> executor.execute() -- registry.resolve_url() -> SKILL_NEWS_URL 환경변수 -- POST {SKILL_NEWS_URL}/api/news/search (httpx) -> _format_as_robeing() -> 응답 ``` ## SKILL.md 엔드포인트 | action | 메서드 | 경로 | 설명 | |--------|--------|------|------| | `news_fetch` | POST | `/api/news/search` | 키워드 기반 뉴스 검색 | | `news_summary` | POST | `/api/news/summarize` | 기사 요약 | | (조회) | GET | `/api/news/latest` | 최신 뉴스 목록 | ## 주요 코드 경로 | 단계 | 코드 | |------|------| | 스킬 정의 | `DOCS/skills/skill-news/SKILL.md` | | 의도분류 | `app/services/brain/intent_classifier.py` | | 실행 | `app/services/skills/executor.py:execute()` | | 뉴스 게시 | `app/services/skills/news_posting_skill.py` -- Slack 채널 뉴스 게시 | | 스타트업 뉴스 | `app/services/skills/startup_news_skill.py` | | 헤드라인 워크플로우 | `app/services/workflows/headlines_workflow.py` -- 일일 헤드라인 | ## 환경변수 | 변수 | 용도 | |------|------| | `SKILL_NEWS_URL` | skill-news 서비스 베이스 URL | ## 관련 문서 - [skill-news SKILL.md](/home/admin/robeing/DOCS/skills/skill-news/SKILL.md) -- 스킬 계약 - [skill_calendar_request.md](./skill_calendar_request.md) - [message_flow_v2.md](../01_conversation/message_flow_v2.md) -- v2 메시지 흐름