# 소개

> Skynet이 무엇인지, 무엇을 최적화하는지, 어디서 시작하는지 알아봅니다.

Skynet은 이미 가지고 있는 아티팩트를 개선합니다. 시작 버전, 케이스 세트, 메트릭을 제공하면 Skynet이 새 버전을 제안하고, 각 버전을 케이스에서 실행하고, 메트릭으로 출력을 채점한 뒤 가장 좋은 버전을 유지합니다.

## Skynet이 최적화하는 대상

Skynet은 네 가지 아티팩트 종류를 다룹니다.

| 아티팩트 종류 | 변경되는 부분                                       |
| ------------- | --------------------------------------------------- |
| 프롬프트      | 프롬프트 텍스트                                     |
| 코드          | 소스 코드                                           |
| DSPy 프로그램 | `dspy.Module` 안에 있는 예측기(predictor)의 지시문  |
| 텍스트        | 그 밖의 모든 텍스트(예: 문서나 구성 파일)           |

모든 실행은 같은 계약을 따릅니다. 실행 코드는 `run(artifact, input)`을 정의합니다. 메트릭은 `score(input, output, expected=None)`을 정의합니다. 메트릭은 점수와 서술형 피드백을 반환합니다. 옵티마이저는 이 피드백을 읽고 다음 버전을 더 좋게 만듭니다.

> [!NOTE]
> 실행 코드와 메트릭은 샌드박스 안에서 서로 다른 프로세스로 실행됩니다. 실행 코드는 메트릭 소스나 기댓값을 볼 수 없습니다.

## 하나의 제품, 여러 엔진

Skynet은 Optimize Anything입니다. 어떤 엔진이 작업할 수 있는지는 아티팩트 종류에 따라 정해집니다.

- 프롬프트, 코드, 텍스트 아티팩트는 네이티브 엔진을 사용합니다: GEPA, Best-of-N, Meta-Harness, AutoResearch, AutoSaddler, ShinkaEvolve.
- DSPy 프로그램 아티팩트는 DSPy 옵티마이저를 사용합니다: DSPy GEPA, DSPy MIPROv2, DSPy BootstrapFewShot.

**Auto**가 대신 선택합니다. DSPy 프로그램에서는 Auto가 DSPy GEPA를 사용합니다. 다른 아티팩트 종류에서는 Auto가 다섯 개의 네이티브 엔진을 조합합니다. [최적화의 작동 방식](/docs/ko/concepts/optimization)과 [엔진](/docs/ko/concepts/engines)을 읽어 보세요.

## 실행의 작동 방식

1. 작업을 설명하고 시작 버전을 설정합니다.
2. 케이스를 제공합니다. Skynet은 케이스를 학습, 검증, 테스트 세트로 분할합니다.
3. 옵티마이저, 모델, 예산을 선택합니다.
4. 실행 코드와 메트릭을 작성합니다. 계약 검사가 샘플 케이스에서 둘을 실행합니다.
5. Skynet이 최적화를 실행하고 결과를 보여 줍니다.

Skynet은 검증 케이스에서 버전을 선택합니다. 최종 점수는 테스트 케이스에서 보고합니다. 엔진은 테스트 케이스를 절대 보지 않습니다.

## 어디서 시작할까요

| 하고 싶은 일                 | 읽을 문서                                             |
| ---------------------------- | ----------------------------------------------------- |
| 첫 실행 시작하기             | [빠른 시작](/docs/ko/quickstart)                         |
| 최적화의 작동 방식 이해하기  | [최적화의 작동 방식](/docs/ko/concepts/optimization)     |
| 엔진 고르기                  | [엔진](/docs/ko/concepts/engines)                        |
| 데이터 준비하기              | [데이터셋과 분할](/docs/ko/concepts/datasets)            |
| 메트릭 작성하기              | [지표와 채점기](/docs/ko/concepts/scorers)             |
| 마법사 작성하기              | [마법사로 실행 시작](/docs/ko/guides/submit)                  |
| 결과 읽기                    | [결과 읽기](/docs/ko/guides/results)                          |
| 비용 이해하기                | [예산과 결제](/docs/ko/concepts/billing)                        |
| 에이전트에서 Skynet 사용하기 | [MCP 서버](/docs/ko/mcp)                                      |
| 코드에서 Skynet 호출하기     | [API](/docs/ko/api)                                      |
| 제한 확인하기                | [제한](/docs/ko/limits)                                  |

> [!TIP]
> 작은 데이터셋과 기본 설정으로 시작하세요. 메트릭 피드백은 구체적으로 작성하세요. 좋은 피드백은 점수만 있을 때보다 옵티마이저가 활용할 정보를 더 많이 줍니다.

---

Source: https://staging.skynetml.com/docs/ko
