# XML Agent

**XML Agent**는 구조화된 XML 데이터를 기반으로 대화형 질의응답을 수행하고, 필요한 경우 다양한 도구를 호출하여 정보를 가공하거나 요약하는 **XML 특화 에이전트 노드**입니다. 시스템 메시지에서 필수 변수들을 포함하여 프롬프트를 구성하며, XML 기반 업무 자동화에 적합합니다.&#x20;

***

### 주요 기능

* **XML 데이터 이해 및 질의응답**: 구조화된 XML 문서를 분석하고 자연어로 질문 가능
* **도구 호출 기반 실행**: XML 데이터 처리와 관련된 툴을 활용하여 작업 자동화
* **문맥 기반 응답 생성**: Memory를 통해 대화 히스토리 반영
* **커스터마이징 가능한 프롬프트**: `{tools}`, `{chat_history}`, `{input}`, `{agent_scratchpad}` 포함 필수

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

### 입력값 (Inputs)

| 항목                   | 설명                                  | 필수 여부 |
| -------------------- | ----------------------------------- | ----- |
| **Tools**            | XML 데이터 처리에 활용할 수 있는 도구 목록.         | 필수    |
| **Memory**           | 사용자 대화 기록을 기반으로 문맥을 유지하는 메모리 노드     | 필수    |
| **Chat Model**       | XML 기반 질의응답을 수행할 언어 모델 (예: GPT-4 등) | 필수    |
| **Input Moderation** | 사용자 입력이 유해한 경우 필터링 여부               | 선택    |

***

### 파라미터 (Parameters)

| 항목                 | 설명                                                                                                                                                                                                                                                                                                                                       |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **System Message** | <p>에이전트의 기본 역할 및 도구 사용 권한을 명시하는 메시지.<br><strong>반드시 아래 네 가지 변수 포함 필요:</strong><br><code>{tools}</code>, <code>{chat\_history}</code>, <code>{input}</code>, <code>{agent\_scratchpad}</code><br>예시:<br><code>You are a helpful assistant. Help the user answer any questions. You have access to the following tools: {tools}</code></p> |
| **Max Iterations** | XML 데이터 기반 작업 실행 시 반복할 최대 횟수. (예: 3\~5권장)                                                                                                                                                                                                                                                                                                |

***

### 출력값 (Outputs)

| 출력 항목        | 설명                                  |
| ------------ | ----------------------------------- |
| **XMLAgent** | 도구 활용 및 LLM 질의를 통해 생성된 XML 기반 응답 결과 |

***

### 활용 예시

1. **XML 기반 보고서 요약**\
   → “최근 주문 XML에서 배송 완료된 항목만 요약해줘.”\
   → xml\_parser 도구 호출 → 필터링 및 요약
2. **구조화 문서 탐색형 QA**\
   → “이 XML 데이터에서 고객 이름과 연락처를 뽑아줘.”\
   → XPath 기반 툴 실행 → 결과 전달
3. **반복형 추론 + 정제 처리**\
   → “상품 항목별로 분류하고, 카테고리별 합계를 알려줘.”\
   → 반복 툴 호출 + 계산 + 정리

***

### 추천 사용 상황

* XML로 저장된 내부 시스템 데이터를 분석하고 응답해야 하는 경우
* 대화형 인터페이스로 구조화 문서를 검색하거나 필터링하고자 할 때
* 여러 단계를 통해 XML 기반 업무를 자동화하고 싶은 경우

***

### 주의사항

* **System Message에는 `{tools}`, `{chat_history}`, `{input}`, `{agent_scratchpad}` 네 가지 변수 반드시 포함**해야 LLM이 정상 작동합니다.
* 반복 횟수(Max Iterations)를 너무 높게 설정하면 비효율적일 수 있으므로 3\~5회 이내 권장
* Tools로 연결된 XML 처리용 도구가 반드시 사전에 정의되어 있어야 함

***

XML Agent는 WindyFlo에서 **정형 데이터 기반 질의응답과 자동화 흐름을 구축할 수 있는 특화 노드**입니다. 내부 시스템 로그, 전자문서, 정부 서식 기반 업무에 이상적입니다.
