---
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 에이전트 경험을 제공할 수 있다. 이는 단순한 도구가 아닌 '존재하는 에이전트'로서의 차별화된 가치를 창출할 것으로 기대된다.