Claude 기반 개인 AI 친구 - 텔레그램 봇
- 🧠 Extended Thinking - Claude의 사고 과정 활용
- 🔍 시맨틱 메모리 - 로컬 임베딩으로 관련 기억 검색
- ⚡ 빠른 응답 - 사전 로딩, 병렬 처리, 스마트 캐싱
- 🎭 페르소나 - 이름, 성격, 말투 커스터마이징
- 🔧 20+ 도구 - 파일, 웹, 일정, 메모리 등
요구사항: Node.js 18 이상
npm install -g companionbot
companionbot첫 실행 시 안내에 따라:
- Telegram Bot Token 입력 (@BotFather)
- Anthropic API Key 입력 (console.anthropic.com)
- Telegram에서 봇에게
/start보내기
터미널에서 실행하는 명령어:
companionbot # 봇 시작 (첫 실행 시 설정 마법사 자동 시작)
companionbot setup # 설정 마법사 (전체)
companionbot setup telegram # Telegram 토큰 설정
companionbot setup anthropic # Anthropic API 키 설정
companionbot setup weather # 날씨 API 설정
companionbot setup calendar # Google Calendar 연동
companionbot setup brave # 웹 검색 API 설정
companionbot --help # 도움말
companionbot --version # 버전 확인CI/CD나 스크립트에서 사용할 때:
companionbot -n # --no-interactive 모드환경변수로 설정 (비대화형 모드에서 사용):
TELEGRAM_TOKEN- Telegram 봇 토큰ANTHROPIC_API_KEY- Anthropic API 키
봇과 대화할 때 사용하는 명령어:
| 명령어 | 설명 |
|---|---|
/start |
봇 시작 |
/help |
도움말 보기 |
/model |
AI 모델 변경 (haiku/sonnet/opus) |
/compact |
대화 정리 (토큰 절약) |
/memory |
최근 기억 보기 |
/health |
봇 상태 확인 |
/reset |
대화 초기화 |
| 명령어 | 설명 |
|---|---|
/calendar_setup |
Google Calendar 연동 설정 |
/weather_setup |
날씨 도시 설정 |
/briefing |
브리핑 설정/실행 |
/reminders |
리마인더 목록 보기 |
/heartbeat |
하트비트 상태 확인 |
| 명령어 | 설명 |
|---|---|
/pin <메시지> |
메시지 고정 (항상 컨텍스트에 포함) |
/pins |
고정된 메시지 목록 |
/unpin <번호> |
고정 해제 |
/context |
현재 컨텍스트 상태 확인 |
"하이쿠로 바꿔줘"
"10분 뒤에 알려줘"
"서울 날씨 어때?"
"React 19 검색해줘"
"매일 아침 9시에 뉴스 알려줘"
- Claude 모델 - Sonnet 4 / Opus 4 / Haiku 3.5
- Extended Thinking - 내부 스트리밍으로 thinking 지원
- 도구 사용 - 20+ 도구, 병렬 실행
- 로컬 임베딩 - @xenova/transformers
- 하이브리드 검색 - 벡터 + 키워드 (FTS5)
- 한국어 최적화 - trigram tokenizer
- 리마인더 - 자연어로 알림 설정
- Google Calendar - 일정 조회/추가
- Cron - 반복 작업 스케줄링
- 브리핑/하트비트 - 주기적 알림
- Warmup - 시작 시 사전 로딩
- 병렬 처리 - 워크스페이스, 도구 실행
- LRU 캐시 - 임베딩, 워크스페이스
~/.companionbot/ 구조:
├── SOUL.md # 봇 성격/말투
├── IDENTITY.md # 이름, 이모지
├── USER.md # 사용자 정보
├── MEMORY.md # 장기 기억
├── AGENTS.md # 행동 지침
├── HEARTBEAT.md # 주기적 체크 항목
├── TOOLS.md # 도구 설정
├── canvas/ # 작업 디렉토리
└── memory/ # 일일 로그
└── YYYY-MM-DD.md
위 CLI 명령어로 설정:
- 날씨 - OpenWeatherMap API (
companionbot setup weather) - 일정 - Google Calendar 연동 (
companionbot setup calendar) - 검색 - Brave Search API (
companionbot setup brave)
npm install -g pm2
pm2 start companionbot --name bot
pm2 startup && pm2 save- API 키는 OS 키체인에 저장 (macOS Keychain, Windows Credential Manager, Linux libsecret)
- 파일 접근 경로 검증 (TOCTOU 방지)
- 명령어 화이트리스트
- SSRF 방지
- API 키 확인
tail -f /tmp/companionbot.log로그 확인
sudo apt-get install libsecret-1-dev # Debian/Ubunturm -rf ~/.companionbot && companionbot현재: v0.15.2
주요 변경:
- README 명령어 섹션 정리 (CLI/텔레그램 분리)
- 메모리 검색 → 도구 방식 (성능 개선)
- tools 모듈 분할 (15개 파일)
- Agent 메모리 누수 방지
- /help 명령어, 한국어 메시지 통일
전체 변경 이력: CHANGELOG.md