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

# 자율 실행 (Autonomous Execution)

> Decepticon이 목표별 클린 컨텍스트로 다단계 킬 체인을 오케스트레이션하는 방법.

## 킬 체인 오케스트레이션

OPPLAN이 생성되면 Decepticon의 오케스트레이터가 인수합니다. 정찰, 익스플로잇, 권한 상승, 측면 이동, 지속성에 이르는 전체 킬 체인을 자율적으로 반복 실행합니다.

이것은 선형적인 스크립트가 아닙니다. 오케스트레이터는 각 에이전트가 발견한 내용을 바탕으로 실시간으로 적응합니다.

## 실행 루프

<Steps>
  <Step title="다음 목표 선택">
    오케스트레이터가 OPPLAN에서 다음 대기 중인 목표를 선택하고, 의존성을 해결하며 킬 체인 단계에 따라 우선순위를 결정합니다.
  </Step>

  <Step title="컨텍스트 구성">
    목표 세부 정보, RoE 가드레일, 사용 가능한 스킬, 이전에 완료된 목표의 관련 발견 사항으로 프롬프트를 구성합니다.
  </Step>

  <Step title="새 에이전트 스폰">
    **클린 컨텍스트 윈도우**를 가진 새 에이전트 인스턴스가 생성됩니다. 이전 목표에서 축적된 노이즈 없이 — 매번 새로운 추론을 수행합니다.
  </Step>

  <Step title="실행">
    에이전트가 Kali 샌드박스 내에서 사용 가능한 도구와 스킬을 활용해 목표를 실행합니다. 모든 명령은 대화형 프롬프트 감지 기능이 있는 영속적 tmux 세션 내에서 실행됩니다.
  </Step>

  <Step title="결과 파싱">
    오케스트레이터가 에이전트의 `PASSED` / `BLOCKED` 시그널을 파싱하고, 목표 상태를 업데이트하며, 발견 사항을 디스크에 추가합니다.
  </Step>

  <Step title="반복">
    다음 목표로 이동합니다. 완료된 목표의 발견 사항이 후속 에이전트에 정보를 제공하여 다단계 공격 체인을 가능하게 합니다.
  </Step>
</Steps>

## 목표별 클린 컨텍스트

<Info>
  이것은 핵심적인 설계 결정입니다. 각 에이전트는 목표마다 클린 컨텍스트 윈도우로 스폰됩니다 — 긴 인게이지먼트에 걸친 컨텍스트 열화(Context Degradation)를 방지합니다.
</Info>

이것이 왜 중요한가:

* **축적된 노이즈 없음** — 인게이지먼트가 진행되어도 에이전트의 추론 품질이 저하되지 않습니다
* **클린 상태** — 각 목표는 이전 단계의 불필요한 컨텍스트 없이 온전한 주의를 받습니다
* **영속적 발견 사항** — 결과는 에이전트 메모리가 아닌 디스크에 저장됩니다. 오케스트레이터는 각 새 에이전트의 컨텍스트에 관련된 이전 발견 사항만 주입합니다

## 대화형 셸 세션

실제 오펜시브 보안 도구들은 대화형입니다 — `sliver-client`, `msfconsole`, `evil-winrm`, `sqlmap`, `impacket-psexec`. 이 도구들은 단순히 명령을 받고 종료하지 않습니다. 프롬프트를 띄우고 대화를 기대합니다.

대부분의 AI 에이전트는 이를 처리하지 못합니다. `subprocess.run()`으로 원샷 명령을 실행하고 끝내버립니다.

Decepticon은 자동 프롬프트 감지 기능이 있는 **영속적 tmux 세션** 내에서 모든 명령을 실행합니다:

* 도구가 대화형 프롬프트(`sliver >`, `msf6 >`, `PS C:\>`)를 표시하면, 에이전트가 이를 감지하고 후속 명령을 전송합니다
* **병렬 네임드 세션** — 여러 도구 세션이 동시에 실행됩니다
* **제어 시그널** — 대화형 프로세스 관리를 위한 `C-c`, `C-z` 지원
* **지연 감지** — 명령이 멈출 때를 인식하고 교정 조치를 취합니다

에이전트가 실제로 도구를 *조작*합니다 — 인간 오퍼레이터가 하는 것과 동일한 방식으로.

## 백그라운드 명령 & 자동 알림

일부 명령은 수 분이 걸립니다 — `nmap -p- -A`, 전체 Burp 스캔, 장시간 동작하는 퍼저. LLM이 10분간 프롬프트에서 대기하는 것은 컴퓨트와 턴의 낭비입니다. 에이전트는 대신 백그라운드로 시작하고 다른 작업으로 넘어갑니다:

```
bash(
  command="nmap -p- -A target.lan -oN scan.txt",
  run_in_background=True,
  session="scan-1",
)
→ { "status": "started", "session": "scan-1" }
```

스캔이 도는 동안 에이전트는 다른 표면을 정찰하고, 다음 목표를 계획하고, 지식 그래프를 쿼리합니다. 스캔이 끝나면 `SandboxNotificationMiddleware`가 **출력을 자동으로 캡처해 다음 추론 턴에 주입**합니다:

```
턴 N:    bash(..., run_in_background=True) → "started" 반환
턴 N+1:  다른 작업 수행
턴 N+2:  진입 시 다음을 봅니다:
        <system-reminder>
        Background command in session scan-1 finished (exit 0).
        Output (2.4K):
        Nmap scan report for target.lan ...
        </system-reminder>
```

`bash_output()` 폴링 없음. 유휴 "끝났나?" 턴 없음. 에이전트가 명령의 존재를 기억할 필요도 없습니다 — 완료가 에이전트로 옵니다. 이것은 [동적 인프라](/ko/features/dynamic-infrastructure)의 워크로드 상태 알림을 구동하는 동일한 패턴입니다.

### 출력 계층화

장시간 명령은 많은 출력을 생성합니다. 샌드박스는 에이전트 컨텍스트 윈도우를 사용 가능한 상태로 유지하기 위해 출력을 계층화합니다:

| 분량                 | 처리                                                             |
| ------------------ | -------------------------------------------------------------- |
| **≤ 15 KB**        | 알림/도구 결과에 인라인.                                                 |
| **15 KB – 100 KB** | `/workspace/.scratch/`에 기록되고 경로 + 요약만 인라인. 에이전트가 필요할 때 파일을 읽음. |
| **> 5 MB**         | 폭주 세션을 죽이고 명령을 다듬도록 에이전트에 통지(범위 축소, 출력 필터).                    |

ANSI 스트리핑 및 반복 라인 압축과 결합되어, 장시간 인게이지먼트에서도 토큰 지출이 예측 가능하게 유지됩니다.

## RoE 강제

모든 반복에서 오케스트레이터는 다음 행동이 교전 규칙의 범위 내에 있는지 검증합니다. 목표가 RoE에 정의된 범위, 시간, 또는 기법 경계를 위반할 경우, 자동으로 차단됩니다.

<Card title="스킬 시스템" icon="book-open" href="/ko/features/skill-system">
  ATT\&CK 매핑된 역량으로 에이전트를 무장시키는 프로그레시브 스킬 시스템을 알아보세요.
</Card>
