본문 바로가기

AI

LangChain에서 LLM을 더 강력하게 만드는 방법: Control Flow와 Agent 개념 정리

 

1. 단순한 LLM만으로는 한계가 있다!

💡 "LLM(대형 언어 모델) 하나만으로는 실무에서 활용하기 어렵다!"

✔ AI 모델 하나만 가지고는 실제 업무를 수행하기 어려움

추가적인 기능이 필요함 (예: 검색, 계산, 문서 분석 등)

여러 단계의 작업(멀티스텝 워크플로우)을 자동화할 필요가 있음

📌 즉, 단순한 AI 모델로는 복잡한 작업을 수행하기 어렵기 때문에, 더 강력한 구조가 필요하다!

2. Control Flow(제어 흐름)의 필요성

💡 "많은 LLM 애플리케이션이 Control Flow를 사용한다!"

✔ LLM이 단순한 응답을 넘어서, 여러 단계를 거쳐 작업을 수행할 수 있도록 Control Flow를 추가해야 함

LLM 호출 전/후에 다양한 작업(도구 호출, 검색, 데이터 조회 등)이 포함될 수 있음

📌 즉, AI가 "단순한 질문-응답 시스템"이 아니라, "복잡한 업무 자동화"까지 수행하려면 Control Flow가 필요함!

3. Control Flow가 연결되면 "체인(Chain)"이 된다

💡 "Control Flow를 조합하면 AI의 행동을 연결하는 '체인(Chain)'이 만들어진다!"

✔ AI가 한 번만 실행되는 것이 아니라, 여러 개의 단계(노드)를 거쳐 실행됨

✔ 예제: 1️⃣ 사용자 입력 → 2️⃣ 검색 도구 실행 → 3️⃣ 결과 분석 → 4️⃣ 최종 응답

📌 즉, LangChain에서는 AI의 실행 흐름을 "체인"처럼 연결해서 더 강력한 AI 시스템을 만들 수 있음!

 

4. 체인은 안정적이다

💡 "체인을 사용하면 같은 방식으로 AI가 실행되기 때문에, 안정적인 결과를 얻을 수 있다."

✔ 체인은 항상 동일한 방식으로 실행됨 ✔ 예측 가능한 결과를 제공할 수 있음 ✔ 시스템이 오류 없이 실행될 가능성이 높아짐

📌 즉, AI의 실행 과정을 "체인"으로 만들면 안정적인 AI 시스템을 구축할 수 있음!

 

 

5. 그러나, AI가 스스로 실행 흐름을 결정할 수도 있어야 한다!

💡 "체인은 안정적이지만, AI가 '스스로' 실행 흐름을 선택할 수 있도록 만들고 싶다!"

✔ 체인은 항상 정해진 순서로 실행되지만, AI가 스스로 판단해서 다른 경로를 선택할 수도 있어야 함

✔ 예제:

  • "날씨를 검색해줘!" → 검색 도구 실행
  • "날짜 계산을 해줘!" → 계산기 실행

📌 즉, 더 지능적인 AI 시스템을 만들려면, AI가 스스로 실행 흐름을 결정할 수 있도록 해야함 

6. 에이전트(Agent)란?

💡 "Agent = AI가 직접 실행 흐름을 결정하는 방식!"

✔ **에이전트(Agent)**는 AI가 특정 작업을 수행할 때, 필요한 도구를 사용하고 실행 경로를 결정하는 방식

✔ 예제:

  • "검색할지, 계산할지, 기존 정보를 사용할지" AI가 판단하는 시스템

📌 즉, 에이전트는 AI가 스스로 실행 흐름을 정의하고, 필요하면 도구를 호출해서 작업을 수행하는 시스템!

 

7. Fixed Control Flow vs LLM-defined Control Flow

구분설명

Fixed Control Flow 개발자가 직접 실행 흐름을 설정하는 방식
LLM-defined Control Flow AI가 질문을 분석하고 실행 흐름을 스스로 결정

Fixed Control Flow의 문제점:

  • "2+2는 얼마야?" 같은 간단한 질문도 검색을 실행할 수도 있음 (비효율적)
1️⃣ 사용자 입력 → 2️⃣ 검색 실행 → 3️⃣ 응답 생성

 LLM-defined Control Flow의 장점:

  • AI가 직접 실행 흐름을 결정할 수 있다면, 더 똑똑한 시스템을 만들 수 있다!
  • AI가 질문을 분석하여 "검색이 필요하면 검색 도구 실행", "계산이 필요하면 계산기 실행"처럼 동작 가능'
사용자 질문 분석 →
1️⃣ 검색이 필요한 경우 → 검색 도구 실행
2️⃣ 계산이 필요한 경우 → 계산기 실행
3️⃣ 데이터베이스 조회가 필요한 경우 → DB 조회 실행

📌 즉, 더 효율적인 AI 시스템을 만들기 위해서는 AI가 스스로 실행 흐름을 선택할 수 있도록 하는 것이 중요!

8. 현실적으로는 여러 문제

💡  LLM이 직접 실행 흐름을 정의하는 것이 좋아 보이지만 항상 완벽하게 작동하는 것은 아니다!

✔ AI가 모든 결정을 내리는 것이 아니라, "중요한 부분"은 개발자가 직접 정의할 수 있도록 한다!

✔ 이렇게 하면 신뢰성을 높이고, 실행 흐름을 더 예측 가능하게 만들 수 있음.

✔ 개발자는 특정 실행 경로를 직접 설정하고, AI는 그 안에서 유연하게 동작할 수 있도록 구성

📌 즉, 완전한 자유 대신 "부분적인 제어"가 더 현실적인 해결책

9. LLM이 제어를 돕는 방식

기존 방식 (개발자가 모든 실행 흐름을 직접 설정)

사용자: "내일 뉴욕에서 우산이 필요할까?"
개발자가 설정한 흐름:
1️⃣ 날씨 검색 → 2️⃣ 강수 확률 확인 → 3️⃣ 50% 이상이면 "우산 필요" 출력

✔ 개발자가 모든 조건을 직접 정의해야 함 → 유연성이 부족할 수 있음

LLM을 활용하여 실행 흐름을 더욱 유연하게 조정

사용자: "내일 뉴욕에서 우산이 필요할까?"
개발자가 설정한 흐름:
1️⃣ "날씨 검색"은 필수적으로 실행
2️⃣ LLM에게 실행 흐름을 물어봄 → "강수 확률이 30%인데 우산이 필요할까요?"
3️⃣ LLM이 상황에 따라 최적의 실행 흐름을 결정 → "바람이 강하면 우산이 필요할 수도 있어요!"

✔ 개발자가 기본적인 흐름을 설정하되, LLM이 추가적인 판단을 수행할 수 있도록 구성

📌 즉, 개발자가 실행 흐름을 완전히 통제하는 것이 아니라, LLM이 "보조적인 판단"을 할 수 있도록 유연하게 설계하는 방식!

 

10. 그래프(Graph) 기반의 실행 흐름

💡 "고정된 실행 흐름이 아니라, AI가 실행 경로를 선택할 수 있도록 하는 방식!"

✔ AI가 실행 흐름을 결정할 때, 각 노드(Node)가 개별 작업을 나타내고, 에지(Edge)가 실행 흐름을 조정하는 역할을 함

각 실행 흐름이 '노드(Node)'로 표현되며, 연결된 흐름이 '에지(Edge)'로 표현됨

그래프(Graph) 기반의 실행 방식은 AI가 더 똑똑하게 실행 흐름을 선택할 수 있도록 해줌!

📌 즉, AI가 상황에 따라 실행 흐름을 변경할 수 있도록 그래프 기반의 실행 모델을 활용하면 더 강력한 AI 시스템 구축이 가능!


11.  그래프 기반 실행 흐름의 주요 요소

🔹 1) 노드(Node)

✔ 실행 흐름의 개별 작업을 나타냄 (예: "검색 실행", "계산 실행" 등)

Node 1 → Node 2 로 이어지면서 실행됨

각 노드는 특정 도구(Tool)를 호출하거나 상태를 변경할 수 있음

📌 즉, AI가 특정 작업을 수행하는 단위가 '노드(Node)'로 표현됨!


🔹 2) 에지(Edge)

✔ 노드(Node) 간의 연결 역할을 함

✔ AI가 실행 흐름을 결정할 때 "어떤 노드로 이동할지"를 결정하는 중요한 요소

Edge는 LLM이 내리는 결정(LLM decisions)에 따라 경로를 변경할 수 있음

📌 즉, AI가 상황에 따라 실행 경로를 변경할 수 있도록 하는 것이 '에지(Edge)'의 역할!


🔹 3) 메모리(Memory)

그래프 전체에서 공유되는 상태(Shared State)

✔ 노드들이 이전 상태를 기억하고, 다음 실행에 영향을 미칠 수 있음

✔ 예제:

  • Node 1에서 사용자가 "뉴욕 날씨"를 검색했다면, Node 2에서 "기온"에 대한 질문을 하면 기존 검색 데이터를 활용 가능

📌 즉, 실행 흐름이 단순히 독립적인 것이 아니라, 이전 실행 결과를 기억하고 활용할 수 있음!


🔹 4) 도구(Tools)

✔ 노드들은 특정한 도구(검색, 계산기, DB 조회 등)를 호출할 수 있음

✔ 예제:

  • Node 1: 검색 도구 실행
  • Node 2: 검색 결과를 바탕으로 요약 도구 실행

📌 즉, 노드는 필요한 도구를 실행하여 AI가 다양한 작업을 수행할 수 있도록 함!


🔹 5) 계획(Planning)

Edge(에지)가 실행 흐름을 조정하는 역할

✔ LLM이 현재 상황을 분석하여, 실행 경로를 선택할 수 있도록 설계됨

✔ 예제:

  • AI가 질문을 보고 "검색이 필요하면 → Node 1 실행", "계산이 필요하면 → Node 2 실행"

📌 즉, AI가 고정된 실행 경로가 아니라, 질문에 따라 실행 흐름을 결정할 수 있음!

 

9. 결론: LLM을 더 스마트하게 만들려면?

✔ 단순한 LLM만으로는 복잡한 작업을 수행하기 어려움

✔ Control Flow를 추가하면 여러 단계를 거쳐 작업을 수행할 수 있음

✔ 체인(Chain)을 활용하면 안정적인 AI 시스템을 구축 가능

✔ AI가 스스로 실행 흐름을 선택하려면 에이전트(Agent) 개념이 필요함

✔ 그래프(Graph) 기반의 실행 방식은 유연한 AI 시스템을 만들 수 있음

📌 즉, LangChain을 활용하면 AI가 더욱 스마트하고 강력한 기능을 수행할 수 있도록 만들 수 있다! 🚀