
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가 더욱 스마트하고 강력한 기능을 수행할 수 있도록 만들 수 있다! 🚀
'AI' 카테고리의 다른 글
GenAI + Auth0로 배우는 인증과 인가: 주식 투자 자동화 사례로 이해하기 (0) | 2025.03.09 |
---|---|
LangGraph 기반 AI 채팅의 상태 관리: Branching과 Custom Reducer의 역할 (0) | 2025.03.02 |
LangGraph에서 Router, Agent, ReAct, State, 그리고 Memory 이해하기 (0) | 2025.03.01 |