공부하는 안씨의 기록

[정리&후기] 2차미니프로젝트: AI Agent 설계 본문

KT AIVLE 8기 AI 트랙 활동

[정리&후기] 2차미니프로젝트: AI Agent 설계

an씨 2025. 11. 3. 18:49

2차 미니프로젝트 주제인 AI 면접관 Agent 설계 개인과제 관련 내용 정리 및 프로젝트 후기

 

AI Agent

  • 스스로 의사 결정하며, 도구를 사용하여 목표를 달성하는 시스템
    • 문서 요약 & 질의응답 에이전트
    • 쇼핑 추천 에이전트
    • 코딩 도우미 / 계산기 에이전트

주요 구성 요소

  • 노드: 그래프에서 특정 작업이나 판단을 수행하는 단위
  • 엣지: 노드 간의 연결을 나타내며, 작업의 흐름을 정의(한 노드의 작업이 완료된 후, 어떤 노드로 이동할지를 결정하는 역할)
  • 조건부 엣지: 특정 조건에 따라 노드 간의 분기 처리를 가능하게 함(특정 조건이 충족되면 A노드에서 B노드로 이동하는 등)
  • 스테이트(state): 그래프의 현재 상태 값을 저장 및 전달하는 역할 (대화 이력, 수집한 정보, 중간 결과 등을 포함. 각 노드는 이 state를 입력으로 받아 처리한 후 업데이트)

graph

  • state 정의 → node 정의 → 그래프 구조 → 그래프 실행

 

AI 면접관 Agent 설계하기 (개인 과제)

사전 준비

  • 이력서 pdf 파일 - (analyze_resume) -> 요약 및 키워드 추출 완료
  • -> 맞춤 질문 전략 도출 - (generate_question_strategy) -> 전략 dict
  • -> (preprocessing_interview) -> 첫 질문 생성, 초기 state
  • -> 첫 질문에 대한 사용자의 답변 입력 -> (update_current_answer)

Agent Graph

개인 과제 전체 구조
출력 graph

  • 사용자의 첫 답변에 대해 평가 - (evaluate_answer) 
  • -> decide_next step -> Q&A가 3회 이상 진행되었는가? 
  • -> 예 : summarize_interview, 종료
  • -> 아니오: generate_question (이전 맥락 연관 심화 질문 생성) -> 사용자 답변 입력 -> evaluate_answer: 평가로 돌아감 

여기까지가 개인적으로 진행했던 과제이고, 이후 팀원들과 함께 고도화를 진행하였다.

 

처음에 질문을 생성할 때 어떻게 생성할 것인지, 

답변 평가 방식을 구체화하여 재평가하고, 답변 평가 결과에 따라 후속 질문을 어떻게 생성할지, 그리고 중복되는 질문이 나오지 않도록 어떻게 처리할 것인지 고민하였다. 다른 조원들의 좋은 코드를 보고 이해하며 많이 배울 수 있는 시간이 된 것 같다. 

특히, 나는 중복되는 질문을 그저 과거 질문을 저장하고 유사도 비교로 처리하고자 했는데, 다른 팀원은 동일한 주제가 3번 이상 겹칠 시 다른 주제로 넘어가는 방식으로 중복 제거 코드를 작성한 것이 인상깊었다. 미니 프로젝트는 팀원들의 다양한 시각과 구현 방법을 통해 많이 배워가는 시간인 것 같다. 

 

프로젝트 마지막 날에는 Gradio 연결까지 마무리하였고, 다함께 발표자료를 작성했다. 

더 공부해서, 좀 더 도움이 되는 팀원이 되고싶다는 생각이 든 프로젝트 시간이었다. 

다른 조의 발표를 들으니, 짧은 시간 안에 색다르게 구현한 조원들도 있었고, 발표 시 맨 앞장에 summary를 통해 짧은 시간 안에 효과적이면서 효율적으로 전달한 조원들도 있었다. 다른 조의 발표를 통해서도 많이 배울 수 있었다.

역시 미니 프로젝트가 진행되는 주차에는 긴장도 되고 많이 피곤한 것 같다. 다들 체력이 대단하신 것 같다... 다음 미니 프로젝트에서도 힘낼 수 있게, 내일 진행될 이론 강의도 잘 수강해야겠다.