> ## Documentation Index
> Fetch the complete documentation index at: https://docs.starfort.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Control Profile

> 회사 레벨 Control Profile로 Starfort 데스크톱 에이전트가 어떤 AI 서비스를, 어떤 사용자 그룹에, 어떻게 통제할지 정의합니다 (Starfort v1.4 문서)

**Control Profile**은 [Desktop Agent](/ko/v1.4/desktop/how-it-works)에게 어떤 AI 서비스를 어떻게 통제할지 알려줍니다. Control Profile은 **회사** 수준에서 정의되며 Desktop Agent 프로젝트에 적용됩니다.

**Desktop Agent › Control Profile**을 열어 회사의 프로필을 확인합니다. 회사가 Desktop Agent 기능을 처음 활성화하면, Starfort는 일반적인 AI 서비스(ChatGPT, Claude, Copilot, Gemini, Perplexity, Cursor, DeepSeek, Grok, GitHub Copilot 등)에 대한 시작용 프로필 세트를 \*\*시딩(seed)\*\*합니다. 그 이후부터 회사가 이 세트를 **완전히 소유**합니다: 어느 프로필의 이름, 설명, 활성화 상태, 규칙도 편집할 수 있고, 프로필을 추가하고 삭제할 수 있으며, 환경 간에 정책을 옮기기 위해 **전체 세트를 JSON으로 가져오기/내보내기**까지 할 수 있습니다.

<Frame caption="회사 Control Profile">
  <img src="https://mintcdn.com/aimintelligence/-3ie4No4rGti8Jbz/images/v1.3/admin/control-profile-list.png?fit=max&auto=format&n=-3ie4No4rGti8Jbz&q=85&s=39ea1f2beec4a494ba6a7cb1b3352d0b" alt="추가 버튼이 강조 표시된 Control Profile 목록" width="1200" height="626" data-path="images/v1.3/admin/control-profile-list.png" />
</Frame>

## 프로필의 구성 요소

각 프로필은 최대 세 가지 메커니즘을 결합합니다:

| 메커니즘                           | 목적                                            |
| ------------------------------ | --------------------------------------------- |
| **Guardian targets** (capture) | Agent가 가로채어 평가를 위해 Guardian으로 전송하는 URL/요청입니다. |
| **Matching whitelist**         | 명시적으로 통과가 허용되는 요청입니다.                         |
| **URL blacklist**              | 완전히 차단되는 URL입니다(평가 없음).                       |

프로필은 Guardian targets가 있을 때(Guardian을 호출할 수 있음) **Dynamic**이며, 필터링만 수행할 때(whitelist/blacklist, Guardian 호출 없음) **Static**입니다. 이 Static/Dynamic 유형은 `guardianTargetList`에 항목이 있는지 여부에 따라 **생성 시 고정**되며, 이후에는 **변경할 수 없습니다** — 전환하려면 새 프로필을 생성하세요. **Dynamic** 프로필만 Guardian에 매핑할 수 있으며, Static 프로필은 whitelist/blacklist 필터링만 수행합니다.

각 프로필에는 **Enabled** 토글이 있습니다. **off**일 때 프로필은 런타임에 완전히 제외됩니다 — 세 단계 중 어느 것도 실행되지 않으며 **Opticon 트레이스도 생성되지 않습니다**. 규칙은 유지되며 비활성 상태일 뿐입니다.

## 모듈 인스턴스 연결과 입력 유형 라우팅

v1.4부터 Control Profile에는 [모듈 인스턴스](/ko/v1.4/concepts/module-instances)를 **모듈별로 1개씩** 연결할 수 있습니다 — Guardian 인스턴스 1개와 [Stratum](/ko/v1.4/concepts/stratum) 인스턴스 1개, 둘 다 또는 한쪽만. 게이트웨이는 요청을 받아 Control Profile에 할당된 모듈 인스턴스로 보내되, **입력 유형(텍스트 / 파일)에 따라 담당 모듈을 분기**합니다.

| 모듈 할당 구성           | 텍스트 입력         | 파일 입력                  |
| ------------------ | -------------- | ---------------------- |
| Guardian + Stratum | Guardian(가드레일) | Stratum(등급 판별)         |
| Guardian only      | Guardian       | Guardian(가드레일) — 기존 동작 |
| Stratum only       | (검사 없음)        | Stratum(등급 판별)         |

각 모듈은 **서로 독립적으로 검사하며, 두 모듈의 결과를 하나의 판정으로 교차 취합하지 않습니다**. 게이트웨이는 입력 유형으로 분기해 각 모듈의 판정을 그대로 전달할 뿐, 결과를 합치는 별도의 병합 계층을 두지 않습니다. Stratum이 할당되어 있으면 파일은 Stratum 단독이 담당하고(파일 등급 판별과 마스킹 모두 — 이때 Guardian의 파일 가드레일은 적용되지 않습니다), Stratum이 없으면 기존 그대로 Guardian이 텍스트와 파일을 모두 처리합니다.

## 편집

**추가**로 프로필을 생성하고, 행 작업으로 편집/비활성화/삭제하며, **JSON** 보기로 메커니즘을 직접 편집할 수 있습니다. JSON 보기에서는 전체 프로필, 규칙만(세 메커니즘 전부), 또는 단일 메커니즘을 교체할 수 있습니다. 저장 시 JSON의 유효성을 검사하고, 각 항목의 `id`가 해당 메커니즘 내에서 고유한지 확인하며, 변경 불가능한 Static/Dynamic 유형을 강제합니다. **서로 다른** Guardian으로 라우팅되는 두 Guardian-target 항목이 겹치면, Starfort는 **경고**합니다(저장을 차단하지는 않습니다).

## 변경 사항은 자동으로 전파됩니다

프로필에 대해 가한 모든 변경 — 규칙, 메타데이터, 활성화 상태, 또는 삭제 — 은 그것을 사용하는 모든 프로젝트와 Guardian으로 \*\*자동으로 캐스케이드(cascade)\*\*됩니다. 재할당 단계는 없습니다. 프로필을 삭제하면 모든 프로젝트와 Guardian 매핑에서 분리됩니다.

## 레시피

<CardGroup cols={2}>
  <Card title="맞춤형 Control Profile 추가" icon="plus" href="/ko/v1.4/admin/how-to/add-control-profile" />

  <Card title="AI 서비스 추가 / 변경 / 제거" icon="pen-to-square" href="/ko/v1.4/admin/how-to/manage-ai-services" />
</CardGroup>
