팀 프로젝트 에이전트 트랙 — W1 마무리
2026-08-28 기준
Git 정리
- 로컬 main이 origin/main보다 4커밋 앞서 있던 문제 해소
- PR #129(squash merge)와 로컬 커밋이 중복된 상태 → origin/main 기준으로 리셋
- PR 브랜치를 origin/main 기준으로 깨끗하게 재구성 (cherry-pick 방식)
PR 3개 생성 + squash merge 완료
PR #130 — 한글 수사 오탐 방지 + 텍스트 채팅 재연결
- entity_resolver 오탐 수정 후 텍스트 채팅 경로에도
resolve_entities재연결 - ADR-0015(엔티티 오탐 방지 결정 기록) 포함
PR #136 — 테스트·프롬프트 튜닝·STT 비용 로깅
test_prompts.py신규 (12개) — 프롬프트 로더 resolve/render/variablestest_summarizer.py신규 (10개) — 요약 생성 mock 테스트- 에이전트 프롬프트 ID 참조 규칙 2줄 추가 (E2E 데모에서 발견된 ID 혼동 수정)
- STT
_estimate_stt_cost()구현 ($0.006/분),transcribe()반환에cost_usd추가 - ADR-0011에 E2E 데모 실측 데이터 기록
PR #141 — API TestClient 엣지 케이스 41개
- 에이전트 4개 엔드포인트(summarize, chat, confirm, stt) HTTP 레벨 테스트
- 기본 동작 20개 + 엣지 케이스 21개 (경계값, SQL injection, XSS, 권한, 빈 입력 등)
E2E 데모 시나리오 — 기본 4단계
로컬 서버에서 에이전트 채팅 API를 실호출하여 검증:
- 검색: “김도현 찾아줘” → 동명이인 2명 안내
- 조회: “첫 번째 김도현 상세 보여줘” → 프로필·단계 표시
- 상태 변경: “서류심사로 옮겨줘” → 후퇴 불가 안내
- 이메일 초안: “면접 안내 이메일 만들어줘” → pending_action 반환
E2E 엣지 케이스 — 8개 시나리오 전부 PASS
| 시나리오 | 에이전트 동작 |
|---|---|
| 검색 결과 0건 | “검색 결과가 없습니다” + 대안 제시 |
| 모호한 요청 (누구인지 안 밝힘) | 도구 호출 없이 명확화 요청 |
| 잘못된 단계명 (“합격”) | 먼저 동명이인 확인 → 선택 유도 |
| 범위 밖 요청 (삭제) | “삭제 기능 미지원” + 가능한 기능 안내 |
| 공고 목록 조회 | list_postings 호출, 10개 표시 |
| 멀티턴 3단계 (검색→상세→이메일) | ID 추적 정확, draft_email 정상 |
| 특수문자 검색 (O’Brien) | 에러 없이 처리 |
프롬프트 튜닝 — ID 혼동 수정
agent.v1.md에 규칙 2줄 추가:
- application_id는 반드시 직전 도구 결과에서 확인된 ID를 사용
- “이 지원자”같은 지시어는 가장 최근 조회한 지원자의 ID를 참조
Before: Step 4에서 draft_email(application_id=1) (엉뚱한 ID) After: Step 4에서 draft_email(application_id=52) (정확한 ID)
비용 실측 (Haiku 기준)
E2E 기본 4단계:
| 시나리오 | input | output | cost_usd |
|---|---|---|---|
| 검색 | 11,003 | 234 | $0.012 |
| 조회 | 17,249 | 349 | $0.019 |
| 상태 변경 | 5,801 | 184 | $0.007 |
| 이메일 초안 | 6,015 | 97 | $0.007 |
| 합계 | 40,068 | 864 | $0.045 |
엣지 케이스 8개 시나리오: $0.083
STT 비용: $0.006/분 × 오디오 길이 (Whisper 기준)
테스트 현황
전체 185개 통과
| 모듈 | 테스트 수 |
|---|---|
| api_agent (TestClient) | 41 |
| entity_resolver | 35 |
| write_tools | 19 |
| stages | 15 |
| stt | 15 |
| cost | 13 |
| prompts | 12 |
| summarizer | 10 |
| runtime | 8 |
| tool_dispatch | 7 |
| 기타 (pull로 추가분) | 10 |
일정 현황 (W1~W5)
| 주차 | 단계 | 상태 |
|---|---|---|
| W1 (~08/28) | M1~M4 조기 완료 | ✅ 코드 완료 + E2E 성공 + 프롬프트 튜닝 + 비용 실측 + STT 로깅 + API TestClient |
| W2 (~09/04) | 목업·중간점검 | 목업 테스트→소연 전달, 09/04 중간점검 |
| W3 (~09/11) | 프롬프트 폴리시 | opus-5 실측, 운영 STT 테스트 |
| W4 (~09/18) | STT 폴리시 | STT→에이전트 E2E 연결 데모, 운영 통합 테스트 |
| W5 (~09/25) | 데모 동결·발표 | 시나리오 최종 확인, 면접 스토리, AI 원가 데이터 정리 |
| 09/28~30 | 버퍼 | 09/30 1차 완성 |