> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-locadex-parallel-t9n-main-cs60c8p4o6ik99tylxgp3.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# ARIA와 함께 자동화 사용하기

> 특정 이벤트가 발생하면 ARIA에 템플릿 기반 프롬프트를 전송해 새 대화를 시작하는 W&B 자동화를 만듭니다.

export const AriaChatBubbles = ({prompt, response}) => {
  const [isDark, setIsDark] = useState(false);
  const [promptCopied, setPromptCopied] = useState(false);
  useEffect(() => {
    const root = document.documentElement;
    const sync = () => setIsDark(root.classList.contains('dark'));
    sync();
    const obs = new MutationObserver(sync);
    obs.observe(root, {
      attributes: true,
      attributeFilter: ['class']
    });
    return () => obs.disconnect();
  }, []);
  useEffect(() => {
    if (!promptCopied) {
      return undefined;
    }
    const timeout = setTimeout(() => setPromptCopied(false), 2000);
    return () => clearTimeout(timeout);
  }, [promptCopied]);
  const copyText = text => {
    navigator.clipboard.writeText(text).then(() => setPromptCopied(true)).catch(console.error);
  };
  const userBg = isDark ? '#363C44' : '#F8F8F8';
  const userBorder = isDark ? '#4B535C' : '#DFE0E2';
  const textColor = isDark ? '#E8E8E9' : '#2B3038';
  const iconColor = isDark ? '#8F949E' : '#79808A';
  const iconHoverBg = isDark ? 'rgba(255,255,255,0.10)' : 'rgba(0,0,0,0.05)';
  const bubbleText = {
    fontSize: '15px',
    color: textColor,
    overflowWrap: 'anywhere'
  };
  const bubbleBase = {
    maxWidth: '85%'
  };
  const copyIcon = promptCopied ? <svg aria-hidden="true" focusable="false" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" style={{
    color: '#FCBC32'
  }}>
      <path d="M20 6 9 17l-5-5" />
    </svg> : <svg aria-hidden="true" focusable="false" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
      <rect width="14" height="14" x="8" y="8" rx="2" ry="2" />
      <path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2" />
    </svg>;
  return <div aria-label="ARIA chat example" className="not-prose flex flex-col gap-3" role="group">
      {}
      <div className="flex w-full justify-end">
        <div className="flex w-fit items-start gap-1 rounded-2xl py-2 pl-3 pr-1.5" style={{
    ...bubbleBase,
    backgroundColor: userBg,
    border: `1px solid ${userBorder}`
  }}>
          <div className="min-w-0 flex-1 hyphens-auto whitespace-pre-wrap" style={bubbleText}>
            {prompt}
          </div>
          <button type="button" className="mt-0.5 shrink-0 rounded-lg p-1.5 cursor-pointer" style={{
    color: iconColor,
    background: 'transparent'
  }} onMouseEnter={e => {
    e.currentTarget.style.backgroundColor = iconHoverBg;
  }} onMouseLeave={e => {
    e.currentTarget.style.backgroundColor = 'transparent';
  }} onClick={() => copyText(prompt)} aria-label="Copy user prompt">
            {copyIcon}
          </button>
        </div>
      </div>
      {}
      <div className="flex w-full justify-start">
        <div className="w-fit rounded-2xl py-2 px-3" style={{
    ...bubbleBase,
    border: '1px solid #CDF4F7'
  }}>
          <div className="hyphens-auto whitespace-pre-wrap" style={bubbleText}>
            {response}
          </div>
        </div>
      </div>
    </div>;
};

특정 이벤트가 발생할 때 W\&B 자동화를 사용해 ARIA에 프롬프트를 보낼 수 있습니다. 이벤트가 발생할 때마다 자동화는 새로운 ARIA 대화를 시작하고 설정된 프롬프트를 전송합니다.

ARIA에 프롬프트를 보내는 자동화는 크게 두 부분으로 구성됩니다.

* 자동화를 트리거하는 [이벤트](/ko/models/automations/automation-events)
* 이벤트가 발생할 때 ARIA가 받는 프롬프트

이 워크플로를 사용해 실험 결과를 살펴보거나, Runs를 요약 또는 보고하거나, 임계값을 넘은 메트릭을 분석하세요.

ARIA에 프롬프트를 보내는 것은 W\&B 자동화가 수행할 수 있는 액션 중 하나입니다. 다른 대상으로 알림을 보내는 자동화를 만들려면 [Slack 자동화 만들기](/ko/models/automations/create-automations/slack) 또는 [웹훅 자동화 만들기](/ko/models/automations/create-automations/webhook)를 참고하세요.

ARIA에 W\&B 자동화 생성과 관리를 대신 맡길 수도 있습니다. 자세한 내용은 [ARIA로 자동화 생성 및 관리](#create-and-manage-automations-with-aria)를 참고하세요.

<Note>
  [W\&B Multi-tenant Cloud](/ko/platform/hosting/#wb-multi-tenant-cloud)에서만 지원됩니다.

  ARIA는 개인 entity가 아닌 팀 프로젝트에서 동작합니다. 또한 organization admin이 **Smart features**를 활성화해야 합니다. [거버넌스 및 보안](/ko/aria/governance)을 참고하세요.
</Note>

<div id="requirements">
  ## Requirements
</div>

ARIA에 프롬프트를 전송하는 자동화를 만들기 전에 다음 사항을 확인하세요.

* 조직에서 ARIA가 활성화되어 있어야 합니다. **Action type** 목록에 **Trigger ARIA**가 표시되지 않는다면 해당 조직, 범위 또는 deployment에서는 ARIA를 사용할 수 없습니다. 이 경우 목록에서 별도의 설명 없이 해당 옵션이 생략됩니다. [거버넌스 및 보안](/ko/aria/governance)을 참조하세요.
* 자동화의 범위로 지정할 프로젝트, 레지스트리 또는 컬렉션에 대한 쓰기 액세스 권한이 있어야 합니다.
* W\&B 자동화의 범위를 레지스트리로 지정하고 ARIA에 프롬프트를 전송하려면 같은 조직 내의 팀에 속해 있어야 합니다. 각 ARIA 대화는 팀과 연결되므로, 해당 조직의 팀에 속해 있지 않으면 레지스트리 범위의 자동화를 만들 수 없습니다.

ARIA 자동화가 실행될 때마다 ARIA 대화가 시작되며, 직접 시작한 대화와 동일하게 조직의 사용량에 포함됩니다.

<div id="create-an-automation">
  ## 만들기
</div>

자동화를 적용할 범위에 따라 **Registry** 또는 **Project**를 선택하세요. 그런 다음 아래 단계에 따라 ARIA에 프롬프트를 전송하는 자동화를 만드세요.

<Note>
  자동화를 더 넓은 범위에 적용하려면 전역 **Automations** 허브에서 자동화를 만들고 **Team** 또는 **Organization** 범위를 선택하세요. 단계는 아래 설명과 동일합니다. 이러한 범위에서는 W\&B가 아티팩트 및 컬렉션 이벤트만 지원합니다. [Automations 허브](/ko/models/automations#automations-hub)를 참조하세요.
</Note>

<Tabs>
  <Tab title="Registry">
    레지스트리 관리자는 해당 레지스트리에서 자동화를 만들 수 있습니다.

    1. W\&B에 로그인합니다.
    2. 레지스트리 이름을 클릭하여 세부 정보를 확인합니다.
    3. 레지스트리 범위의 자동화를 만들려면 **Automations** 탭을 클릭한 다음 **Create automation**을 클릭합니다. 레지스트리 범위로 지정된 자동화는 해당 레지스트리의 모든 컬렉션(향후 생성되는 컬렉션 포함)에 자동으로 적용됩니다.
    4. 감시할 [이벤트](/ko/models/automations/automation-events/#registry-events)를 선택합니다.

       이벤트에 따라 추가로 표시되는 필드를 입력합니다. 예를 들어 **An artifact alias is added**를 선택한 경우 **Alias regex**를 지정해야 합니다.

       **Next step**을 클릭합니다.
    5. ARIA 대화를 호스팅할 팀을 선택합니다. [자동화로 생성된 대화 보기](#view-conversations-created-by-automations)를 참조하세요.
    6. **Action type**을 **Trigger ARIA**로 설정합니다.
    7. **Prompt** 필드에 ARIA로 전송할 프롬프트를 작성합니다. [프롬프트 작성](#write-the-prompt)을 참조하세요. **Next step**을 클릭합니다.
    8. 자동화의 이름을 입력합니다. 필요에 따라 설명도 입력합니다.
    9. **Create automation**을 클릭합니다.

    이제 자동화가 활성화되어 선택한 이벤트가 레지스트리에서 발생할 때마다 새 ARIA 대화를 시작합니다.
  </Tab>

  <Tab title="Project">
    W\&B admin은 프로젝트에서 자동화를 만들 수 있습니다.

    1. W\&B에 로그인합니다.
    2. 프로젝트 페이지로 이동하여 **Automations** 탭을 클릭한 다음 **Create automation**을 클릭합니다.
    3. 감시할 [이벤트](/ko/models/automations/automation-events/#project)를 선택합니다.

       1. 추가로 표시되는 필드를 입력합니다. 예를 들어 **An artifact alias is added**를 선택한 경우 **Alias regex**를 지정해야 합니다.

          1. run으로 트리거되는 자동화의 경우, 필요에 따라 하나 이상의 run 필터를 지정할 수 있습니다.

             * **Filter to one user's runs**: 지정한 사용자가 생성한 run만 포함합니다. 토글을 클릭하여 필터를 켠 다음 사용자 이름을 지정합니다.
             * **Filter on run name**: 이름이 지정한 정규 표현식과 일치하는 run만 포함합니다. 토글을 클릭하여 필터를 켠 다음 정규 표현식을 지정합니다.
       2. **Next step**을 클릭합니다.
    4. 프로젝트를 소유한 팀을 선택합니다.
    5. **Action type**을 **Trigger ARIA**로 설정합니다.
    6. **Prompt** 필드에 ARIA로 전송할 프롬프트를 작성합니다. [프롬프트 작성](#write-the-prompt)을 참조하세요. **Next step**을 클릭합니다.
    7. 자동화의 이름을 입력합니다. 필요에 따라 설명도 입력합니다.
    8. **Create automation**을 클릭합니다.

    이제 자동화가 활성화되어 선택한 이벤트가 프로젝트에서 발생할 때마다 새 ARIA 대화를 시작합니다.
  </Tab>
</Tabs>

<div id="create-and-manage-automations-with-aria">
  ## ARIA로 자동화 만들기 및 관리하기
</div>

ARIA는 필요할 때 자동화를 생성, 삭제, 활성화, 비활성화할 수 있습니다.

ARIA에게 자동화를 만들어 달라고 요청해 보세요:

<AriaChatBubbles prompt="새 자동화를 만들어 줘: run이 성공하면 ARIA가 팀을 위해 해당 run과 메트릭, 결과를 요약한 report를 작성하도록 트리거해 줘." response="**Summarize successful run**이라는 이름으로 활성화된 프로젝트 전체 자동화를 만들 수 있습니다. 이 자동화는 어떤 run이든 `FINISHED` 상태가 되면 실행되며, ARIA에게 해당 run의 설정, 주요 메트릭, 결과, 주목할 만한 관찰 내용을 요약한 report를 작성하도록 요청합니다." />

기존 자동화에 대해 ARIA에게 물어보세요:

<AriaChatBubbles prompt="이 프로젝트에는 어떤 자동화가 있어?" response="프로젝트 수준 자동화가 2개 있으며, 둘 다 활성화되어 있습니다...." />

<div id="write-the-prompt">
  ## 프롬프트 작성하기
</div>

ARIA 액션에서 설정할 항목은 프롬프트 하나뿐입니다. ARIA chat window에 메시지를 작성하듯 프롬프트를 작성하고, ARIA가 검사할 run, 아티팩트, 메트릭을 지정하려면 [템플릿 변수](#template-variables)를 포함하세요.

다음 제약 사항에 유의하세요.

* 프롬프트는 필수이며 최대 4,000자까지 입력할 수 있습니다. W\&B는 템플릿 변수를 치환한 후 길이를 다시 확인하므로, 저장에 성공한 프롬프트라도 치환된 값이 길면 자동화 실행 시 실패할 수 있습니다. 이 검사에 실패한 프롬프트는 자동화의 [실행 이력](/ko/models/automations/view-automation-history)에 실패한 실행으로 기록됩니다.
* 해당 이벤트에 적용되지 않는 템플릿 변수은 변수 이름이 아니라 empty string으로 처리됩니다. 사용 중인 이벤트에 나열된 변수만 사용하세요.
* ARIA는 자동화가 실행될 때마다 새 대화를 시작합니다. 이전 대화를 이어가지 않으며, 동일한 자동화의 이전 실행 내용도 기억하지 않습니다.

변수를 삽입하려면 **Prompt** 필드 아래 목록에서 해당 변수 옆의 **<Icon icon="plus" iconType="solid" />** 를 클릭하세요. W\&B가 프롬프트 끝에 해당 변수를 추가합니다. 목록에는 선택한 이벤트에 적용되는 변수만 표시됩니다.

예를 들어 다음 프롬프트는 새로 연결된 모델 버전을 각각 조사합니다.

```text theme={null}
${event_author}님이 방금 ${artifact_collection_name}의 새 버전을 ${project_name}에 연결했습니다.

${artifact_version_string}을(를) 현재 프로덕션 별칭과 비교하세요. 평가 메트릭에서 나타난 성능 저하를 요약하고, 승격 여부를 추천해 주세요.
```

자동화를 저장하기 전에 ARIA에게 프롬프트 문구 작성을 도와달라고 요청할 수 있습니다:

<AriaChatBubbles prompt="이 프로젝트에서 run이 실패할 때마다 실행되는 자동화를 만들고 싶습니다. 실패 원인을 진단해 달라고 요청하는 프롬프트를 작성해 주세요." response="자동화에 붙여 넣을 프롬프트입니다: '${project_name}의 run ${run_name}이 방금 실패했습니다. 해당 run의 로그, 설정, 시스템 메트릭을 살펴보고 최근 성공한 run 몇 개와 비교한 다음, 가장 유력한 원인과 시도해 볼 수 있는 구체적인 해결 방법 한 가지를 알려주세요.'" />

<div id="template-variables">
  ## 템플릿 변수
</div>

템플릿 변수는 `${variable_name}` 구문을 사용합니다. 프롬프트에서 사용할 수 있는 변수는 자동화가 감시하는 이벤트에 따라 달라집니다.

모든 이벤트에서 다음 변수를 사용할 수 있습니다.

| 변수                   | 설명                               |
| -------------------- | -------------------------------- |
| `${automation_name}` | 액션을 트리거한 자동화의 이름입니다.             |
| `${event_type}`      | 액션을 트리거한 이벤트의 유형입니다.             |
| `${event_author}`    | 액션을 트리거한 사용자입니다.                 |
| `${entity_name}`     | 액션을 트리거한 이벤트를 소유한 entity의 이름입니다. |
| `${project_name}`    | 액션을 트리거한 이벤트를 소유한 프로젝트의 이름입니다.   |

이벤트에 따라 위 변수 외에 다음 변수도 사용할 수 있습니다.

| 이벤트                                     | 추가 변수                                                                                                                                       |
| --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| 아티팩트 버전이 생성, 연결 또는 연결 해제됨               | `${artifact_collection_name}`, `${artifact_version}`, `${artifact_version_string}`, `${artifact_version_index}`, `${artifact_metadata.KEY}` |
| 아티팩트 별칭이 추가되거나 업데이트됨                    | 위의 아티팩트 변수와 `${alias}`                                                                                                                      |
| 아티팩트 tag가 추가되거나 제거됨                     | 위의 아티팩트 변수와 `${tag}`                                                                                                                        |
| 컬렉션 tag가 추가되거나 제거됨                      | `${artifact_collection_name}`, `${tag}`                                                                                                     |
| run 메트릭이 임계값을 넘거나, 변경되거나, z-점수 기준으로 변경됨 | `${run_name}`, `${metric_name}`, `${metric_values}`, `${metric_filter}`, `${metric_filter_short}`, `${metric_current_status}`               |
| run의 status가 변경됨                        | `${run_name}`, `${run_status}`                                                                                                              |
| Weave 메트릭이 임계값을 넘음                      | `${alert_name}`, `${metric_name}`, `${metric_value}`, `${threshold}`, `${comparison_op}`, `${message}`                                      |

개별 변수에는 다음 사항이 적용됩니다.

* `${artifact_version}`은 `wandb-artifact://_id/QXJ0aWZhY3Q6NTE3ODg5ODg3`와 같은 아티팩트 인스턴스로 확인됩니다. 버전을 이름으로 참조하려면 `${artifact_version_string}`을 사용하세요.
* `${artifact_metadata.KEY}`는 이벤트를 트리거한 아티팩트 버전에서 custom metadata 값을 조회합니다. `KEY`는 원하는 메타데이터 키로 바꾸세요. top-level 메타데이터 키만 지원됩니다.

각 범위에서 사용할 수 있는 이벤트는 [Automation events and scopes](/ko/models/automations/automation-events)를 참고하세요.

<div id="view-conversations-created-by-automations">
  ## 자동화가 생성한 대화 보기
</div>

자동화는 이벤트를 트리거한 액션을 수행한 사용자가 아니라, 해당 자동화를 만든 사용자의 계정으로 ARIA 대화를 생성합니다. 이 대화는 그 사용자의 ARIA 채팅 이력에서 **Past conversations** 아래에, 본인이 직접 시작한 대화와 함께 표시됩니다. 이벤트를 발생시킨 사용자를 파악하려면 프롬프트에 `${event_author}`를 포함하세요.

대화가 저장되는 위치는 자동화의 범위에 따라 달라집니다.

* **프로젝트 범위 및 팀 범위 자동화**: 이벤트가 발생한 프로젝트에 대화가 생성됩니다.
* **레지스트리 범위 자동화**: 레지스트리는 팀이 아니라 조직에 속하지만, ARIA 대화는 반드시 팀에 속해야 합니다. 따라서 자동화를 만들 때 선택한 팀의 `wandb_agent_default_project`라는 프로젝트에 대화가 생성됩니다. 레지스트리가 아니라 이곳에서 확인하세요.

  `wandb_agent_default_project`는 사용자가 연 프로젝트와 연결되지 않은 대화를 보관하기 위해 W\&B가 각 팀마다 유지하는 자리 표시자 프로젝트입니다. 직접 만들 필요가 없으며, 이러한 대화를 제외하면 일반적으로 비어 있습니다.

자동화가 실행되었는지 확인하려면 해당 자동화의 [실행 이력](/ko/models/automations/view-automation-history)을 여세요. ARIA 실행이 성공하면 W\&B가 전송한 프롬프트와 대화의 `thread_id`가 포함된 응답 본문이 표시됩니다. W\&B는 실행에서 대화로 연결되는 링크를 제공하지 않으며, 자동화로 생성된 대화가 채팅 이력에서 별도로 구분되어 표시되지도 않습니다.

<div id="view-and-manage-automations">
  ## 자동화 보기 및 관리
</div>

프로젝트나 레지스트리의 **Automations** 탭 또는 전역 **Automations** 허브에서 자동화를 보고 관리할 수 있습니다. 자동화 목록에서 액션은 **ARIA**로 표시됩니다.

ARIA 대화는 자동화를 만든 사용자 권한으로 실행되므로, ARIA에 프롬프트를 보내는 자동화는 생성자만 편집할 수 있습니다. 프로젝트 또는 레지스트리에 대한 쓰기 액세스 권한이 있는 팀 구성원은 해당 자동화를 보고 삭제할 수 있지만, 자동화 **Edit** 옵션은 사용할 수 없습니다.

자동화의 소유권은 이전할 수 없습니다. 대신 자동화를 삭제한 후 새 소유자가 다시 생성하도록 하세요. 생성자가 팀을 떠난 자동화를 복구할 때도 동일한 방법을 사용하세요.

<div id="limitations">
  ## 제한 사항
</div>

* ARIA 자동화는 [W\&B Multi-tenant Cloud](/ko/platform/hosting/#wb-multi-tenant-cloud)의 팀 프로젝트에서, 조직 관리자가 **Smart features**를 활성화한 경우에만 사용할 수 있습니다.
* 각 자동화는 분당 최대 3개의 ARIA 대화를 시작할 수 있습니다. 이 한도를 초과한 실행은 자동화 이력에 **Skipped** 상태로 기록되며, 이는 자동화가 이벤트와 일치했지만 해당 액션을 실행하지 않았음을 의미합니다.
* 자동화를 만든 사용자가 해당 프로젝트에 대한 쓰기 액세스를 잃거나 계정이 비활성화되면 이후의 모든 실행이 실패합니다. 실패 내역은 자동화의 실행 이력에 표시됩니다.
* 자동화는 생성자만 편집할 수 있습니다.
* `wandb` Python 라이브러리는 ARIA 자동화를 지원하지 않습니다. [API로 자동화 관리](/ko/models/automations/api)를 참조하세요.

<div id="next-steps">
  ## 다음 step
</div>

* [Automation events and scopes](/ko/models/automations/automation-events)
* [자동화 이력 보기](/ko/models/automations/view-automation-history)
* [Chat with ARIA](/ko/aria/chat)
* [ARIA 개요](/ko/aria/overview)
