DOCS/workflow/01_conversation/slack_thread_summary_request.md
happybell80 9cb0145a4e docs: 01_conversation + 02_skills 워크플로우 문서 현행화 — n8n 제거, SKILL.md+executor 기준 재작성
- coldmail_ir_notification_sync: LangGraph+APScheduler 기반으로 전면 재작성
- slack_action_extractor_request: v2 IntentClassifier→executor 흐름 기준 재작성
- slack_thread_summary_request: 동일
- message_flow_v2: _format_as_robeing() 해석 단계 보완
- skill_calendar/email/news_request: SKILL.md→executor 직접 호출 기준 재작성
- skill_slack_send_message_bridge: slack_sdk 직접 호출 + skill-slack HTTP 이중 경로 기술
- slack_direct_api_send: grounding 개선 사항 반영

Refs: DOCS#8

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 07:57:58 +09:00

1.9 KiB

type, tags, last_updated
type tags last_updated
workflow
workflow
slack
thread-summary
skill-slack
intent
2026-04-06

slack_thread_summary_request 워크플로우

목적

Slack 메시지에서 "요약/정리/digest/summary" 의도를 감지하면, skill-slack의 요약 API를 호출하여 결과를 반환한다.

현행 아키텍처

v2 메시지 흐름(IntentClassifier → executor)을 통해 처리된다. n8n Trigger, 별도 webhook은 사용하지 않는다.

흐름

사용자 발화 ("스레드 요약해줘", "대화 정리해줘")
  → message_service_v2.route_message()
  → IntentClassifier.classify()
      — SKILL.md 본문에서 skill-slack 트리거 매칭
      — IntentResult(skill="skill-slack", action="slack_thread", slots=...)
  → executor.execute()
      — registry에서 SKILL_SLACK_URL 환경변수 해소
      — POST {SKILL_SLACK_URL}/api/v1/summarize (httpx)
  → _format_as_robeing() — 결과를 자연어로 변환
  → 채널 응답

주요 코드 경로

단계 코드
진입 app/services/message_service_v2.py:route_message()
의도분류 app/services/brain/intent_classifier.py:IntentClassifier.classify()
스킬 실행 app/services/skills/executor.py:execute()
URL 해소 app/services/skills/registry.py:SkillMeta.resolve_url()
스킬 정의 DOCS/skills/skill-slack/SKILL.md (트리거: slack_thread)

엔드포인트

  • 아웃바운드: POST {SKILL_SLACK_URL}/api/v1/summarize — skill-slack 서비스
  • SKILL_SLACK_URL 환경변수로 해소. IP 하드코딩 없음

관련 문서