DOCS/troubleshooting/251015_claude_coldmail_workflow_langgraph_test.md
Claude-51124 a071f8b159 docs: 문서 작성 원칙 준수하도록 수정
- 파일 크기 222줄 → 128줄 (100줄 이하 목표)
- 코드 블록 최소화 (파일명:줄번호로 대체)
- 파일 참조 일관성 개선
2025-10-15 00:13:34 +09:00

3.3 KiB

Coldmail Workflow LangGraph 테스트

날짜: 2025-10-15 작성자: Claude 관련 파일:

  • rb8001/app/services/workflows/coldmail_workflow.py
  • rb8001/app/services/coldmail_processor.py:73
  • rb8001/.env:43,98-99,139

배경

LangGraph 기반 coldmail workflow 테스트 (Priority 2,3,4 완료 후)

  • 코드 단순화: 316줄 → 114줄
  • 노드: fetch → filter → process → send

문제 1: Docker 빌드 타임아웃

증상: INFO: pip is looking at multiple versions of langchain-openai...

원인:

  • requirements.txt:20 openai==1.6.1 (구버전)
  • langchain-openai는 openai>1.109.1 필요
  • 버전 불일치로 dependency resolver 타임아웃

해결: requirements.txt:20,40-42

  • openai>=1.110.0
  • langchain==0.3.27
  • langchain-openai==0.3.35
  • langgraph==0.6.10

문제 2: PDF 업로드 중복 에러

증상: Failed to upload [공문]...pdf: 400 - File already exists for this team

원인:

  • 이전 테스트 파일이 team_document 테이블에 남아있음
  • file_hash 중복 체크로 재업로드 차단

해결: PostgreSQL 직접 접속하여 삭제

ssh -i ~/.ssh/id_rsa_deploy -p 51123 admin@192.168.219.45 \
  "PGPASSWORD=robeings psql -h localhost -U robeings -d main_db -c \
  \"DELETE FROM team_document WHERE id IN (...);\""

문제 3: Slack 401 Unauthorized

증상:

Failed to upload file to Slack: 401
Failed to create list item: 401

원인 1: 토큰 워크스페이스 불일치

  • 테스트 List F09J1HPPQJG는 Robeing 워크스페이스 (T0925SXPS4D)
  • .env:98 SLACK_BOT_TOKEN이 Company-X 토큰 사용 중

해결 1: .env:98-99

  • SLACK_BOT_TOKEN을 Robeing 토큰으로 변경 (xoxb-9073915808149...)
  • SLACK_LIST_ID=F09J1HPPQJG 유지

원인 2: API Key 누락

  • {"detail":"API key is missing"}
  • SKILL_SLACK_API_KEY 환경변수 없음

해결 2: .env:43

  • SKILL_SLACK_API_KEY=skill-slack-api-key-2025 추가

재시작: docker compose down && docker compose up -d (restart 불가)


문제 4: Lists API invalid_arguments

증상: Failed to create list item: 400 - invalid_arguments

원인: IR 분석 실패로 모든 필드 "N/A" 반환

  • coldmail_processor.py:73에서 business_area="N/A" 가져옴
  • company_name="" → Lists API 거부

상태: 미해결 (IR 분석 개선 필요)


검증 결과

성공:

  • LangGraph 워크플로우 정상 동작
  • Lists API 통합 성공 (테스트 아이템 Rec09LJQYLAH2 생성)
  • Robeing 토큰 인증 성공

실패:

  • IR 분석 실패 (모든 필드 "N/A")
  • company_name="" → Lists API 에러

교훈

테스트 환경 설정

  • List ID와 SLACK_BOT_TOKEN의 워크스페이스 일치 필수 확인
  • 환경변수 체크리스트 작성 (SKILL_SLACK_API_KEY 등)
  • 테스트 전 DB 중복 데이터 정리

에러 핸들링

  • IR 분석 실패 시 "N/A" 대신 유효한 기본값 사용
  • Lists API 전송 전 필드 검증 필요

배포 프로세스

  • .env 수정 후 docker compose down && up -d (restart 불가)
  • 로그 확인 순서: rb8001 → skill-slack → skill-rag-file

남은 작업

  1. IR 분석 개선 (ChromaDB 검색/LLM 프롬프트)
  2. coldmail_processor.py:73 필드 검증 추가
  3. 부분 실패 시 에러 핸들링 강화