091
[AI] LLM 기초(3): Function Calling, LangChain/LangGraph 본문
(4) Function Calling&Tool Use: LLM은 기본적으로 텍스트만 생성합니다. 실시간 정보도 모르고, 계산도 틀리고 외부 시스템과 연동도 못합니다. Function Calling이 있으면 LLM이 날씨, 계산 등의 상황을 스스로 판단해 필요한 함수를 호출하는 게 핵심입니다.
-> JSON Schema는 LLM에게 기능을 설명하는 방식으로, 말그대로 사용 가능한 기능을 알려줄 때 JSON 형식으로 전달합니다. 이때 description 부분을 보고 LLM이 해당 기능을 써야할지말지를 판단하기 때문에 설명부분을 제대로 작성해야합니다.
-> 함수 호출이 언제나 성공하는 것이 아니기 때문에 에러 핸들링을 통해 LLM에게 에러를 알려줘 스스로 수정해서 재시도를 합니다. 그리고 에이전트가 같은 함수를 무한 반복 호출하는 문제가 생길 수도 있습니다. 최대 호출 횟수 제한을 걸어 동일한 호출이 반복되면 중단합니다. 그리고 만약 파일 삭제, 결제, 이메일 전송, DB 수정과 같은 위험도가 높은 작업은 사람이 먼저 확인하여 보안성을 높입니다.
(5) LangChain: LLM으로 뭔가를 만들기 위해서는 프롬프트 관리, 대화 기록 저장, 여러 단계 연결, 외부 도구 연동, 에러 처리 등과 같이 반복적으로 구현해야 하는 것들이 있습니다. 이걸 미리 만들어놓아 조립하여 사용하면 되는 프레임워크가 바로 LangChain입니다.
-> LCEL(LangChain Expression Language)은 LangChain에서 여러 컴포넌트를 파이프(|)로 연결하는 방식입니다. 만약 이때 모델을 변경하고싶다면 llm만 바꾸면 됩니다.
chain = prompt | llm | parser
#파이프연결 (프롬프트) (AI처리) (문자열변환)
-> Memory 관리: LLM은 기본적으로 대화를 기억하지 못합니다. Memory는 이전 대화를 매번 LLM에게 같이 전달해서 기억하는 것처럼 만드는 것입니다. 메모리에는 아래처럼 3가지 종류가 있습니다
ConversationBufferMemory #전체 대화를 다 저장 -> 대화가 길어질수록 토큰 많이 씀
ConversationSummaryMemory #대화를 요약해서 저장 -> 토큰 절약, 긴 대화에 유리
ConversationWindowMemory #최근 N개 대화만 저장 -> 중간 절충안
(6) LangGraph: LangChain으로 만든 chain은 검색->분석->답변으로 순서가 고정되어있기 때문에 복잡한 상황을 처리하기가 어렵습니다. LangGraph는 이걸 그래프 구조로 해결하여 분기, 반복, 조건부 실행에 자유롭고 이러한 복잡한 흐름 속에서 상태를 모드 노드가 공유하며 여러 에이전트가 협업(멀티 에이전트)을합니다. LangGraph는 3가지 핵심요소가있습니다.
-> State는 에이전트가 작업하면서 저장하는 데이터 공간으로, 모든 노드가 이 State를 읽고 수정하면서 작업을 진행합니다.
-> Node는 실제 작업을 수행하는 단위로, 검색 노드,분석 노드, 판단 노드 등 다양합니다.
-> Edge는 노드와 노드를 연결하는 경로입니다.
- LangChain과 LangGraph의 공통점으로는 스트리밍 출력으로, 답변이 한번에 나오는 것이 아니라 실시간으로 타이핑하듯이 나옵니다. 또 다른 공통점으로 비동기 처리가 있습니다. 작업을 동시에 진행한 뒤 모두 완료되면 결과를 취합하는 방식입니다.
'Computer Science > AI' 카테고리의 다른 글
| [AI] LLM 기초(2): 프롬프트 엔지니어링, 파인튜닝, RAG (0) | 2026.05.16 |
|---|---|
| [AI] LLM 기초(1): Transformer Architecture, Tokenization, 모델 평가 지표, 추적 최적화 (0) | 2026.05.14 |
