LLM 엔지니어링9장 · 도구를 쓰는 LLM 과 Agentic Workflow9 / 21← 이전목차다음 →MetaContents

9장. 도구를 쓰는 LLM 과 Agentic Workflow

워크플로와 에이전트

식당에는 정해진 코스 요리도 있고, 손님 말을 듣고 주방장이 알아서 만드는 요리도 있습니다. 코스 요리는 늘 같은 맛을 내고, 알아서 만드는 요리는 다양한 주문에 맞춥니다. LLM 서비스에도 순서를 코드로 정한 워크플로와, LLM 이 순서를 정하는 에이전트가 있습니다.

순서를 코드가 정하는 워크플로와 LLM 이 정하는 에이전트를 견준 두 카드

왼쪽 워크플로는 "조건 뽑기 → 빈 방 찾기 → 예약 → 답 쓰기"처럼 순서를 코드가 정하고, LLM 은 조건 뽑기와 답 쓰기 같은 칸에서만 일합니다. 오른쪽 에이전트는 어떤 도구를 몇 번 부를지 LLM 이 정합니다. 여기서 코스 요리가 워크플로, 주방장 마음대로가 에이전트입니다. 둘 사이에 여러 단계가 있어서, 워크플로의 한 칸만 에이전트로 두기도 합니다(Agentic Workflow).

자주 쓰는 짜임

짜임하는 일예
체인앞 단계의 결과를 다음 단계에 넘긴다조건 뽑기 → 빈 방 찾기 → 예약
라우팅질문의 종류를 가려 알맞은 길로 보낸다예약 요청은 예약 흐름, 규정 질문은 RAG 로
병렬여러 일을 한꺼번에 하고 모은다세 검색기의 결과를 모아 섞기
평가하고 고치기결과를 검사해 틀리면 다시 시킨다출처가 없으면 다시 답하게 하기
에이전트LLM 이 도구와 순서를 정한다무엇을 물을지 모르는 열린 요청

무엇을 고를까

Python
def choose(steps_known, model_small, can_undo):
    """설명용 판단 규칙: 순서를 알고, 모델이 작고, 되돌리기 어려울수록 워크플로 쪽으로"""
    score = steps_known + model_small + (not can_undo)
    return "워크플로" if score >= 2 else "에이전트"

print("회의실 예약(순서 정해짐, 작은 모델, 되돌리기 번거로움):", choose(True, True, False))
print("열린 조사(순서 모름, 큰 모델, 읽기만):", choose(False, False, True))

앞 줄은 "워크플로", 뒤 줄은 "에이전트"가 나옵니다. 판단 규칙은 설명을 위해 단순하게 만든 것이고, 실제로는 같은 일 묶음으로 둘을 재 보고 고릅니다(프로젝트).

코드에 나오는 함수

코드쉬운 뜻
steps_known, model_small, can_undo순서를 아는가, 모델이 작은가, 되돌릴 수 있는가를 True·False 로 받는다
steps_known + model_small + (not can_undo)True 는 1, False 는 0 으로 더해진다. 워크플로 쪽으로 기우는 까닭의 수를 센다
not can_undo되돌릴 수 없으면 True 가 된다. 되돌리기 어려운 일일수록 점수가 오른다
"워크플로" if score >= 2 else "에이전트"점수가 2 이상이면 "워크플로", 아니면 "에이전트"를 고른다

이 코드가 뜻하는 것

여행 계획을 패키지 여행으로 할지 자유 여행으로 할지 체크리스트로 정하는 일입니다. "일정이 정해져 있나", "현지 사정에 어두운가", "취소가 어려운가"에 "예"가 둘 이상이면 패키지 여행을 고릅니다. 여기서 패키지 여행이 워크플로, 자유 여행이 에이전트, "예"의 개수가 score 입니다.

줄하는 일쉽게 말하면
score = steps_known + model_small + (not can_undo)"예"의 개수를 센다체크 표시를 센다
return "워크플로" if score >= 2 else "에이전트"둘 이상이면 워크플로둘 이상이면 패키지 여행
choose(True, True, False)회의실 예약: 셋 다 "예"라 점수 3일정 정해짐, 사정 어두움, 취소 어려움
choose(False, False, True)열린 조사: 셋 다 "아니요"라 점수 0일정 없음, 사정 밝음, 취소 쉬움

회의실 예약은 점수 3 으로 워크플로, 열린 조사는 점수 0 으로 에이전트가 나옵니다. 비유와 다른 점은, 실제로는 셋을 똑같이 무겁게 보지 않고 같은 일 묶음으로 둘을 재 보고 고른다는 것입니다.

주의할 점

  • "에이전트"라는 이름에 끌려 모든 것을 LLM 에 맡기지 않습니다. 코드로 할 수 있는 일(날짜 계산, 빈 방 찾기, 값 검증)은 코드로 하면 빠르고 틀리지 않습니다.
  • 워크플로는 정해 둔 길 밖의 요청에 약합니다. 길 밖의 요청이 오면 사람에게 넘기는 길을 둡니다(8장의 넘기기).
← 이전 절9장 · ReAct다음 절 →9장 · 에이전트의 안전장치