- 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>
65 lines
2.2 KiB
Markdown
65 lines
2.2 KiB
Markdown
---
|
|
type: workflow
|
|
tags: [workflow, skill-calendar, calendar, executor, intent]
|
|
last_updated: 2026-04-06
|
|
---
|
|
|
|
# skill_calendar_request 워크플로우
|
|
|
|
## 목적
|
|
|
|
캘린더 스킬 요청 처리. 일정 생성(create), 조회(list/get), 삭제(delete)를 SKILL.md 기반 executor를 통해 skill-calendar 서비스로 전달한다.
|
|
|
|
## 현행 아키텍처
|
|
|
|
- **의도분류**: IntentClassifier가 SKILL.md 본문으로 `skill-calendar` 매칭
|
|
- **실행**: executor가 `SKILL_CALENDAR_URL` 환경변수에서 URL 해소 후 HTTP 호출
|
|
- **메서드 결정**: SKILL.md frontmatter `endpoints`가 action별 HTTP 메서드(GET/POST/DELETE)와 경로를 정의
|
|
|
|
n8n webhook 브릿지는 사용하지 않는다.
|
|
|
|
## 흐름
|
|
|
|
```
|
|
사용자 발화 ("내일 2시 미팅 잡아줘")
|
|
-> IntentClassifier.classify()
|
|
-- IntentResult(skill="skill-calendar", action="create_event", endpoint="/api/events", slots={...})
|
|
-> executor.execute()
|
|
-- registry.resolve_url() -> SKILL_CALENDAR_URL 환경변수
|
|
-- registry.resolve_method("create_event") -> POST (SKILL.md frontmatter)
|
|
-- POST {SKILL_CALENDAR_URL}/api/events (httpx, X-User-Id 헤더)
|
|
-> _format_as_robeing() -> 응답
|
|
```
|
|
|
|
## SKILL.md 엔드포인트 정의
|
|
|
|
| action | 메서드 | 경로 |
|
|
|--------|--------|------|
|
|
| `create_event` | POST | `/api/events` |
|
|
| `list_events` | GET | `/api/events` |
|
|
| `get_events` | GET | `/api/events` |
|
|
| `delete_event` | DELETE | `/api/events/{event_id}` |
|
|
|
|
경로 파라미터(`{event_id}`)는 executor가 params에서 자동 보간한다.
|
|
|
|
## 주요 코드 경로
|
|
|
|
| 단계 | 코드 |
|
|
|------|------|
|
|
| 스킬 정의 | `DOCS/skills/skill-calendar/SKILL.md` |
|
|
| 의도분류 | `app/services/brain/intent_classifier.py` |
|
|
| 실행 | `app/services/skills/executor.py:execute()` |
|
|
| URL/메서드 해소 | `app/services/skills/registry.py:SkillMeta` |
|
|
|
|
## 환경변수
|
|
|
|
| 변수 | 용도 |
|
|
|------|------|
|
|
| `SKILL_CALENDAR_URL` | skill-calendar 서비스 베이스 URL |
|
|
|
|
## 관련 문서
|
|
|
|
- [skill-calendar SKILL.md](/home/admin/robeing/DOCS/skills/skill-calendar/SKILL.md) -- 스킬 계약
|
|
- [skill_email_send_request.md](./skill_email_send_request.md)
|
|
- [message_flow_v2.md](../01_conversation/message_flow_v2.md) -- v2 메시지 흐름
|