통합
CapiBot을 이미 사용 중인 도구에 연결하세요. 이 가이드는 Composio를 통해 1000개 이상의 앱 통합과 GitHub 저장소 관리를 설정하는 것을 다룹니다.
Composio 통합
Composio는 Notion, Linear, Jira, Slack, Gmail, Airtable 등 1000개 이상의 앱에 대한 통합된 접근을 제공합니다.
Composio API 키 얻기
1단계: Composio에 가입
- composio.dev로 이동
- "Get Started" 또는 "Sign Up" 클릭
- 이메일 또는 GitHub으로 계정 생성
- 이메일 주소 확인
2단계: API 키 얻기
- Composio 대시보드에 로그인
- 설정 → API 키 (또는 개발자 → API 키)로 이동
- "새 API 키 생성" 클릭
- 이름 지정:
CapiBot Integration - API 키 복사 (
composio_로 시작)
3단계: CapiBot에 API 키 추가
- Mission Control 열기 (
http://localhost:3002) - 설정 → 통합으로 이동
- Composio 섹션 찾기
- 필드에 API 키 붙여넣기:
Composio API Key: composio_xxxxxxxxxxxxxxxx - "Save" 또는 "Connect" 클릭
- 다음이 표시되어야 함: ✅ 연결됨
Composio를 통해 앱 연결
Composio API 키가 추가되면 개별 앱을 연결할 수 있습니다.
1단계: 사용 가능한 앱 탐색
- Mission Control에서 통합 → Composio로 이동
- 앱 탐색 또는 검색 (Notion, Linear, Slack 등)
- 앱이 카테고리별로 구성 (프로젝트 관리, 커뮤니케이션, CRM 등)
2단계: 앱 연결
- 원하는 앱 찾기 (예: Notion)
- "Connect" 클릭
- 앱의 OAuth 인증 페이지로 리디렉션됨
- (아직 로그인하지 않은 경우) 앱 계정에 로그인
- 요청된 권한 검토
- "Authorize" 또는 "Allow" 클릭
- Mission Control으로 다시 리디렉션됨
- 이제 앱이 표시됨: ✅ 연결됨
3단계: 앱 접근 구성 일부 앱은 CapiBot이 접근할 수 있는 것을 구성할 수 있게 합니다:
Notion의 경우:
- 공유할 페이지/데이터베이스 선택
- 접근 레벨 선택 (읽기 전용 또는 읽기-쓰기)
- "Allow access" 클릭
Slack의 경우:
- 연결할 워크스페이스 선택
- 봇이 접근할 수 있는 채널 선택
- 권한 부여 (메시지 본문, 메시지 읽기 등)
Linear의 경우:
- 연결할 팀 선택
- 이슈 접근 권한 설정
- 웹훅 설정 구성
Composio 연결된 앱 사용
연결되면 에이전트가 Composio 스킬을 통해 이러한 앱을 사용할 수 있습니다.
예시: Notion 페이지 생성
사용자: 회의 노트를 "프로젝트 아이디어"라는 Notion 페이지에
만들어줘
에이전트: [composio 스킬 사용]
1. Notion이 연결되었는지 확인 ✅
2. "페이지 생성" 작업 찾기
3. 회의 노트로 실행
✅ Notion에 "프로젝트 아이디어" 페이지 생성됨
보기: https://notion.so/...
예시: Slack 메시지 본문
사용자: 배포가 완료되었다는 메시지를 #engineering 채널에
본문해줘
에이전트: [composio 스킬 사용]
✅ #engineering에 메시지 본문:
"배포 완료! 🚀"
Composio 연결 관리
연결된 앱 보기:
- 통합 → Composio로 이동
- 상태와 함께 모든 연결된 앱 보기
- 녹색 확인 표시 = 연결 및 작동 중
- 빨간색 X = 연결 문제
앱 다시 연결: 앱이 오류를 표시하면:
- "Reconnect" 버튼 클릭
- 앱 다시 인증
- 필요한 경우 권한 업데이트
앱 연결 해제:
- 목록에서 앱 찾기
- "Disconnect" 클릭
- 확인: "이것은 [앱]에 대한 접근을 제거합니다"
- CapiBot은 더 이상 이 앱을 사용할 수 없음
일반적인 Composio 문제
"연결된 앱 없음"
- 아직 앱을 연결하지 않음
- Composio 탭으로 이동하여 원하는 앱에서 "Connect" 클릭
"앱 연결 만료됨"
- OAuth 토큰이 일정 시간 후 만료됨
- "Reconnect"를 클릭하여 연결 새로고침
"권한 거부됨"
- 앱이 연결되었지만 필요한 권한이 없음
- 더 넓은 권한으로 연결 해제 및 다시 연결
- 또는 Composio 대시보드에서 앱 설정 확인
"속도 제한 초과"
- 짧은 시간에 너무 많은 API 호출
- 몇 분 기다렸다가 다시 시도
- Composio 플랜 업그레이드 고려
GitHub 통합
GitHub을 연결하여 이슈, 풀 리퀘스트, 저장소 활동을 CapiBot 작업과 동기화합니다.
GitHub Personal Access Token 얻기
1단계: GitHub 설정으로 이동
- GitHub 계정에 로그인
- 프로필 사진 클릭 (오른쪽 상단)
- 설정 선택
- 왼쪽 사이드바에서 개발자 설정 클릭
2단계: Personal Access Token 생성
- Personal access tokens → Tokens (classic) 클릭
- "Generate new token" → "Generate new token (classic)" 클릭
- 비밀번호를 다시 입력해야 할 수 있음
- 토큰에 이름 지정:
CapiBot Integration - 만료 설정 (권장: 90일)
- 범위 (권한) 선택:
필수 범위:
☑️ repo (프라이빗 저장소 전체 제어)
☑️ repo:status (커밋 상태 접근)
☑️ repo_deployment (배포 상태 접근)
☑️ public_repo (퍼블릭 저장소 접근)
☑️ repo:invite (저장소 초대 접근)
☑️ admin:repo_hook (저장소 훅 전체 제어)
선택적 범위 (더 많은 기능을 위해):
☑️ read:org (조직 및 팀 멤버십 읽기)
☑️ read:user (사용자 프로필 데이터 읽기)
☑️ read:project (프로젝트 보드 읽기)
- 아래로 스크롤하여 "Generate token" 클릭
- 중요: 즉시 토큰 복사!
ghp_로 시작- GitHub은 한 번만 표시
- 안전하게 저장
3단계: CapiBot에 토큰 추가
- Mission Control 열기 (
http://localhost:3002) - 설정 → 통합 → GitHub으로 이동
- 토큰 붙여넣기:
GitHub Personal Access Token: ghp_xxxxxxxxxxxxxxxx - "Connect" 클릭
- 다음이 표시되어야 함: ✅ 연결됨
GitHub 동기화 설정
연결되면 동기화할 항목을 구성합니다.
1단계: 저장소 선택
- 통합 → GitHub 동기화로 이동
- 접근 권한이 있는 저장소 목록이 표시됨
- 동기화하려는 저장소 옆의 상자를 체크
- "Save Selection" 클릭
2단계: 동기화 설정 구성
동기화 모드: [작업으로 이슈 가져오기 ▼]
• 작업으로 이슈 가져오기
• 양방향 동기화 (작업 ↔ 이슈)
• 읽기 전용 (모니터링만)
필터:
☑️ 열린 이슈만
☐ 풀 리퀘스트 포함
☑️ 특정 레이블: [bug, feature, urgent]
☐ 모든 레이블
자동 할당 규칙:
When: "frontend"로 레이블된 이슈
할당: @Pixel (디자이너)
When: "backend"로 레이블된 이슈
할당: @Nova (엔지니어)
When: "bug"로 레이블된 이슈
우선순위: 높음
3단계: 동기화 테스트
- 연결된 저장소 중 하나에 테스트 이슈 생성
- 필터와 일치하는 레이블 추가 (예: "bug")
- 30-60초 기다림
- Mission Control의 작업 패널 확인
- 이슈가 작업으로 가져와졌는지 확인
GitHub 동기화 작동 방식
실시간 동기화:
GitHub 이슈 생성
↓
GitHub이 CapiBot에 웹훅 본문
↓
CapiBot이 웹훅 수신
↓
이슈에서 작업 T-123 생성
↓
레이블 규칙에 따라 할당
↓
에이전트에게 알림
↓
에이전트가 작업 수행
↓
CapiBot에서 작업 완료
↓
(양방향 동기화인 경우) GitHub 이슈 닫힘
동기화 내역: 모든 동기화된 항목 보기:
최근 가져오기
✅ #234 "로그인 버그 수정" → T-123 (Nova)
동기화: 2분 전 | 레이블: bug
✅ #235 "다크 모드 추가" → T-124 (Pixel)
동기화: 5분 전 | 레이블: feature
⚠️ #236 "문서 업데이트" → 건과됨
이유: 일치하는 레이블 필터 없음
GitHub 동기화 관리
일시 중지/재개:
- 연결을 끊지 않고 동기화를 일시적으로 중지
- 유지보수 중에 유용
- GitHub 동기화 → "Pause" 클릭으로 이동
선택적 동기화: 특정 이슈만 동기화:
동기화할 레이블: [bug, feature, urgent]
무시: [wontfix, duplicate, question]
대량 가져오기: 모든 기존 이슈 가져오기:
모든 열린 이슈 가져오기?
저장소: my-org/my-project
발견된 이슈: 47
☑️ 예, 47개 모두 가져오기
☐ 기본 에이전트에게 할당: @Nova
☐ 레이블에 따라 우선순위 설정
일반적인 GitHub 문제
"인증 실패"
- 토큰이 만료되었을 수 있음
- 새 토큰 생성
- 토큰에 필요한 범위가 없을 수 있음
- 범위 확인 및 다시 생성
"저장소를 찾을 수 없음"
- 해당 저장소에 접근 권한이 없을 수 있음
- 저장소 권한 확인
- 소유하거나 협업자인 저장소 시도
"웹훅 전달 실패"
- CapiBot이 퍼블릭하게 접근 가능하지 않을 수 있음
- GitHub 설정에서 웹훅 URL 확인
- CapiBot이 실행되고 접근 가능한지 확인
"이슈가 동기화되지 않음"
- 레이블 필터가 이슈와 일치하는지 확인
- 동기화가 활성화되었는지 확인 (일시 중지되지 않음)
- 오류를 위해 동기화 내역 확인
API 키 관리
모든 통합 키의 중앙 집중식 관리.
접근: 설정 → API Keys
API 키 보기
┌─────────────────────────────────────────────────────────┐
│ API 키 관리 │
├─────────────────────────────────────────────────────────┤
│ │
│ 통합 API 키 │
│ │
│ Composio API Key │
│ 상태: ✅ 활성 │
│ 마지막 사용: 5분 전 │
│ [키 보기] [재생성] [삭제] │
│ │
├─────────────────────────────────────────────────────────┤
│ │
│ GitHub Personal Access Token │
│ 상태: ✅ 활성 │
│ 범위: repo, admin:repo_hook │
│ 만료: 2024년 12월 15일 │
│ [키 보기] [재생성] [삭제] │
│ │
└─────────────────────────────────────────────────────────┘
새 API 키 추가
1단계: "새 키 추가" 클릭
2단계: 통합 유형 선택
- Composio
- GitHub
- Serper (웹 검색)
- Groq (음성 전사)
- 커스텀
3단계: 키 세부 정보 입력
통합: Composio
이름: 내 Composio 키
키: composio_xxxxxxxxxxxxxxxx
4단계: 저장 및 테스트
- "Save" 클릭
- 확인을 위해 "Test Connection" 클릭
- 다음이 표시되어야 함: ✅ 연결 성공
키 순환
순환 시기:
- 90일마다 (모범 사례)
- 손상이 의심될 때
- 직원이 퇴사할 때
- 보안 사고 후
순환 방법:
- 외부 서비스에서 새 키 생성
- 설정 → API 키로 이동
- 오래된 키 찾기
- "Regenerate" 클릭
- 새 키 붙여넣기
- "Save" 클릭
- 오래된 키가 즉시 무효화됨
보안 모범 사례
Composio의 경우:
- CapiBot을 위한 전용 Composio 계정 사용
- 개인 Composio 계정 사용하지 않기
- 연결된 앱을 정기적으로 검토
- 사용하지 않는 앱 연결 제거
GitHub의 경우:
- 가능한 경우 세밀한 토큰 사용
- 토큰 만료를 90일로 제한
- 최소한의 필요한 권한만 부여
- 저장소에 토큰 커밋하지 않기
- 프로덕션에서는 환경 변수 사용
일반:
- 메시지에서 API 키 공유하지 않기
- 스크린샷에 키 포함하지 않기
- 키를 정기적으로 순환
- 이상 징후를 위해 사용량 모니터링
- 손상된 경우 즉시 키 취소
통합 상태 모니터링
한 곳에서 모든 통합의 상태 확인.
접근: 설정 → 통합 상태
┌─────────────────────────────────────────────────────────┐
│ 통합 상태 │
├─────────────────────────────────────────────────────────┤
│ │
│ ✅ Composio │
│ API: 연결됨 │
│ 앱: 5개 연결됨 (Notion, Linear, Slack, ...) │
│ 마지막 확인: 방금 │
│ │
│ ✅ GitHub │
│ 토큰: 유효 (45일 후 만료) │
│ 웹훅: 3개 활성 │
│ 저장소: 5개 동기화 │
│ 마지막 동기화: 2분 전 │
│ │
│ ⚠️ Slack │
│ 연결: 활성 │
│ 경고: 속도 제한 (87% 사용) │
│ 작업: 사용량 모니터링 │
│ │
│ ❌ Linear │
│ 연결: 만료됨 │
│ 오류: 토큰이 취소됨 │
│ 작업: 다시 연결 필요 │
│ [지금 다시 연결] │
│ │
└─────────────────────────────────────────────────────────┘
통합 문제 해결
연결이 "연결 끊김"으로 표시됨
- API 키가 유효한지 확인
- 키에 필요한 권한이 있는지 확인
- 수동으로 연결 테스트
- 필요한 경우 키 다시 입력
"속도 제한 초과"
- 속도 제한 재설정 대기
- 동기화 빈도 감소
- 서비스 플랜 업그레이드
- 지속적인 경우 지원 문의
"웹훅 전달 실패"
- CapiBot이 퍼블릭하게 접근 가능한지 확인
- 웹훅 URL이 올바른지 확인
- 방화벽 설정 확인
- 웹훅 로그 검토
"동기화 지연"
- 통합 상태 확인
- 동기화가 활성화되었는지 확인
- 오류 메시지 확인
- 수동 동기화 트리거 시도
통합 패턴
패턴 1: GitHub + CapiBot 개발 워크플로우
GitHub 이슈 생성 → CapiBot 작업 생성
↓ ↓
"bug"로 레이블됨 @Nova에게 할당
↓ ↓
Nova가 버그 수정 작업 완료
↓ ↓
PR 생성 산출물 첨부
↓ ↓
PR 병합 작업 종료
↓ ↓
GitHub 이슈 닫힘 ←── 작업 완료
패턴 2: Composio 지식 관리
에이전트가 주제 연구
↓
발견 사항이 Notion에 저장됨 (Composio 통해)
↓
기업 지식 베이스에 정리됨
↓
다른 에이전트가 Notion 문서 참조
↓
시간이 지남에 따라 지식 성장
패턴 3: 멀티 도구 자동화
크론 작업이 일일 트리거
↓
에이전트가 GitHub 이슈 확인 (GitHub 통해)
↓
Notion에 요약 생성 (Composio 통해)
↓
Slack 알림 본문 (Composio 통해)
↓
팀이 일일 업데이트 보기
모범 사례
시작하기
- 하나의 통합부터 시작 — 한 번에 모든 것을 연결하지 마세요
- 철저히 테스트 — 의존하기 전에 각 통합이 작동하는지 확인
- 설정 문서화 — 어떤 키가 어디에 사용되는지 메모
- 사용량 모니터링 — 정기적으로 통합 상태 검토
보안
- 전용 계정 사용 — 통합을 위해 개인 계정 사용하지 않기
- 최소 권한 — 필요한 접근 권한만 부여
- 정기적인 순환 — 90일마다 키 순환
- 로그 모니터링 — 이상 활동 감시
유지보수
- 상태 확인 — 주간 통합 상태 검토
- 앱 업데이트 — 연결된 앱 최신 상태 유지
- 정리 — 사용하지 않는 통합 제거
- 키 백업 — 안전하게 오프라인 저장