# Conversational Agent

**Conversational Agent 노드**는 사용자와의 지속적인 대화를 기반으로 다양한 작업을 수행하는 **대화형 에이전트**입니다. 외부 도구를 조합하고 메모리 기능을 활용해 **대화의 흐름을 유지하며 지능적인 응답**을 제공합니다. &#x20;

***

### 주요 기능

* **지속적인 대화 흐름 유지**: Memory 노드를 통해 이전 발화를 기억하고 문맥 기반 응답 생성
* **도구 결합 자동화**: 사용자 요청에 따라 도구를 선택해 필요한 작업 수행
* **역할 기반 응답 가능**: System Message를 통해 에이전트의 톤과 성격 설정 가능
* **반복 실행 제어**: Max Iterations로 반복 실행 횟수 제어

<figure><img src="https://2658622170-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfkjMyYilRWTdXwhLDYHx%2Fuploads%2Fgit-blob-f07ae6cfae3d949ebafa077cc24cd2a7098e696a%2F%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202025-05-08%20163419.png?alt=media" alt=""><figcaption><p>WindyFlo Conversational Agent</p></figcaption></figure>

<figure><img src="https://2658622170-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfkjMyYilRWTdXwhLDYHx%2Fuploads%2Fgit-blob-737fc8d63c534dd7938cef6ed8430f419042109b%2F%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202025-05-08%20163438%20(1).png?alt=media" alt=""><figcaption><p>WindyFlo Conversational Agent Parameters</p></figcaption></figure>

### 입력값 (Inputs)

| 항목                   | 설명                                        | 필수 여부 |
| -------------------- | ----------------------------------------- | ----- |
| **Allowed Tools**    | 에이전트가 사용할 수 있는 도구 목록. 예: 웹 검색, 계산기, 요약기 등 | 필수    |
| **Chat Model**       | 언어 추론을 수행할 LLM 선택. 예: GPT-4, Claude 등     | 필수    |
| **Memory**           | 대화 이력을 저장하고 문맥 기반 응답을 생성할 메모리 노드          | 필수    |
| **Input Moderation** | 부적절하거나 유해한 질문을 필터링할지 여부                   | 선택    |

***

### 파라미터 (Parameters)

| 항목                 | 설명                                                                                                                                                                                                                   |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **System Message** | <p>에이전트에게 부여하는 역할 설명입니다.<br>예시 기본값:<br><code>Assistant is a large language model trained by OpenAI. Assistant is designed to assist with a wide range of tasks...</code><br>※ 이 메시지는 에이전트의 말투, 태도, 응답 범위를 정의합니다.</p> |
| **Max Iterations** | 에이전트가 도구 사용 및 판단을 반복할 수 있는 최대 횟수 (무한 루프 방지용). 예: 3\~5 정도 권장                                                                                                                                                          |

***

### 출력값 (Outputs)

| 출력 항목             | 설명                                           |
| ----------------- | -------------------------------------------- |
| **AgentExecutor** | 에이전트의 최종 응답 결과입니다. (예: 답변, 문서 요약, 툴 실행 결과 등) |

***

### 활용 예시

1. **고객 응대 챗봇**\
   → 고객의 질문 이력을 기억하고 다음 질문에 문맥 맞춘 응답 제공\
   → “이전에 주문한 내역도 보여줄 수 있나요?”
2. **대화형 문서 요약기**\
   → 사용자가 특정 문서나 주제를 질문하면 관련 내용 요약 제공\
   → “이 문서에서 핵심 내용만 말해줘.”
3. **다단계 안내 시스템**\
   → 사용자 질문 흐름에 따라 필요한 툴 자동 사용\
   → 예: 날씨 → 위치 파악 → 추천 장소 제공

***

### 추천 사용 상황

* 대화의 맥락을 유지하면서 복합적인 요청을 처리해야 하는 경우
* 툴을 연속적으로 호출하며 사용자와 인터랙티브하게 반응해야 하는 챗봇
* 역할 지시를 명확히 하고 응답 스타일을 통제하고 싶은 경우

***

### 주의사항

* **Memory 노드 설정 필수**: 문맥 유지를 위해 반드시 Memory 노드를 연결해야 합니다.
* **반복 횟수는 제한하세요**: Max Iterations는 과도하게 높이지 말고 3\~5 정도로 설정하세요.
* **System Message는 신중하게 작성하세요**: 이 메시지가 에이전트 성격에 큰 영향을 줍니다.

***

Conversational Agent 노드는 WindyFlo에서 대화형 에이전트를 만들고자 할 때 핵심이 되는 노드입니다. 챗봇, 문서 인터페이스, 상황별 안내 시스템 등 다양한 인터랙션 기반 솔루션에 활용해보세요.
