멀티 에이전트플로우 상세 사용법 (Flowise 2.2.3)

이번 튜토리얼에서는 사용자의 질의를 분석하는 Supervisor 아래에서 협력적으로 동작하여 웹 검색 및 이미지 검색을 수행하는 Multi-Agentflow를 제작합니다.

Multi-Agentflow는 Sequential-Agentflow보다 구현이 쉬우며 고려해야 할 변수가 적지만, 그만큼 섬세한 Action을 조절하는 데에는 한계가 있습니다. 복잡하고 세세한 기능을 수행하는 Agentflow를 제작하고 싶다면 Sequential Agentflow 튜토리얼을 참고하세요.

Multi Agent 만들기

1. 워크플로우 만들기

  • 서비스 > 에이전트 > 워크플로우에서 워크플로우를 생성합니다.

  • Flowise Step 추가에서 Agentflow를 선택해 flowchart를 추가합니다.

2.1. Multi Agentflow 구성하기

  • flowchart 좌측 상단에 + 버튼을 눌러 노드를 추가할 수 있습니다.

  • 다음과 같이 노드를 구성합니다.

1. ChatMNC

Agent의 답변 생성에 사용할 모델을 정의합니다. 본 튜토리얼에서는 Llama 4 Scout 모델이 사용되었습니다.

2. Agent Memory

Agent들에게 이전 대화 기록을 저장할 DB를 제공합니다.

3. Supervisor

사용자의 질의를 분석하여 알맞는 Worker에게 업무를 할당하는 감독관 역할을 수행하는 Agent입니다. Recursion limit을 직접 조절할 수 있습니다.

  • 프롬프트는 다음과 같이 작성하였습니다.

  • <주의> 작업을 마쳤다고 판단하면 'FINISH'라고 대답하도록 프롬프트를 작성해야 불필요한 루프를 최소화할 수 있습니다.

  • Summarization 옵션을 활성화 하면 여태까지의 Worker의 수행 내역을 바탕으로 종합된 의견을 제출합니다. 비활성화 되어있다면 마지막 Worker의 출력을 답변으로 제출합니다.

4. Worker

Supervisor에게 지시받은 업무를 수행하는 Agent입니다. 필요에 따라 Tool을 사용할 수 있으며, 결과를 사용자에게 내보냅니다. Max Iteration을 직접 조절할 수 있습니다.

  • 본 튜토리얼에서는 Web Searcher와 Image Searcher 총 두가지 Worker을 정의합니다.

  • [Web Searcher]

  • [Image Searcher]

5. Custom Tool

사용자가 정의한 기능을 수행하는 도구입니다. Javascript 코드로 작성할 수 있으며, Description 및 INPUT SCHEMA 작성을 통해 LLM이 적절한 변수를 입력해 사용할 수 있습니다.

  • 본 튜토리얼에서는 query를 입력으로 받아 검색 결과를 내보내는 Search API 기반 웹 검색 Tool과 query를 입력으로 받아 제목 및 이미지 링크를 내보내는 Google Image 검색 API 기반 Tool을 정의하여 사용하였습니다.

  • [Search Tool]

  • [Image Search Tool]

2.2. Multi Agentflow Test하기

  • 모든 Agentflow의 구성이 끝났다면, Test를 통해 동작을 확인하기 위해 우측 상단의 채팅 아이콘을 클릭해 채팅창을 활성화합니다.

  • '아이폰 15와 갤럭시 S24에 대해 검색해서 특징을 비교해주고 각각의 이미지를 찾아서 보여줘.'라는 질의를 입력해 Supervisor가 제대로 Routing하는지 Test합니다.

  • Supervisor는 Web Searcher에게 먼저 최신 정보를 검색하도록 Task를 부여하고, Web Searcher는 할당받은 업무를 Search Tool을 사용하여 수행한 뒤 보고합니다.

  • 최신 정보의 수집이 끝난 후, Supervisor는 Image Searcher에게 아이폰과 갤럭시의 사진을 검색하도록 Task를 부여합니다.

  • Image Searcher는 할당받은 Task를 Image Search Tool을 사용하여 수행한 뒤 보고합니다.

  • Supervisor는 업무가 끝났다고 판단할 경우, Finished를 출력해 작업이 끝났음을 알립니다. 최종 Output은 마지막 Worker의 Output이 되며, 사용한 도구들과 그 Output이 나열되어 나타납니다.

Last updated

Was this helpful?