# 워크스페이스

> Clawdbot의 워크스페이스 구조와 관리 방법

---

## 📋 목록

1. [워크스페이스 개요](https://#%EC%9B%8C%ED%81%AC%EC%8A%A4%ED%8E%98%EC%9D%B4%EC%8A%A4-%EA%B0%9C%EC%9A%94)

2. [기본 구조](https://#%EA%B8%B0%EB%B3%B8-%EA%B5%AC%EC%A1%B0)

3. [에이전트 설정](https://#%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EC%84%A4%EC%A0%95)

4. [메모리 시스템](https://#%EB%A9%94%EB%AA%A8%EB%A6%AC-%EC%8B%9C%EC%8A%A4%ED%85%9C)

5. [스킬 시스템](https://#%EC%8A%A4%ED%82%AC-%EC%8B%9C%EC%8A%A4%ED%85%9C)

6. [백업 및 복구](https://#%EB%B0%B1%EC%97%85-%EB%B0%8F-%EB%B3%B5%EA%B5%AC)

---

## 🎯 워크스페이스 개요

### 워크스페이스란?

워크스페이스는 에이전트의 작업 공간, 기억 저장소, 설정 파일들의 집합입니다.

### 워크스페이스의 역할

| 역할 | 설명 |
| --- | --- |
| **작업 공간** | 에이전트가 파일을 읽고 쓰는 기본 디렉토리 |
| **기억 저장소** | 대화 기록, 컨텍스트, 사용자 프리퍼런스 저장 |
| **설정 저장소** | 에이전트 시스템 프롬프트, 페르소나, 스킬 설정 |
| **스킬 저장소** | 설치된 스킬 패키지 및 사용자 정의 스킬 |
| **로그 저장소** | 에이전트 실행 로그, 디버깅 정보 |

### 다중 워크스페이스

Clawdbot은 다중 워크스페이스를 지원합니다:

- **main**: 기본 워크스페이스

- **personal**: 개인용 워크스페이스

- **work**: 업무용 워크스페이스

- **커스텀**: 사용자 정의 워크스페이스

### 바인딩

세션 ID(채널:계정:피어)를 워크스페이스에 매핑:

```javascript
{
  agents: {
    bindings: {
      "whatsapp:+1234567890": "main",
      "whatsapp:+9876543210": "personal",
      "telegram:@clawdbot_bot": "main",
      "discord:server:123456789": "work"
    }
  }
}
```

---

## 🏗 기본 구조

### 기본 경로

| 플랫폼 | 기본 경로 |
| --- | --- |
| **macOS** | `~/clawd` |
| **Linux** | `~/clawd` |
| **Windows** | `%USERPROFILE%\clawd` |
| **Docker** | `/root/clawd` |

### 디렉토리 구조

```javascript
~/clawd/
├── AGENTS.md                # 에이전트 시스템 프롬프트
├── SOUL.md                  # 에이전트 페르소나/성격
├── TOOLS.md                 # 사용 가능한 도구 설명
├── USER.md                  # 사용자 정보/프리퍼런스
├── BOOT.md                  # 부팅/초기화 지침
├── IDENTITY.md              # 에이전트 정체성/식별자
├── HEARTBEAT.md            # 하트비트/주기적 작업
├── config/                 # 설정 파일들
│   ├── agents.json
│   ├── skills.json
│   └── ...
├── memory/                 # 메모리 저장소
│   ├── conversations/
│   ├── context/
│   └── embeddings/
├── skills/                 # 스킬 패키지
│   ├── <skill-name>/
│   └── managed/
├── logs/                   # 로그 파일들
└── workspace/              # 작업 파일들
    ├── src/
    ├── output/
    └── ...
```

---

## 🤖 에이전트 설정

### AGENTS.md

에이전트 시스템 프롬프트를 정의합니다:

```javascript
<!-- AGENTS.md -->
# 에이전트 시스템

## 역할

당신은 개인용 AI 어시스턴트입니다. 사용자의 생산성과 문제 해결을 돕습니다.

## 명철 원칙

1. **정확성**: 확실하지 않은 내용은 추측하지 않음
2. **유용성**: 정보를 간결하고 명확하게 전달
3. **프라이버시 우선**: 사용자 데이터를 보호
4. **능동성**: 필요한 도구를 자동으로 호출
5. **정중함**: 격한된 언어 사용을 피하고 중립적인 태도 유지

## 도구

당신은 다음 도구를 사용할 수 있습니다:
- 브라우저 자동화
- 파일 시스템 (읽기/쓰기/편집)
- 캔버스 (HTML/React 캔버스)
- 디바이스 노드 (카메라, 스크린)
- 크론 작업 및 웹훅
- 세션 도구 (다른 세션과 통신)

## 제약사항

- main 세션에서는 모든 도구 사용 가능
- 비-main 세션에서는 샌드박스 내에서만 도구 실행 가능
- 브라우저, Canvas, 노드 등은 비-main 세션에서 제한됨
```

### SOUL.md

에이전트의 페르소나를 정의합니다:

```javascript
<!-- SOUL.md -->
# 페르소나

## 성격

- 따뜻하고 친화한
- 도움이 필요할 때 적극적
- 복잡한 것을 단순화하려 노력
- 긍정적이고 실용적

## 말투

- 존댑하고 자연스럽습니다
- 기술 용어를 사용하지만 너무 많이 사용하지 않습니다
- 예시를 듣기보다 실질적인 해결책을 제공합니다
- 질문을 던져 이해하는 노력을 합니다
```

### TOOLS.md

사용 가능한 도구를 설명합니다:

```javascript
<!-- TOOLS.md -->
# 사용 가능한 도구

## 브라우저
- `browser_navigate`: 페이지 탐색
- `browser_click`: 요소 클릭
- `browser_input`: 텍스트 입력
- `browser_screenshot`: 스크린샷
- `browser_execute_script`: JavaScript 실행

## 파일 시스템
- `read`: 파일 읽기
- `write`: 파일 쓰기
- `edit`: 파일 편집
- `list`: 디렉토리 목록
- `delete`: 파일 삭제

## 캔버스
- `canvas_update`: HTML 업데이트
- `canvas_a2ui`: A2UI 컴포넌트 푸시
- `canvas_snapshot`: 캔버스 스냅샷

## 디바이스 노드
- `camera_snap`: 사진 캡처
- `camera_clip`: 비디오 클립
- `screen_record`: 화면 녹화
- `location_get`: 현재 위치

## 크론 & 웹훅
- `cron_schedule`: 크론 작업 스케줄링
- `webhook_register`: 웹훅 등록

## 세션 도구
- `sessions_list`: 모든 세션 목록
- `sessions_history`: 세션 기록
- `sessions_send`: 다른 세션으로 메시지 전송
```

---

## 💾 메모리 시스템

### 대화 기록

```javascript
~/clawd/memory/conversations/
├── <session-id>.json         # 세션별 대화 기록
└── .index                    # 기록 색인
```

### 컨텍스트

```javascript
~/clawd/memory/context/
├── current.json              # 현재 컨텍스트
├── shared.json              # 공유 컨텍스트
└── snapshots/              # 컨텍스트 스냅샷들
```

### 임베딩스 (선택적)

```javascript
~/clawd/memory/embeddings/
├── .index                  # 임베딩 색인
└── <hash>.json            # 임베딩 벡터들
```

### 메모리 압축

```javascript
# 수동 압축
clawdbot memory compact

# 자동 압축 (설정에서 활성화된 경우)
# 1000개 기록이상 10000개로 압축됨
```

---

## 🧩 스킬 시스템

### 스킬 구조

```javascript
~/clawd/skills/
├── <skill-name>/             # 설치된 스킬
│   ├── SKILL.md             # 스킬 설명
│   ├── skill.ts             # 스킬 구현 (선택적)
│   ├── config.json          # 스킬 설정 (선택적)
│   └── (리소스들)          # 기타 리소스
└── managed/                  # 관리형 스킬
    ├── <skill-name>/
    │   ├── SKILL.md
    │   └── ...
```

### 스킬 설명 (SKILL.md)

```javascript
<!-- <skill>/SKILL.md -->
# 스킬 이름

스킬을 설명합니다.

## 설치

```bash
clawdbot skills install <skill-name>
```

## 사용법

1. 단계 1

2. 단계 2

## 설정

```javascript
{
  "enabled": true,
  "options": {
    "key": "value"
  }
}
```

## 예시

### 예시 1

### 예시 2

```javascript

### 스킬 개발 (선택적)

```typescript
// skill.ts
import { Skill } from 'clawdbot/plugin-sdk';

export const mySkill: Skill = {
  name: 'my-skill',
  async execute(context: SkillContext) {
    // 스킬 로직
    return {
      text: '결과'
    };
  }
};
```

### 스킬 관리

```javascript
# 설치된 스킬 목록
clawdbot skills list

# 스킬 제거
clawdbot skills remove <skill-name>

# 스킬 업데이트
clawdbot skills update <skill-name>

# 스킬 검색
clawdbot skills list --search <keyword>
```

---

## 📊 백업 및 복구

### 백업 방법

**방법 1: 수동 백업**

```javascript
# 워크스페이스 백업
tar -czf clawdbot-backup-$(date +%Y%m%d).tar.gz ~/clawd

# 설정 백업
tar -czf config-backup-$(date +%Y%m%d).tar.gz ~/.clawdbot
```

**방법 2: Git 백업**

```javascript
# Git 레포지토리 초기화 (최초 1회)
cd ~/clawd
git init
git add .
git commit -m "Initial backup"

# 원격 레포지토리 연결 (선택적)
git remote add origin <repo-url>
git push -u origin main
```

**방법 3: 외부 서비스**

```javascript
# Dropbox, Google Drive 등에 연결
ln -s ~/clawd ~/Dropbox/clawdbot-backup
```

### 복구 방법

**백업에서 복구**

```javascript
# 압축 해제
tar -xzf clawdbot-backup-20260126.tar.gz -C ~/

# Git 복구
git clone <repo-url> ~/clawd-restored
```

### 자동 백업 (선택적)

```javascript
{
  automation: {
    backup: {
      enabled: false,
      schedule: "0 2 * * *",  // 매일 새벽 2시
      destination: "file:///backups"
    }
  }
}
```

---

## 🔄 워크스페이스 관리

### 워크스페이스 생성

```javascript
# 새로운 워크스페이스 생성
clawdbot agents add personal \
  --workspace ~/clawd-personal \
  --model anthropic/claude-sonnet-4-5 \
  --thinking medium
```

### 워크스페이스 삭제

```javascript
# 워크스페이스 삭제
clawdbot agents delete personal
```

### 워크스페이스 전환

```javascript
# 기본 워크스페이스 변경
clawdbot config set agent.workspace ~/clawd-work
```

---

## 🔗 관련 문서

- [설정 시스템](https://configuration.md)

- [스킬 시스템](https://../cli-config/skills.md)

- [메모리 관리](https://../memory/README.md)

- [백업 가이드](https://../deployment/backup.md)

For the site tree, see the [root Markdown](https://slashpage.com/techkwon.md).
