# Tool Agent

**Tool Agent**는 다양한 툴을 조건에 맞게 호출하고, 대화 흐름과 연동하여 작업을 반복적으로 수행하는 **범용 에이전트 노드**입니다. 프롬프트 커스터마이징, 반복 횟수 제어, 스트리밍 설정 등이 가능하여 유연한 자동화 설계를 지원합니다.

***

### 주요 기능

* **도구 자동 호출**: LLM이 판단하여 필요한 툴을 동적으로 선택·실행&#x20;
* **대화형 메모리 지원**: 이전 대화 맥락을 기억하고 응답에 반영
* **프롬프트 템플릿 지정**: Chat Prompt Template을 통해 응답 톤과 흐름 맞춤화
* **고급 제어 기능**: 반복 횟수, 시스템 메시지, 스트리밍 등 상세 설정 가능

<figure><img src="https://2658622170-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfkjMyYilRWTdXwhLDYHx%2Fuploads%2Fgit-blob-28962471b57b9d70cef05f90b85a2d2cbac5cba6%2F%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202025-05-08%20165216.png?alt=media" alt=""><figcaption><p>WindyFlo Tool 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-2e6c50bc5e561992dc678cbb897e0eb278b9aa3d%2F%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202025-05-08%20165226.png?alt=media" alt=""><figcaption><p>WindyFlo Tool Agent Parameters</p></figcaption></figure>

### 입력값 (Inputs)

| 항목                          | 설명                                   | 필수 여부 |
| --------------------------- | ------------------------------------ | ----- |
| **Tools**                   | 사용할 수 있도록 허용된 도구 목록.                 | 필수    |
| **Memory**                  | 대화 히스토리를 유지하고 문맥을 반영하는 메모리 노드        | 필수    |
| **Tool Calling Chat Model** | 도구를 호출하고 판단할 LLM. 예: GPT-4, Claude 등 | 필수    |
| **Chat Prompt Template**    | 사용자 질의를 포함한 전체 프롬프트 템플릿 (선택 사항)      | 선택    |
| **Input Moderation**        | 부적절한 요청을 필터링할지 여부                    | 선택    |

***

### 파라미터 (Parameters)

| 항목                            | 설명                                                                                      |
| ----------------------------- | --------------------------------------------------------------------------------------- |
| **System Message**            | <p>에이전트의 전반적인 역할을 정의하는 메시지입니다.<br>예: <code>"You are a helpful AI assistant."</code></p> |
| **Max Iterations**            | Thought → Action → Observation 반복 실행의 최대 횟수. (예: 3\~5 권장)                               |
| **Enable Detailed Streaming** | 응답을 단계별로 스트리밍할지 여부 설정 (활성화 시 실시간 진행 출력 가능)                                              |

***

### 출력값 (Outputs)

| 출력 항목             | 설명                         |
| ----------------- | -------------------------- |
| **AgentExecutor** | 도구 실행과 추론 과정을 포함한 최종 응답 결과 |

***

### 활용 예시

1. **문서 기반 정보 탐색 자동화**\
   → “3월 회의록 중에서 예산 논의만 추려줘”\
   → file\_search → 요약기 → 필터링 → 응답
2. **상황에 따라 다양한 툴 호출**\
   → “이미지 요약해주고 관련 제품 링크도 찾아줘”\
   → 이미지 분석 → 검색 → 결과 종합
3. **사용자 맞춤 응답 스타일 설정**\
   → System Message: “당신은 친절한 HR 어시스턴트입니다.”\
   → HR 관련 응답 톤 자동 적용

***

### 권장 사용 상황

* 복잡한 자동화 흐름에서 **여러 도구를 통합적으로 사용할 필요가 있는 경우**
* **반복적 사고와 실행을 조절**하고 싶은 고급 에이전트 구성
* 도구 호출 판단을 LLM에게 위임하면서도 **응답 품질과 컨텍스트 유지**가 중요한 시나리오

***

### 주의사항

* 도구와 메모리 노드는 반드시 연결되어야 전체 기능이 작동합니다.
* 프롬프트 템플릿과 시스템 메시지를 적절히 조합하면 **브랜드 톤/업무 목적**에 맞는 응답을 생성할 수 있습니다.
* Max Iterations를 설정하지 않으면 **반복이 계속될 수 있으므로 반드시 제한값을 권장**합니다.

***

Tool Agent는 WindyFlo에서 **LLM 기반 추론 + 멀티툴 활용 + 컨텍스트 흐름 제어**를 모두 통합한 유연하고 강력한 범용 에이전트입니다. 복잡한 시나리오를 설계하는 데 이상적입니다.
