Search

17. Workflow -> Agent 전환하기

섹션
5. Agent: 사내 QnA 봇

Workflow → Agent 전환하기

Workflow vs Agent 개념

Anthropic 블로그 정의 (2024년 12월)

Workflow: 개발자가 지정한 단계에 따라 흐름
Agent: AI가 스스로 다음 단계 결정

시각적 비교

Workflow 흐름

질문 입력 → FAQ 확인 → 답변 생성 or 문서명 추출 → 벡터 스토어 검색 → 답변 생성
개발자 지정 순서: 정확히 설정된 대로 진행

Agent 흐름

질문 입력 → AI가 주어진 도구들을 자율적으로 사용하여 답변 결정
AI 자율 판단: 충분하다고 생각할 때까지 도구 사용

개발 접근법 변화

MCP 등장 이후 트렌드

도구 개발 집중: 프롬프트보다 도구 개발에 집중
프롬프트 중요도 감소: 모델 성능 향상으로 복잡한 프롬프트 불필요
AI 자율성 활용: 도구를 최대한 잘 사용하는 것이 핵심

코드 전환 과정

파일 설정

기존 workflow 복사: 동일한 작업을 다른 방식으로 구현
파일명 변경: workflow → agent

State 변경

MessageState 도입

메시지 리스트: System, Human, AI, Tool 메시지 포함
add_message: 리스트 뒤에 메시지 추가
AgentState → MessageState: 상속 관계로 단순화

노드를 도구로 전환

CheckFAQ Tool

@tool 데코레이터: 함수를 도구로 변환
파라미터 변경: state 대신 question 파라미터
docstring: 도구 설명 추가

GetDocumentName Tool

문자열 반환: 문서명 반환
docstring: 상세한 도구 설명

RetrieveDocs Tool 구현 방식

방식 1: 직접 구현

@tool 데코레이터: question과 document_name 파라미터
필터링 기능: 문서명 기반 필터링 가능

방식 2: createRetrieverTool

LangChain 함수: 기존 retriever를 도구로 변환
한계: 문서 필터링 기능 부족
권장하지 않음: 직접 구현이 더 효율적

Agent 생성

create_react_agent 사용

LangGraph 제공: 성능 향상된 에이전트
자체 구현 대비: 권장되는 방식
시스템 프롬프트: "주어진 도구를 사용하여 답변"

그래프 구조 변화

Edge 불필요: AI가 자율적으로 도구 순서 결정
단일 노드: 에이전트 하나만 존재
도구 통신: 연속적인 도구 사용

실행 및 테스트

Message 입력 방식

리스트 형태: 기존 question 대신 메시지 리스트
HumanMessage: 사용자 질문을 메시지로 변환

스트리밍 실행

사고 과정 확인: AI의 판단 과정 실시간 관찰
도구 사용 순서: FAQ → 문서명 → 검색 → 답변

성능 비교

자율적 판단

순서 지정 없음: 개발자가 순서를 명시하지 않음
효율적 처리: AI가 스스로 최적 경로 선택

도구 활용

필터링 기능: 커스텀 도구가 더 효율적
createRetrieverTool 한계: 문서명 필터링 미지원

장단점 비교

Agent의 장점

개발 용이성: 순서 지정 불필요
유연성: AI의 자율적 판단
확장성: 도구 추가 시 자동 활용

Agent의 단점

토큰 소비 증가: 메시지와 도구 메시지로 인한 비용 상승
예측 어려움: AI 판단에 의존

Workflow의 특징

명확한 순서: 담당자가 업무 순서를 정확히 알고 있는 경우
반복 작업: 자동화된 반복 업무에 적합
토큰 효율성: 정해진 경로로 토큰 절약

전략적 선택 기준

사용 사례별 판단

반복 업무: Workflow 권장
창의적 작업: Agent 권장
비용 고려: 토큰 사용량 vs 개발 효율성

미래 트렌드

MCP 활용 확산

호스팅 서비스: 다양한 회사에서 MCP 제공
팀 간 공유: 개발팀뿐만 아니라 다른 팀에서도 활용
도구 중심: 도구 개발이 주요 트렌드

비용 효율성 개선

모델 성능 향상: GPT-4o mini > GPT-3.5 성능
비용 감소: 전체적인 AI 사용 비용 하락
장기적 관점: 에이전트의 확장성이 더 유리