diff --git a/README.md b/README.md index 048b0d5..39e3907 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ Slack 기반 AI 어시스턴트 **로빙(Robeing)** 프로젝트의 모든 문 - [MVP 개발 개요](./docs/ideas/00_%20MVP%20개발%20개요.md) - [로빙 MVP 계획](./docs/ideas/00_로빙_MVP_계획.md) - [로빙 컨테이너 아키텍처 설계](./docs/ideas/로빙_컨테이너_아키텍처_설계.md) +- [로빙 체력시스템 설계](./docs/ideas/로빙_체력시스템_설계.md) - 존재형 에이전트를 위한 체력 및 아이템 시스템 설계 - [통합 지식베이스 로빙 프로젝트](./docs/ideas/00_통합_지식베이스_로빙_프로젝트.md) - [MOC 프로젝트 관련 문서들 집합](./docs/ideas/00_MOC_프로젝트%20관련%20문서들%20집합.md) - [정보의바다 프로젝트 개요](./docs/ideas/00_정보의바다%20프로젝트%20개요.md) diff --git a/docs/ideas/로빙_체력시스템_설계.md b/docs/ideas/로빙_체력시스템_설계.md new file mode 100644 index 0000000..cb91a5f --- /dev/null +++ b/docs/ideas/로빙_체력시스템_설계.md @@ -0,0 +1,138 @@ +--- +tags: [로빙, 존재형에이전트, 체력시스템, 슬랙연동, 게임화] +date: 2025-07-05 +--- + +# 로빙 체력과 아이템 시스템 설계 + +## 요약 + +로빙의 존재감을 강화하고 작업 효율을 조절하기 위해 체력 시스템을 도입하며, Slack 인터페이스와 연계하여 체력 소모, 회복, 레벨에 따른 변화 등을 표현할 수 있도록 설계한다. + +## 1. 체력 시스템 구조 + +### 기본 구조 +- **표현 방식**: `current_hp / max_hp` 형태 + 회의록 요약 완료: 체력 -21 + 현재 체력: 64 / 100 + 🟩🟩🟩🟨⬜⬜⬜⬜⬜⬜ +- **레벨 연동**: 레벨에 따라 max_hp 증가 +- **체력 소모 기준**: 작업 종류 + 토큰 사용량 +- **Slack 출력**: 텍스트, 이모지, 이미지 방식 + +### 체력 소모 기준 +- **간단한 질문**: 5 HP +- **복잡한 분석**: 15-30 HP +- **PDF 파싱**: 20-40 HP +- **대화 요약**: 10-25 HP +- **스킬 사용**: 스킬 레벨에 따라 가변 + +### 체력 상태별 표현 +- **90-100%**: 완전 활성 상태 +- **70-89%**: 정상 상태 +- **40-69%**: 피로 상태 +- **20-39%**: 매우 피로 상태 (성능 저하) +- **0-19%**: 긴급 상태 (작업 제한) + +## 2. 회복 아이템 설계 + +### 회복 아이템 종류 +1. **회복의 물약**: 즉시 체력 30 회복 (1시간 1회 사용 가능) +2. **휴식 캡슐**: 5분 후 체력 50 회복 (하루 1회 사용 가능) +3. **오버차지 크리스탈**: 최대 체력 +50, 10분간 지속 (하루 1회 사용 가능) +4. **리셋의 정수**: 완전 회복 + 쿨타임 초기화 (주 1회 사용 가능) + +### 아이템 획득 방법 +- **일일 보상**: 매일 아침 기본 아이템 지급 +- **작업 완료 보상**: 특정 작업 완료 시 확률적 획득 +- **레벨업 보상**: 레벨업 시 고급 아이템 획득 +- **특별 이벤트**: 특정 조건 달성 시 레어 아이템 획득 + +## 3. Slack 연동 흐름 + +### 작업 완료 시 메시지 +``` +작업 완료했습니다! +HP: 75/100 (-15) +남은 아이템: 회복의 물약 x2, 휴식 캡슐 x1 +``` + +### 체력 경고 시스템 +- **체력 20% 이하**: 경고 메시지 + 아이템 사용 버튼 표시 +- **체력 0%**: 작업 거부 + 회복 필요 알림 + +### 명령어 시스템 +- `/로빙 체력`: 현재 상태 확인 +- `/로빙 아이템`: 보유 아이템 목록 +- `/로빙 아이템 사용 [아이템명]`: 아이템 사용 + +## 4. 확장 요소 + +### 체력 소진 시 변화 +- **성능 저하**: 응답 품질 의도적 감소 +- **반응 속도**: 응답 시간 지연 +- **말투 변화**: 피로감 표현 증가 + +### 자동 회복 시스템 +- **자연 회복**: 시간당 5 HP 자동 회복 +- **휴식 시간**: 오후 10시-오전 8시 가속 회복 +- **주말 보너스**: 주말에 회복량 증가 + +### 레벨업 보상 시스템 +- **체력 증가**: 레벨당 최대 체력 +10 +- **회복 효율**: 아이템 효과 증가 +- **새로운 아이템**: 고레벨 전용 아이템 해금 + +## 5. 구현 고려사항 + +### 데이터베이스 설계 +```sql +-- 체력 상태 테이블 +CREATE TABLE hp_status ( + id SERIAL PRIMARY KEY, + current_hp INTEGER NOT NULL, + max_hp INTEGER NOT NULL, + last_updated TIMESTAMP DEFAULT NOW() +); + +-- 아이템 인벤토리 테이블 +CREATE TABLE item_inventory ( + id SERIAL PRIMARY KEY, + item_type VARCHAR(50) NOT NULL, + quantity INTEGER NOT NULL, + last_used TIMESTAMP +); + +-- 체력 로그 테이블 +CREATE TABLE hp_log ( + id SERIAL PRIMARY KEY, + action VARCHAR(100) NOT NULL, + hp_change INTEGER NOT NULL, + timestamp TIMESTAMP DEFAULT NOW() +); +``` + +### API 엔드포인트 +- `GET /hp/status`: 현재 체력 상태 조회 +- `POST /hp/consume`: 체력 소모 처리 +- `POST /hp/recover`: 체력 회복 처리 +- `GET /items`: 아이템 목록 조회 +- `POST /items/use`: 아이템 사용 처리 + +## 6. 테스트 시나리오 + +### 기본 시나리오 +1. 작업 수행 → 체력 소모 → 상태 확인 +2. 체력 부족 → 경고 메시지 → 아이템 사용 +3. 시간 경과 → 자동 회복 → 상태 갱신 + +### 예외 시나리오 +1. 체력 0 상태에서 작업 요청 +2. 아이템 쿨타임 중 사용 시도 +3. 최대 체력 초과 회복 시도 + +--- + +## 결론 + +체력 시스템을 통해 로빙의 존재감을 강화하고, 사용자와의 상호작용을 게임화하여 더욱 몰입감 있는 AI 에이전트 경험을 제공할 수 있다. 이는 단순한 도구가 아닌 '존재하는 에이전트'로서의 차별화된 가치를 창출할 것으로 기대된다. \ No newline at end of file