> For the complete documentation index, see [llms.txt](https://help.genesis.autify.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.genesis.autify.com/features-ko/workflow/workflow-creation.md).

# 워크플로 작성·편집

이 문서에서는 Autify Genesis의 워크플로 기능을 설명합니다. 워크플로를 사용하면 AI 에이전트를 조합하여 QA 업무를 자동화할 수 있습니다.

## 워크플로 목록 확인과 관리

워크플로 목록에서는 워크플로의 이름·설명·카테고리·실행 횟수·마지막 실행 일시와 상태를 한눈에 확인할 수 있습니다. 워크스페이스를 열면 처음에 **워크플로** 탭이 표시됩니다.

각 워크플로 행에서 다음 작업을 실행할 수 있습니다.

| 작업 | 내용                         |
| -- | -------------------------- |
| 실행 | 워크플로를 실행한다                 |
| 복제 | 기존 워크플로를 복사하여 새 워크플로를 작성한다 |
| 보관 | 더 이상 필요 없는 워크플로를 목록에서 숨긴다  |

{% hint style="info" %}
보관한 워크플로는 삭제되지 않습니다. 실행 기록도 유지됩니다.
{% endhint %}

{% hint style="warning" %}
프리셋 워크플로(템플릿)는 보관할 수 없습니다. 사용자 지정하려면 **복제**하십시오.
{% endhint %}

워크스페이스에 아직 워크플로가 없는 경우, 목록에는 템플릿 갤러리와 **처음부터 만들기** 카드가 표시됩니다. 갤러리에는 버그 트리아지, 탐색적 테스트 차터, 회귀 테스트 계획, 결함 분석, 릴리스 노트 작성, 테스트 계획 작성 등의 스타터 템플릿이 나열됩니다.

### 워크플로 검색하기

목록 화면 상단의 검색 바에 키워드를 입력하면 워크플로의 이름이나 설명 등으로 좁힐 수 있습니다.

## 워크플로 작성하기

워크플로는 처음부터 만드는 방법, YAML 파일에서 가져오는 방법, 템플릿에서 작성하는 방법을 지원합니다.

### 새 워크플로 작성하기

1. 워크플로 목록 화면 오른쪽 위의 **새 워크플로**를 클릭하십시오.
2. 작성 방법을 선택하십시오.

| 작성 방법       | 내용                           |
| ----------- | ---------------------------- |
| 처음부터 만들기    | 빈 워크플로를 작성하고 블록을 추가하면서 구축합니다 |
| YAML에서 가져오기 | YAML 파일에서 워크플로 정의를 가져옵니다     |
| 템플릿에서 시작    | 기존 템플릿을 복제하여 작성합니다           |

<figure><img src="/files/WEkzwe6OJ4zCsQWasjjR" alt="워크플로 생성 방법 스크린샷"><figcaption><p>워크플로 생성 방법</p></figcaption></figure>

{% hint style="info" %}
워크플로 작성 대화 상자의 프롬프트란에 하고 싶은 작업을 입력하면, 새로 열린 워크플로의 **AI 빌더**에 자동 입력되어 AI가 빈 캔버스에서 워크플로 구축을 시작합니다.
{% endhint %}

### YAML 파일에서 가져오기

1. **새 워크플로**를 클릭하십시오.
2. **YAML에서 가져오기**를 클릭하십시오.
3. `.yaml` 또는 `.yml` 파일을 선택하십시오. 파일을 드래그 앤 드롭하여 불러올 수도 있습니다.

## 워크플로 편집하기

워크플로 이름을 클릭하면 편집기 화면이 열립니다. 편집기는 헤더, 중앙의 캔버스, 오른쪽의 **AI 빌더** 사이드 패널로 구성되어 있습니다. 블록 설정은 캔버스 위에 플로팅 패널로 열리므로, 캔버스를 보면서 편집할 수 있습니다.

<figure><img src="/files/N16k1AMrvz6HtaD8SJKN" alt="워크플로 편집기의 화면 구성 스크린샷"><figcaption><p>워크플로 편집기의 화면 구성</p></figcaption></figure>

### 워크플로 세부 정보 변경하기

헤더의 워크플로 이름 옆에 있는 편집 아이콘을 클릭하면 **워크플로 세부 정보** 대화 상자가 열립니다.

| 항목   | 내용                        |
| ---- | ------------------------- |
| 이름   | 워크플로의 표시 이름               |
| 설명   | 워크플로의 설명문                 |
| 아이콘  | 목록에 표시되는 아이콘              |
| 카테고리 | 일반 / 제품 계획 / 품질 보증 중에서 선택 |

### 캔버스 조작하기

캔버스 아래의 도구 모음에서 다음 작업을 실행할 수 있습니다.

| 작업          | 내용                          |
| ----------- | --------------------------- |
| 블록 추가       | 블록 선택 패널을 연다                |
| 미리보기        | 워크플로 전체를 미리보기 실행한다          |
| 축소          | 캔버스를 축소한다                   |
| 확대          | 캔버스를 확대한다                   |
| 캔버스를 가운데 배치 | 모든 블록이 화면 안에 들어오도록 표시를 조정한다 |
| 실행 취소       | 직전 작업을 취소한다                 |
| 다시 실행       | 취소한 작업을 다시 실행한다             |

### AI 빌더 사용하기

오른쪽의 **AI 빌더**에 작성하거나 변경하고 싶은 내용을 자연어로 입력하면, AI가 워크플로를 자동으로 구축하거나 편집합니다.

{% hint style="success" %}
여러 블록을 선택한 상태로 입력하면, 선택 중인 블록에 대해 작업을 좁힐 수 있습니다.
{% endhint %}

<figure><img src="/files/epgnSmpTYuQZdvAvQhfC" alt="AI 빌더 스크린샷"><figcaption><p>AI 빌더</p></figcaption></figure>

### 블록 추가하기

워크플로는 블록을 연결하여 구축합니다. 캔버스 위의 **블록 추가**를 클릭하면 블록 선택 패널이 열립니다.

추가할 수 있는 블록 종류는 다음과 같습니다.

| 블록 유형   | 내용                                                                           |
| ------- | ---------------------------------------------------------------------------- |
| AI 에이전트 | LLM을 사용하여 텍스트나 구조화된 출력을 생성합니다. **AI 에이전트 템플릿**에서 용도에 맞는 AI 에이전트를 추가할 수도 있습니다 |
| 조건부     | 조건을 사용하여 실행을 분기합니다                                                           |
| 워크플로 호출 | 다른 워크플로를 단계로 실행합니다                                                           |

<figure><img src="/files/Me6v5I4pkZW2RGiBwbwC" alt="블록 선택 패널 스크린샷"><figcaption><p>블록 선택 패널</p></figcaption></figure>

AI 에이전트 블록의 설정 방법은 [AI 에이전트 블록](/features-ko/workflow/ai-agent-block.md) 참조.

연결한 상위 블록의 출력은 AI 에이전트 블록에 자동으로 컨텍스트로 전달됩니다. 사용자 입력이나 명시적으로 설정한 입력을 참조하려면 `{{변수명}}`을 사용합니다.

워크플로 중간에 블록을 삽입하려면 삽입할 위치의 **블록 추가**를 클릭하십시오.

블록 설정을 편집할 때는 블록을 선택하고 노드 또는 선택 상태에서 **블록 설정**을 클릭하십시오. 설정 패널은 캔버스 위에 열립니다.

### 조건부 블록 설정하기

| 설정 항목       | 내용                                               |
| ----------- | ------------------------------------------------ |
| 이름          | 블록의 표시 이름                                        |
| 설명          | 블록의 설명문                                          |
| 조건 모드       | AI(LLM으로 평가) 또는 식(JQ 식으로 평가)을 선택합니다              |
| 조건 프롬프트     | AI 모드인 경우, AI가 true 또는 false로 평가할 조건을 기술합니다      |
| 조건 모델       | 조건부 블록에서 true 또는 false를 판정하기 위해 사용할 AI 모델을 선택합니다 |
| 사고 강도       | 지원되는 추론 모델에서 AI 모드의 내부 추론량을 조절합니다                |
| JQ 식        | 식 모드인 경우, 입력에 대해 true 또는 false를 평가하는 JQ 식을 입력합니다 |
| Then 블록     | 조건이 true인 경우에 실행할 블록을 지정합니다                      |
| Else 블록     | 조건이 false인 경우에 실행할 블록을 지정합니다(선택 사항)              |
| 최대 루프 반복 횟수 | 분기 대상이 상위 블록인 경우, 대체 분기로 전환하기까지의 최대 반복 횟수를 설정합니다 |

조건부 블록에서는 AI 모드에서 연결한 상위 블록의 출력이 자동으로 컨텍스트로 전달됩니다. 식 모드에서는 상위 블록이 1개이면 `.input`, 여러 개인 경우는 각 상위 블록의 ID를 토대로 한 `.review_result`와 같은 변수명으로 출력을 참조할 수 있습니다. 블록 ID에 `-`나 `.`이 포함된 경우는 `_`로 치환되어 처리됩니다.

선택한 모델이 지원하는 경우, **사고 강도**를 조절해 응답 속도와 추론 깊이의 균형을 정할 수 있습니다. **기본값**으로 두면 모델의 권장 설정이 사용됩니다.

**JQ 식에 대해**

JQ 식은 블록의 출력(JSON 형식의 데이터)에서 값을 꺼내거나 조건을 판정하기 위한 기술 방식입니다. 맨 앞의 `.`은 "이 데이터의"를 의미하며, 그 뒤에 필드명을 이어 붙임으로써 특정 값을 참조할 수 있습니다.

| 작성 예              | 내용                             |
| ----------------- | ------------------------------ |
| `.status == "완료"` | status 필드의 값이 "완료"와 일치하는지 판정한다 |
| `.count > 0`      | count 필드의 값이 0보다 큰지 판정한다       |
| \`.items          | length > 0\`                   |
| `.result != null` | result 필드가 비어 있지 않은지 판정한다      |

{% hint style="warning" %}
식 모드에서 사용하는 JQ 식은 반드시 true 또는 false 중 하나를 반환하는 내용이어야 합니다.
{% endhint %}

### 워크플로 호출 블록 설정하기

워크플로 호출 블록을 선택하고, 블록 설정 패널의 **세부 정보** 탭에서 다음을 설정합니다.

| 설정 항목 | 내용                       |
| ----- | ------------------------ |
| 이름    | 블록의 표시 이름                |
| 설명    | 블록의 설명                   |
| 워크플로  | 자식 워크플로로 실행할 워크플로를 선택합니다 |

{% hint style="warning" %}
자식 워크플로로 선택한 워크플로가 보관 또는 삭제된 경우, 이 블록에 검증 오류가 표시됩니다. 다른 워크플로를 다시 선택하십시오.
{% endhint %}

### 사용자 입력 설정하기

사용자 입력은 워크플로 실행 시에 사용자가 매번 변경할 수 있는 동적인 값입니다.

1. 헤더의 **사용자 입력**을 클릭하십시오.
2. **사용자 입력 추가**를 클릭하여 입력 항목을 추가하십시오.
3. 각 입력 항목의 유형(텍스트 / 숫자 / 파일)을 설정하십시오.

추가한 사용자 입력은 프롬프트 안에서 `{{변수명}}` 형식으로 참조할 수 있습니다.

<figure><img src="/files/MKuMF8ok7BNrarOzjTJM" alt="사용자 입력 설정 스크린샷"><figcaption><p>사용자 입력 설정</p></figcaption></figure>

### 블록 조작하기

캔버스 위에서 블록을 우클릭하면 다음 작업을 실행할 수 있습니다. 여러 블록을 선택한 상태로 조작할 수도 있습니다.

블록을 우클릭하면 그 블록이 선택된 상태로 메뉴가 열립니다. 메뉴의 맨 앞에는 선택 중인 블록 이름, 또는 여러 개 선택 시의 선택 개수가 표시됩니다. 아무것도 없는 캔버스 부분을 우클릭하면 선택이 해제되어 **붙여넣기** 등의 캔버스 작업을 열 수 있습니다.

| 작업     | 내용                       |
| ------ | ------------------------ |
| 복사     | 선택한 블록을 클립보드에 복사한다       |
| 잘라내기   | 선택한 블록을 잘라낸다             |
| 붙여넣기   | 복사 또는 잘라낸 블록을 캔버스에 붙여넣는다 |
| 삭제     | 선택한 블록을 삭제한다             |
| 새 워크플로 | 선택한 블록을 새 워크플로로 분할한다     |

{% hint style="warning" %}
워크플로에는 적어도 1개의 블록이 필요합니다. 마지막 1개의 블록을 잘라낼 수는 없습니다.
{% endhint %}

### 워크플로 저장하기

변경 내용은 헤더의 **저장**을 클릭하면 저장됩니다. 저장하지 않은 변경 사항이 있는 경우, 화면을 떠날 때 대화 상자가 표시되어 저장할지 선택할 수 있습니다.

{% hint style="info" %}
검증 오류가 있는 상태에서도 저장은 가능합니다. 단, 오류를 모두 수정할 때까지 워크플로를 실행할 수 없습니다.
{% endhint %}

### 워크플로 내보내기

편집기 오른쪽 위의 **기타 작업**에서 **내보내기**를 클릭하면, 워크플로 정의를 YAML 파일로 다운로드할 수 있습니다.

### 워크플로 트리거 설정하기

워크플로 트리거는 수동으로 실행 버튼을 누르지 않고, 외부 시스템(API), 정기 일정, GitHub 이벤트(push, Pull Request 등)에서 워크플로를 자동 실행하기 위한 설정입니다.

자세한 내용은 "워크플로 실행"의 [트리거 설정](https://help.genesis.autify.com/features-ko/workflow/pages/YCR5UwnW07WCEID2QF2z#트리거-설정) 참조.

## 검토 기능

블록 설정 패널의 **검토 필수**를 활성화하면, 그 블록의 실행 후에 처리가 일시 중지되어 사람에 의한 검토를 기다립니다. 검토자는 다음 작업을 선택할 수 있습니다.

{% hint style="info" %}
검토 필수는 AI 에이전트 블록에서 사용할 수 있습니다.
{% endhint %}

| 작업        | 내용                               |
| --------- | -------------------------------- |
| 승인        | 출력을 그대로 다음 블록으로 전달하여 처리를 재개한다    |
| 변경사항으로 승인 | 출력을 수정한 후에 다음 블록으로 전달하여 처리를 재개한다 |
| 거부        | 워크플로 실행을 중지한다                    |

{% hint style="info" %}
검토 대기 중인 실행은 승인 또는 거부 작업이 이루어질 때까지 처리가 멈춥니다.
{% endhint %}

## 문제 해결

### 검증 오류

| 상황                             | 원인                           | 해결 방법                                   |
| ------------------------------ | ---------------------------- | --------------------------------------- |
| 워크플로를 실행할 수 없음                 | 검증 오류가 남아 있음                 | 헤더에 표시되는 오류 건수를 클릭하여 오류 내용을 확인하고 수정하십시오 |
| "순환 종속성이 감지되었습니다"              | 블록이 자기 자신에 의존하도록 연결되어 있음     | 블록 연결을 재검토하여 순환하지 않도록 수정하십시오            |
| "존재하지 않는 블록에 의존합니다"            | 참조 대상 블록이 삭제되어 있음            | 입력의 참조 대상을 재설정하십시오                      |
| "조건부 블록의 Then／Else 블록이 동일함"    | Then과 Else에 같은 블록이 지정되어 있음   | 서로 다른 블록을 지정하십시오                        |
| "자식 워크플로를 선택해야 합니다"            | 워크플로 호출 블록에 워크플로가 설정되어 있지 않음 | 블록 설정 패널에서 워크플로를 선택하십시오                 |
| "선택한 자식 워크플로를 더 이상 사용할 수 없습니다" | 설정한 워크플로가 보관 또는 삭제되어 있음      | 다른 워크플로를 다시 선택하십시오                      |

### 모델 오류

| 상황                   | 원인                           | 해결 방법         |
| -------------------- | ---------------------------- | ------------- |
| "선택한 모델을 사용할 수 없습니다" | 선택한 모델이 활성화된 프로바이더에서 제공되지 않음 | 다른 모델을 선택하십시오 |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.genesis.autify.com/features-ko/workflow/workflow-creation.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
