본문 바로가기

반응형

전체 글

(172)
Claude Code 디버깅 완전 가이드 — 에이전트가 실패할 때 추적하는 법 에이전트가 틀린 코드를 자신 있게 작성했습니다. 어디서 잘못됐는지 모릅니다. 에이전트한테 물어봐도 모릅니다. 이 상황을 체계적으로 추적하는 법을 정리했습니다.[핵심 요약]→ 문제: 에이전트 실패는 일반 버그보다 추적이 어려움→ 원인: 비결정적, 멀티스텝, 컨텍스트 의존→ 디버깅 레이어: 컨텍스트 → 툴 호출 → LLM 추론 → 출력→ 도구: Claude Code /debug, LangSmith 트레이싱, 로그 분석→ 패턴: 격리 → 재현 → 원인 파악 → 수정 → 검증→ 핵심: "에이전트가 뭘 보고 있었는가"가 디버깅의 출발점에이전트 디버깅이 왜 어려운가일반 코드 디버깅:→ 스택 트레이스 → 라인 번호 → 원인 명확→ 같은 입력 → 같은 오류 (재현 가능)→ 로컬에서 중단점 설정 가능에이전트 디버깅:→ ..
Cursor Rules 완전 가이드 — .cursorrules 잘 쓰는 법 Cursor를 쓰는데 매번 같은 말을 반복하고 있습니까. "TypeScript로 써줘", "함수명은 camelCase로", "테스트 코드도 같이". .cursorrules에 한 번 써두면 다시는 반복하지 않아도 됩니다.[핵심 요약]→ .cursorrules: 프로젝트 루트에 두는 Cursor 전용 지시 파일→ 역할: 모든 AI 요청에 자동으로 적용되는 시스템 프롬프트→ 범위: 프로젝트 전체 (글로벌) 또는 디렉토리별 (로컬)→ 형식: 마크다운 텍스트 (구조화 권장)→ Cursor 3: .cursor/rules/ 디렉토리로 확장 (다중 규칙 파일)→ 효과: 코드 일관성, 반복 지시 제거, 팀 컨벤션 자동 적용 .cursorrules가 뭔지 30초 정리없을 때:사용자: "로그인 API 만들어줘"Cursor:..
LLM-as-Judge 완전 가이드 — AI로 AI 출력을 자동 평가하는 법 LLM 응답 품질을 사람이 일일이 평가하고 있습니까. 1000개 응답을 사람이 보면 3일이 걸립니다. LLM-as-Judge는 같은 작업을 3분에 끝냅니다.[핵심 요약]→ 정체: LLM이 다른 LLM의 응답을 자동으로 평가하는 패턴→ 용도: 응답 품질 평가, A/B 테스트, 회귀 테스트, 프로덕션 모니터링→ 패턴: 단일 평가, 쌍 비교, 참조 기반, 루브릭 기반→ 도구: Claude API + 구조화 출력, LangSmith, Ragas→ 신뢰도: 사람 평가와 80~90% 일치 (단, 편향 있음)→ 비용: 평가당 $0.001~0.01 수준→ 주의: 자기 편향, 위치 편향 → 설계로 보완 필요 LLM-as-Judge가 왜 필요한가AI 서비스 응답 품질 평가 방법 비교:1. 사람 평가:→ 정확도: 가장 높음..
프롬프트 버전 관리 완전 가이드 — Git처럼 프롬프트를 관리하는 법 프롬프트를 수정했더니 응답 품질이 떨어졌습니다. 언제 바꿨는지, 뭘 바꿨는지 모릅니다. 되돌릴 수도 없습니다. 코드는 Git으로 관리하면서 프롬프트는 왜 노션에 복붙하고 있습니까.[핵심 요약]→ 문제: 프롬프트 변경 이력 없음 → 품질 저하 원인 추적 불가→ 해결: 프롬프트를 코드처럼 버전 관리→ 방법: Git 기반 파일 관리 + 메타데이터 + 자동 평가→ 도구: YAML 파일 + Git + LangSmith / PromptLayer / 자체 구축→ 원칙: 프롬프트 = 코드 → 같은 방식으로 관리→ 효과: A/B 테스트, 롤백, 팀 협업, 품질 추적 가능왜 프롬프트 버전 관리가 필요한가코드 버전 관리 (당연하게 함):git commit -m "로그인 버그 수정"git revert HEAD # 되돌리기g..
LLM 프롬프트 캐싱 완전 가이드 — 같은 말 두 번 하지 마세요, 비용 90% 줄이는 법 시스템 프롬프트가 매 요청마다 다시 처리되고 있습니다. 캐싱 하나로 비용의 90%를 날릴 수 있습니다.[핵심 요약]→ 문제: LLM API는 같은 시스템 프롬프트도 매번 토큰 비용 청구→ 해결: 프롬프트 캐싱 — 한 번 처리된 컨텍스트를 재사용→ 절감: 캐시 히트 시 입력 토큰 비용 90% 절감 (Claude 기준)→ 지원: Claude (Anthropic), GPT-4o (OpenAI), Gemini 3.1 (Google)→ 적합한 곳: 긴 시스템 프롬프트, 문서 분석, RAG, 멀티턴 대화→ 주의: TTL 있음 (Claude 5분, GPT 1시간) — 전략적 설계 필요프롬프트 캐싱이 왜 필요한가# 캐싱 없을 때 — 매 요청마다 전체 토큰 과금system_prompt = """당신은 법률 전문 AI 어..
AI 에이전트 롤백 전략 완전 가이드 — 에이전트가 망쳤을 때 복구하는 법 에이전트가 프로덕션 DB를 잘못 수정했습니다. 파일 200개를 잘못 덮어썼습니다. 되돌릴 방법이 없습니다. 이 상황을 구조적으로 막는 법을 정리했습니다.[핵심 요약]→ 문제: AI 에이전트는 실수를 확신에 차서 함 — 일반 버그보다 위험→ 해결: 액션 실행 전 스냅샷, 실행 후 검증, 실패 시 자동 롤백→ 핵심 패턴: Dry Run, 트랜잭션 래퍼, 스냅샷, 사람 확인 게이트→ 도구: Git, DB 트랜잭션, 파일 백업, 샌드박스 실행→ 원칙: 되돌릴 수 없는 액션은 항상 사람이 확인왜 AI 에이전트의 실수가 더 위험한가일반 버그 vs AI 에이전트 실수:일반 버그:→ 재현 가능 — 같은 입력에 같은 오류→ 스택 트레이스 명확→ 원인 파악 후 수정AI 에이전트 실수:→ 비결정적 — 재현이 어려움→ 에이전..
AI 에이전트 상태 관리 완전 가이드 — 장기 실행 에이전트에서 상태를 잃지 않는 법 에이전트가 30분 작업 중 20분에 크래시났습니다. 처음부터 다시 시작합니다. 이 문제를 구조적으로 해결하는 법을 정리했습니다.[핵심 요약]→ 문제: LLM 컨텍스트는 세션 종료 시 사라짐 → 장기 작업에서 치명적→ 해결: 상태를 외부 저장소에 명시적으로 영속화→ 레이어: 메모리 계층 (인메모리 → Redis → DB) 구분→ 핵심 패턴: Checkpoint, Event Sourcing, 체크포인트 재시작→ 도구: LangGraph Checkpointer, Redis, Supabase, MemGPT 패턴→ 원칙: 에이전트가 죽어도 상태는 살아있어야 함왜 상태 관리가 어려운가일반 소프트웨어 상태 관리:→ 변수에 값 저장 → 프로세스가 살아있는 동안 유지→ DB 저장 → 영구 보존AI 에이전트 상태 관리:→..
AI 에이전트 테스트 전략 완전 가이드 — 단위 테스트부터 통합 테스트, E2E까지 일반 소프트웨어는 같은 입력에 항상 같은 출력이 나옵니다. AI 에이전트는 그렇지 않습니다. 테스트 전략 자체가 달라야 합니다.[핵심 요약]→ 문제: AI 에이전트는 비결정적 → 기존 단위 테스트로는 불충분→ 해결: 레이어별 테스트 전략 (툴 → 에이전트 로직 → 통합 → E2E)→ 핵심 도구: pytest + unittest.mock, LangSmith, Pytest-asyncio→ 평가 방법: LLM-as-Judge, 골든셋 비교, 행동 기반 검증→ CI/CD: 에이전트 테스트를 파이프라인에 자동화하는 법→ 원칙: 완벽한 재현보다 "허용 가능한 범위" 검증이 핵심왜 기존 테스트가 안 통하나소프트웨어 테스트의 기본 전제는 결정론적 동작입니다. 같은 입력 → 항상 같은 출력. AI 에이전트는 이 전제를 ..

반응형