멀티에이전트 활용을 위한 Dify.AI
멀티에이전트 활용을 위한 Dify.AI
안녕하세요.
AiNEWT에서 프로젝트 매니징을 담당하고 있는 박태우 매니저 입니다.
왜 멀티 에이전트인가?
멀티 에이전트 시스템(Multi-Agent System, MAS)은 여러 독립적인 에이전트들이 상호작용하여 문제를 해결하거나 작업을 수행하는 시스템을 말합니다. 에이전트들은 각기 다른 목표를 가질 수 있으며, 협력과 경쟁을 통해 인공지능을 활용한 다양한 문제 해결 및 작업을 수행 합니다. 그렇다면 작업 수행을 위해 멀티 에이전트 시스템을 활용하는 이유는 무엇 때문일까요?
- 복잡한 문제 해결
멀티 에이전트는 하나의 에이전트가 단독으로 해결하기 어려운 복잡한 문제 해결을 위해 여러 에이전트를 협력하게 할 수 있습니다. 이로 인해 단일로 진행하는 것보다 효율적으로 문제를 해결 할 수 있습니다.
- 분산 처리와 자율성
분산 처리와 자율성을 통해 분산된 환경에서 각 에이전트가 독립적으로 의사결정을 내리며 작업을 수행할 수 있기 때문에, 전체 시스템이 효율성을 확보하고 자율적으로 작동하는 것이 가능합니다다. 이를 통해 시스템의 확장성과 유연성이 높아지며, 장애가 발생하더라도 다른 에이전트를 통해 시스템을 정상 운영할 수 있습니다.
- 효율적인 자원 활용
여러 에이전트들이 업무를 분담하여 작업하기 때문에 자원을 효율적으로 활용할 수 있습니다.
이와 같은 자원 분배 구조는 대규모 프로젝트나 복잡하고 방대한 시스템에서 중요한 역할을 합니다.
멀티 에이전트 사용은 단순히 기술적인 선택을 넘어서, 복잡한 문제 해결을 위한 최선책이 될 것이라고 생각합니다. 이러한 시스템을 구현하는 방법으로는 여러가지가 있지만, 그 중에서 Dify.AI라는 플랫폼에 대해 살펴보고, 해당 기술 활용한 프로젝트 사례를 설명해드리겠습니다.
Dify.AI
Dify.AI란?
Dify는 AI 애플리케이션을 구축하기 위한 오픈소스 플랫폼입니다.
해당 플랫폼은 서비스형 백엔드와 LLMOps*를 결합하여 생성형 AI 솔루션 개발을 간소화하여 개발자와 비개발자 모두가 사용할 수 있도록 합니다.
Dify 사용을 통해 복잡함은 건너뛰고 중요한 것에 집중하여 문제를 해결하는 AI 애플리케이션을 만들 수 있습니다.
* LLMOps(Large Language Model Operations) : 프로덕션 환경에서 대규모 언어 모델을 운영하고 관리하는데 필요한 기술과 도구들을 말합니다. 이를 통해 모델의 훈련, 배포, 성능 모니터링 등을 효율적으로 처리할 수 있습니다.
아키텍처
Dify의 아키텍처를 살펴보면, LLM 애플리케이션 스택을 기반으로 설계된 플랫폼입니다.
Dateset ETL, Dify RAG Pipeline, Storage를 활용해 데이터를 처리하고 저장하며, 이를 바탕으로 LLM 모델의 답변 품질을 향상시킵니다.
가운데 위치한 Orchestration Studio는
- 프롬프트 관리(Dify Prompts IDE)
- 에이전트 개발(Dify Agent DSL)
- 플러그인 연동(Plugins Toolbox)
등을 조율하는 핵심 역할을 합니다.
Dify BaaS Platform을 통해 API 및 앱 빌더 기능 제공 및 LLM과 연결되어 사용자의 질의 요청을 처리하고 응답을 생성합니다.
마지막으로 Moderation System과 Cache System이 응답 품질을 관리하고 최적화하여 보다 신뢰성 높은 AI 애플리케이션을 개발할 수 있도록 지원합니다.
Dify.AI의 주요 특징
Dify의 주요 특징에 대해 살펴보겠습니다.
- 포괄적인 모델 지원
- 여러 개의 모델 제공업체와 자체 호스팅 솔루션에서 제공하는 수백 개의 독점 및 오픈 소스 LLM과 원활하게 통합되며, GPT, Mistral, Llama3 및 모든 OpenAI API 호환 모델을 포함합니다. 따라서 사용자는 Dify를 사용하면서 본인의 원하는 모델을 선택하여 워크플로우를 구축해나갈 수 있습니다.
- 통합 개발환경
- 프롬프트 작성, 모델 성능 비교, Text to Sound와 같은 추가 기능을 채팅 기반 앱에 추가할 수 있는 직관적인 인터페이스 제공하여 편리한 개발환경 안에서 작업을 할 수 있습니다.
- RAG** 파이프라인
- RAG(Retrieval-Augmented Generation) 기능을 제공합니다.
PDF, PPT, Word 등 문서에서 텍스트를 추출하고, 사용자가 입력한 질문과 관련된 내용을 빠르게 검색할 수 있도록 도웁니다. 이를 활용하여 AI 챗봇이 문서를 읽고 답변하는 기능을 빠르게 구현할 수 있습니다.
- 에이전트 기능
- 에이전트 기능을 이용하여 LLM 함수 호출, ReAct 기반으로 에이전트 정의 및 에이전트에 대해 사전 구축된 툴 또는 사용자 정의 툴 추가 가능합니다
- 추가로 Dify는 Google Search, DALL-E, Stable Diffusion, WolframAlpha 등 AI 에이전트를 위한 50개 이상의 내장 도구를 제공하여, 목적에 맞게 도구 활용이 가능합니다.
- LLMOps
- AI 모델이 시간이 경과할수록 좋은 성능을 발휘하도록 애플리케이션의 로그와 성능을 분석할 수 있습니다. 또한 데이터 등을 기반으로 프롬프트, 데이터셋 그리고 모델을 지속적으로 개선 가능합니다.
- Backend-as-a-Service
- Dify의 모든 제품에는 해당 API가 제공되어 다양한 서비스에 쉽게 통합 가능합니다.
예를 들어, 기업의 고객센터 시스템이나 문서 검색 기능에 AI를 추가할 수 있고, 맞춤형 챗봇 구축도 가능합니다.
Dify 활용을 통해서 복잡한 개발 없이 쉽게 AI 기능을 도입하고 원하는 방식으로 최적화할 수 있습니다.
** RAG(Retrieval-Augmented Generation) : 질문에 대한 답변을 생성할 때 외부 데이터베이스나 문서에서 관련 정보를 검색하여 그 정보를 기반으로 답을 생성하는 방식. 이를 통해 모델은 정확한 답변을 제공하여, 생성 모델의 한계를 극복하고, 정보 반영을 가능하게 합니다.
Dify.AI의 장점
다양한 AI 개발 도구가 Task 특성에 적합한 개별 구성 요소를 제공하는 것과 다르게 Dify.AI는 포괄적이고 높은 접근성을 통해 제품에 적합한 솔루션을 맞춤으로 제공합니다. 이러한 특징으로 Dify.AI를 단순한 도구가 아닌 잘 설계되고 연결성이 높은 멀티 에이전트 시스템이라 보시면 되겠습니다.
- 다양한 모델을 사용하여 Assistants API 및 GPT와 유사한 기능 배포
- 유연한 보안 옵션으로 데이터를 제어하고 프로젝트 보안성 향상
- 직관적인 인터페이스를 활용하여 쉽고 편리한 관리와 배포 가능
기능 비교
Dify.AI 활용 사례
AiNEWT는 Dify.AI를 활용하여 프로젝트를 수행한 사례가 있습니다.
개요
프로젝트를 간단히 설명하자면,
(요구사항)
- AI 도구를 활용한 신속한 기술 환경조사
- 복잡한 R&D 기술 사업의 지능형 투자분석
1, 2를 위한 AI 도구 도입 및 데이터 기반 인공지능 활용 환경의 조성이 필요한 프로젝트에서 Dify.AI를 활용했습니다.
위 사례는 LLM을 사용하여 간단하게 질의응답을 하는 것에 그치지 않고, 사용자의 데이터를 활용하여 에이전트의 자율적 판단으로 외부 검색 등으로 자료를 수집하고 결과를 추출하는 시스템을 구축하였습니다. 이를 통해 데이터 수집 및 확장이 가능하도록 하였으며, 실시간 질의응답이 이루어지는 시스템으로 사용자가 원하는 정보를 신속하게 제공할 수 있도록 기술 환경 조사 및 R&D 기술 사업의 지능형 분석 솔루션 구축 프로젝트를 수행했습니다.
Dify.AI 적용 프로젝트 특징
사용자의 데이터 및 문서 구조 분석 및 요약을 위해 하단의 방식을 적용하였습니다.
- 워드, 한글 등 문서 종류에 따른 텍스트 추출 방식 적용
- 문서 청크 단위 추출 및 “Local LLM” 기반 문서
지식그래프(Knowledge Graph)
생성
해당 방식을 통해 내부망에 있는 보안 문서 외부 유출을 방지하였습니다.
지식그래프(Knowledge Graph) : 지식 그래프는 개체와 그들 간의 관계를 그래프 형태로 표현한 데이터 구조입니다. 이를 통해 정보 간의 연관성을 시각적으로 나타내고, 의미 기반의 검색과 분석이 가능합니다.
지식그래프 기반 정보 자동 수집화
- 멀티 에이전트 + 추가 확장 지식그래프 기반 정보 수집 프롬프트 생성
- 프롬프트 기반 외부 검색 및 LLM 서비스를 활용한 데이터 수집 및 확장
이를 통해 외부서비스 기반 정보 확장을 가능하게 만들었습니다.
내/외부 정보 기반 RAG 저장소 구축
- 1단계 : 입력 문서 요약 정보 Vector DB 저장
- 2단계 : 확장 수집 된 정보 Vector DB 저장
보안 문서 그리고 지식그래프 기반으로 수집 된 정보들을 Vector화 시켰습니다.
내/외부 정보 기반 질의응답 지원
- Local LLM + 구축 된 지식/정보저장소 기반 질의응답 제공
- 기본 구축 된 시스템과 연동
앞에 있는 단계들을 거쳐 최종적으로 질의응답 시, 기존 내부 저장소 뿐만 아니라 외부에서 검색한 결과를 기반으로 다양한 정보를 제공할 수 있게 되었습니다.
마치며
Dify.AI를 사용하고 느낀점을 LangGraph를 사용하여 멀티 에이전트 워크플로우를 구축해본 경험과 같이 말씀드리겠습니다.
일단, LangGraph는 LLM 기반의 에이전트 어플리케이션을 구축하기 위한 Low-Level(저수준) 오케스트레이션 프레임워크입니다.
개발자가 직접 구현해야하는 로직들(노드간의 연결, 분기처리, 반복처리 등)이 많아 작업 시간이 오래걸린다는 단점이 있으나, 그와 동시에 세밀한 제어와 확장성 등을 제공하여 좀더 복잡한 에이전트 시스템 구축이 가능합니다.
이와 비교하여 Dify.AI는 노코드 혹은 로우코드 방식을 지향하는 플랫폼으로 비개발자도 쉽게 애플리케이션을 개발할 수 있도록 설계되어 있어 LangGraph에서 코드단위로 구현해야하는 로직들을 간단한 웹 UI로 손쉽게 구성할수 있고 개발 기간도 짧다는 장점이 있습니다.
추가로 Dify.AI는 웹 검색이나 이미지 생성과 같은 외부 API Tool들 경우도 쉽게 사용할수 있도록 모듈화가 되어있어 직접 해당 Tool들을 구현할 필요없이 연결만으로 수행할 수 있고, 구성한 워크플로우나 챗봇 등에 대한 외부 API도 제공해주어 개발자가 구현한 UI에서도 Dify 프로젝트를 쉽게 사용할수 있습니다.
LangGraph에 비해 사용이 쉬웠으나, 사용방법 숙지 그리고 제공되는 UI에서 구성해야된다는 단점도 존재합니다.
그래도 쉽고 빠르게 복잡한 워크플로우 시스템을 구현하기에 좋은 플랫폼이였다고 생각합니다.
멀티 에이전트 구축을 위한 방법으로 Dify.AI, LangGraph 등 여러 방법이 존재하지만, Dify.AI를 사용하여 나만의 챗봇을 한번 만들어 보는 것은 어떤가요?