> For the complete documentation index, see [llms.txt](https://docs.panther.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.panther.com/ko/data-onboarding/supported-logs/okta.md).

# Okta 로그

## 개요

Panther는 다음을 쿼리하여 Okta 이벤트를 가져올 수 있습니다 [Okta 시스템 로그 API](https://developer.okta.com/docs/reference/api/system-log/). Panther는 1분마다 System Log API를 쿼리합니다. Panther가 API에 액세스할 수 있도록 새 API 토큰을 생성하거나 기존 토큰을 사용해야 합니다.

다음도 활성화할 수 있습니다 [Okta 사용자 및 디바이스 프로필](/ko/enrichment/okta.md).

**Identity Threat Protection (ITP) 지원**: Panther의 Okta.SystemLog 스키마에는 Identity Threat Protection이 활성화된 Okta Identity Engine용 필드가 포함됩니다. 이 필드는 봇 보호, IP 평판, 위험 점수, 사용자 행동 분석 등의 보강 데이터를 수집하며, ITP 기능이 Okta 환경에서 활성화되어 있을 때 보안 가시성을 향상시킵니다.

### 영상 안내

{% embed url="<https://youtu.be/QqoddCp1Vy8>" %}
Okta 로그를 Panther에 온보딩하는 방법을 보여주는 영상 안내
{% endembed %}

## Okta 로그를 Panther에 온보딩하는 방법

### 1단계: 새 Okta API 토큰 생성

{% hint style="info" %}
System Logs를 쿼리할 권한이 있는 Okta API 토큰을 만들려면 다음 유형의 Okta 관리자 중 하나로 로그인되어 있어야 합니다: a [슈퍼 관리자](https://help.okta.com/en-us/Content/Topics/Security/administrators-super-admin.htm), [조직 관리자](https://help.okta.com/en-us/Content/Topics/Security/administrators-org-admin.htm), 또는 [읽기 전용 관리자](https://help.okta.com/en-us/Content/Topics/Security/administrators-read-only-admin.htm).

다음을 사용하는 것을 권장합니다: [읽기 전용 관리자](https://help.okta.com/en-us/Content/Topics/Security/administrators-read-only-admin.htm) 역할, 최소 권한을 위해.

참조 [Okta 문서](https://help.okta.com/en-us/Content/Topics/Security/Administrators.htm) 관리자 역할 관리에 대한 자세한 내용은
{% endhint %}

1. Okta 관리자로 로그인합니다.
2. Okta Admin Console에서 다음으로 이동합니다 **보안** > **API.**
3. 다음으로 이동합니다: **토큰** 탭.
4. 다음을 클릭합니다: **토큰 생성.**
5. 토큰에 대한 설명적인 이름을 입력합니다. 예: `Panther API 토큰`.
6. 다음을 복사합니다 **토큰 값** 을 안전한 위치에 저장합니다. 다음 단계에서 필요합니다.
   * **참고**: Okta는 이 값을 다시 표시하지 않습니다.

### 2단계: Panther에서 새 Okta 소스 생성

1. Panther 콘솔의 왼쪽 탐색 표시줄에서 다음을 클릭합니다: **구성** > **로그 소스**.
2. 다음을 클릭합니다: **새로 만들기.**
3. “Okta”를 검색한 다음 해당 타일을 클릭합니다.
4. 슬라이드아웃 패널에서 다음을 클릭합니다 **설정 시작**.
5. 다음에서 **구성** 페이지에서 다음 필드를 입력합니다:
   * **이름**: 소스에 대한 설명적인 이름을 입력합니다. 예: `내 Okta 로그`.
   * **Okta 하위 도메인**: Okta 조직 도메인의 하위 도메인을 입력합니다. 다음을 참조할 수 있습니다 [Okta 문서](https://developer.okta.com/docs/guides/find-your-domain/main/) 에서 Okta org 도메인에 대한 자세한 내용을 확인할 수 있습니다.
   * **Okta 도메인**: Okta 도메인 드롭다운에서 적절한 도메인 이름을 선택합니다.
   * **API 토큰**: 이전 단계에서 생성한 토큰 값을 입력합니다.
6. 다음을 클릭합니다: **설정**.
7. 다음에서 **보강** 페이지에서 다음을 활성화하려면 [Okta ID 프로필](/ko/enrichment/okta.md), 오른쪽에 있는 **사용자 프로필** 및/또는 **디바이스 프로필**, 토글을 클릭합니다 `켬`.

   * 참고 [Okta 디바이스 프로필을 활성화하기 위한 전제 조건](/ko/enrichment/okta.md#prerequisite-for-okta-device-profiles).
   * 다음으로 설정된 각 토글에 대해 `켬`, 다음을 설정합니다 **새로 고침 주기(분)**. 이는 Panther가 Okta에 저장된 값으로 프로필 데이터를 업데이트하는 주기를 의미합니다.

   <figure><img src="/files/db71859e15bc3c83fe7a64c561f5c12cf65c6bb7" alt="On the Enrichment settings page of the Create Okta source flow, there are toggles for User Profiles and Device Profiles. Next to each of the toggles is a Refresh period (min) field." width="375"><figcaption></figcaption></figure>
8. 다음을 클릭합니다: **설정**. 성공 화면으로 이동합니다:\\

   <figure><img src="/files/e0820e5acb9452e294cfe3ba72060f0fbbfd3b32" alt="The success screen reads, &#x22;Everything looks good! Panther will now automatically pull &#x26; process logs from your account&#x22;" width="281"><figcaption></figcaption></figure>

   * 선택적으로 하나 이상의 [디택션 팩](https://docs.panther.com/detections/panther-managed/packs).
   * 해당 **이벤트가 처리되지 않을 때 알러트를 트리거** 설정의 기본값은 **YES**. 일정 시간이 지나 로그 소스에서 데이터 흐름이 중지되면 알림을 받게 되므로 이 기능을 활성화한 상태로 두는 것을 권장합니다. 기간은 구성 가능하며 기본값은 24시간입니다.\\\\

     <figure><img src="/files/7db146cd7acee3d0704a4a8b2157f230cfa22168" alt="The &#x22;Trigger an alert when no events are processed&#x22; toggle is set to YES. The &#x22;How long should Panther wait before it sends you an alert that no events have been processed&#x22; setting is set to 1 Day" width="320"><figcaption></figcaption></figure>

## Panther가 관리하는 탐지

참조 [Panther에서 관리하는](/ko/detections/panther-managed.md) 의 Okta 룰 [panther-analysis GitHub 저장소](https://github.com/panther-labs/panther-analysis/tree/main/rules/okta_rules). 여기에는 다음이 포함됩니다:

* [Okta 관리자 역할 할당됨](https://github.com/panther-labs/panther-analysis/blob/cd220c87982011d4ad156c7daecd2857c358d154/rules/okta_rules/okta_admin_role_assigned.py) - 사용자에게 Okta에서 관리 권한이 부여되었습니다
* [Okta API 키 생성됨](https://github.com/panther-labs/panther-analysis/blob/cd220c87982011d4ad156c7daecd2857c358d154/rules/okta_rules/okta_api_key_created.py) - 사용자가 Okta에서 API 키를 생성했습니다
* [Okta API 키 취소됨](https://github.com/panther-labs/panther-analysis/blob/cd220c87982011d4ad156c7daecd2857c358d154/rules/okta_rules/okta_api_key_revoked.py) - 사용자가 Okta에서 API 키를 취소했습니다
* [지리적으로 불가능한 Okta 로그인](https://github.com/panther-labs/panther-analysis/blob/cd220c87982011d4ad156c7daecd2857c358d154/rules/okta_rules/okta_geo_improbable_access.py) - 사용자가 매우 멀리 떨어진 두 지역에서 연속으로 로그인했습니다
* [Okta MFA 전역 비활성화됨](https://github.com/panther-labs/panther-analysis/blob/cd220c87982011d4ad156c7daecd2857c358d154/rules/okta_rules/okta_admin_disabled_mfa.py) - Admin 사용자가 Okta 전체 MFA를 비활성화했습니다
* [Okta 지원 자격 증명 재설정](https://github.com/panther-labs/panther-analysis/blob/cd220c87982011d4ad156c7daecd2857c358d154/rules/okta_rules/okta_support_reset.py) - Okta 지원에서 사용자의 비밀번호 또는 MFA를 재설정했습니다
* [Okta 지원 액세스 허용됨](https://github.com/panther-labs/panther-analysis/blob/cd220c87982011d4ad156c7daecd2857c358d154/rules/okta_rules/okta_account_support_access.py) - Okta 지원 액세스가 허용되었습니다

## 커스텀 디택션

#### 의심스러운 행동 보고 예시

사용자가 자신의 계정에서 의심스러운 행동을 보고했습니다:

```python
def 룰(event):
    if event.get('eventtype') == 'user.account.report_suspicious_activity_by_enduser':
        return True
```

#### 커스텀 디택션 패턴

아래에는 몇 가지 일반적인 함수와 예시가 있습니다 [`deep_get()`](/ko/detections/rules/python.md#deep_get) 는 Okta 로그용 커스텀 디택션을 작성할 때 사용됩니다. 다양한 이벤트 유형에 대한 자세한 내용은 Okta [문서](https://developer.okta.com/docs/reference/api/event-types/).

```python
#Okta에는 여기에 나열된 많은 이벤트 유형이 있습니다. 이러한 이벤트 유형 중 하나를 기반으로 디택션을 시작할 수 있습니다
#https://developer.okta.com/docs/reference/api/event-types/
event.get('eventtype')

#도시, 주, 위도, 경도 등에 액세스하려면 
deep_get(event, 'client', 'geographicalContext', 'city')
deep_get(event, 'client', 'geographicalContext', 'state')
deep_get(event, 'client', 'geographicalContext', 'country')
deep_get(event, 'client', 'geographicalContext', 'geolocation', 'lon')
deep_get(event, 'client', 'geographicalContext', 'geolocation', 'lat')

#이벤트 소스에 대한 세부 정보
deep_get(event, 'client' 'device')
deep_get(event, 'client', 'ipAddress')
deep_get(event, 'client', 'userAgent')


deep_get(event, 'actor', 'alternateId')
deep_get(event, 'actor', 'displayName')

## Okta와 함께 유용할 수 있는 전역 헬퍼

# panther_base_helpers 내
def okta_알러트_context(event: dict):
    """Okta 알러트 자동화를 위한 공통 컨텍스트를 반환합니다"""
    return {
        "ips": event.get("p_any_ip_addresses", []),
        "actor": event.get("actor", ""),
        "target": event.get("target", ""),
        "client": event.get("client", ""),
    }
    
# panther_base_helpers 내
def is_ip_in_network(ip_addr, networks):
    """주어진 IP가 IP 범위 목록 내에 있는지 확인합니다"""
    return any(ip_address(ip_addr) in ip_network(network) for network in networks)
```

## 지원되는 로그 유형

### Okta.SystemLog

Okta System Log는 조직과 관련된 시스템 이벤트를 기록하여 플랫폼 활동을 이해하고 문제를 진단하는 데 사용할 수 있는 감사 추적을 제공합니다.

참조: [System Log API에 대한 Okta 문서.](https://developer.okta.com/docs/reference/api/system-log/)

```yaml
schema: Okta.SystemLog
설명: |
    Okta System Log는 조직과 관련된 시스템 이벤트를 기록하여 플랫폼 활동을 이해하고 문제를 진단하는 데 사용할 수 있는 감사 추적을 제공합니다.
referenceURL: https://developer.okta.com/docs/reference/api/system-log/
fields:
    - 이름: uuid
      required: true
      설명: 개별 이벤트의 고유 식별자
      type: string
    - 이름: published
      required: true
      설명: 이벤트가 게시된 타임스탬프
      type: timestamp
      timeFormat: rfc3339
      isEventTime: true
    - name: eventType
      required: true
      설명: 게시된 이벤트의 유형
      type: string
    - 이름: version
      required: true
      설명: 버전 지정 표시자
      type: string
    - 이름: severity
      required: true
      설명: '이벤트의 심각도를 나타냅니다: DEBUG, INFO, WARN, ERROR'
      type: string
    - 이름: legacyEventType
      설명: 관련 이벤트 API 작업 objectType 속성 값
      type: string
    - 이름: displayMessage
      설명: 이벤트의 표시 메시지
      type: string
    - 이름: actor
      설명: 작업을 수행한 엔터티를 설명합니다
      type: object
      fields:
        - 이름: id
          required: true
          설명: actor의 ID
          type: string
        - 이름: type
          required: true
          설명: actor의 유형
          type: string
        - 이름: alternateId
          설명: actor의 대체 ID
          type: string
          표시자:
            - 이메일
        - 이름: displayName
          설명: actor의 표시 이름
          type: string
        - 이름: details
          설명: actor에 대한 세부 정보
          유형: json
        - 이름: detailEntry
          설명: 세부 항목
          유형: json
    - 이름: client
      설명: 작업을 요청한 클라이언트
      type: object
      fields:
        - 이름: id
          설명: OAuth 요청의 경우 요청을 보내는 OAuth 클라이언트의 ID입니다. SSWS 토큰 요청의 경우 요청을 보내는 에이전트의 ID입니다.
          type: string
        - 이름: userAgent
          설명: actor가 작업을 수행하는 데 사용한 사용자 에이전트
          type: object
          fields:
            - 이름: browser
              설명: 클라이언트가 웹 브라우저인 경우 이 필드는 웹 브라우저 유형을 식별합니다(예: CHROME, FIREFOX)
              type: string
            - 이름: os
              설명: 클라이언트가 실행되는 운영 체제(예: Windows 10)
              type: string
            - 이름: rawUserAgent
              설명: HTTP/1.1 Semantics and Content의 5.5.3절 형식에 따라 구성된 사용자 에이전트의 원시 문자열 표현입니다. 브라우저 및 OS 필드 모두 이 필드에서 파생될 수 있습니다.
              type: string
        - 이름: geographicalContext
          설명: 클라이언트가 요청을 보낸 물리적 위치
          type: object
          fields:
            - 이름: geolocation
              설명: 지리 좌표(위도, 경도)를 포함합니다
              type: object
              fields:
                - 이름: lat
                  설명: 위도
                  type: float
                - 이름: lon
                  설명: 경도
                  type: float
            - name: city
              설명: 가능하면 지리 좌표가 포함된 지역을 아우르는 도시(예: Seattle, San Francisco)
              type: string
            - 이름: state
              설명: 지리 좌표가 포함된 지역을 아우르는 주/도 전체 이름(예: Montana, Incheon)
              type: string
            - name: country
              설명: 지리 좌표가 포함된 지역을 아우르는 국가의 전체 이름(예: France, Uganda)
              type: string
            - 이름: postalCode
              설명: 지리 좌표가 포함된 지역을 아우르는 국가의 전체 이름(예: France, Uganda)
              type: string
        - name: zone
          설명: 클라이언트 위치가 매핑되는 Zone의 이름
          type: string
        - 이름: ipAddress
          설명: 클라이언트가 요청을 보낸 IP 주소
          type: string
          표시자:
            - ip
        - 이름: device
          설명: 클라이언트가 사용한 디바이스 유형(예: Computer)
          type: string
    - 이름: request
      설명: 작업을 시작한 요청
      type: object
      fields:
        - 이름: ipChain
          설명: 들어오는 요청이 프록시를 거치는 경우, 해당 프록시의 IP 주소가 여기 (clientIp, proxy1, proxy2, ...) 형식으로 저장됩니다.
          type: array
          element:
            type: object
            fields:
                - 이름: ip
                  설명: IP 주소
                  type: string
                  표시자:
                    - ip
                - 이름: geographicalContext
                  설명: IP 주소의 지리적 컨텍스트
                  type: object
                  fields:
                    - 이름: geolocation
                      설명: 지리 좌표(위도, 경도)를 포함합니다
                      type: object
                      fields:
                        - 이름: lat
                          설명: 위도
                          type: float
                        - 이름: lon
                          설명: 경도
                          type: float
                    - name: city
                      설명: 가능하면 지리 좌표가 포함된 지역을 아우르는 도시(예: Seattle, San Francisco)
                      type: string
                    - 이름: state
                      설명: 지리 좌표가 포함된 지역을 아우르는 주/도 전체 이름(예: Montana, Incheon)
                      type: string
                    - name: country
                      설명: 지리 좌표가 포함된 지역을 아우르는 국가의 전체 이름(예: France, Uganda)
                      type: string
                    - 이름: postalCode
                      설명: 지리 좌표가 포함된 지역을 아우르는 국가의 전체 이름(예: France, Uganda)
                      type: string
                - 이름: version
                  설명: IP 버전
                  type: string
                - 이름: source
                  설명: 소스에 대한 세부 정보
                  type: string
                - 이름: ipDetails
                  설명: 관련 IP 주소에 대한 세부 정보
                  type: object
                  fields:
                    - 이름: asNumber
                      설명: IP 주소와 연결된 자율 시스템 번호
                      type: bigint
                    - 이름: asOrg
                      설명: 자율 시스템 번호(ASN)와 연결된 이름
                      type: string
                    - 이름: domain
                      설명: IP 주소와 연결된 도메인 이름
                      type: string
                      표시자:
                        - domain
                    - 이름: ipServiceCategories
                      설명: IP 주소와 연결된 IP 서비스 범주
                      type: array
                      element:
                        type: string
                    - 이름: isp
                      설명: IP 주소와 연결된 인터넷 서비스 제공업체
                      type: string
    - 이름: outcome
      설명: 작업의 결과
      type: object
      fields:
        - 이름: result
          설명: '작업 결과: SUCCESS, FAILURE, SKIPPED, ALLOW, DENY, CHALLENGE, UNKNOWN'
          type: string
        - 이름: reason
          설명: 결과의 이유, 예: INVALID_CREDENTIALS
          type: string
    - 이름: target
      설명: 작업의 대상이 0개 이상
      type: array
      element:
        type: object
        fields:
            - 이름: id
              required: true
              설명: 대상의 ID
              type: string
            - 이름: type
              required: true
              설명: 대상의 유형
              type: string
            - 이름: alternateId
              설명: 대상의 대체 ID
              type: string
            - 이름: displayName
              설명: 대상의 표시 이름
              type: string
            - 이름: details
              설명: 대상에 대한 세부 정보
              유형: json
            - 이름: detailEntry
              설명: 세부 항목
              유형: json
            - 이름: changeDetails
              설명: 변경에 대한 세부 정보
              유형: json
    - 이름: transaction
      설명: 작업의 트랜잭션 세부 정보
      type: object
      fields:
        - 이름: id
          설명: 이 트랜잭션의 고유 식별자입니다.
          type: string
        - 이름: type
          설명: 트랜잭션의 종류를 설명합니다. WEB은 웹 요청을 의미합니다. JOB은 비동기 작업을 의미합니다.
          type: string
        - 이름: detail
          설명: 이 트랜잭션의 세부 정보입니다.
          유형: json
    - 이름: debugContext
      설명: 작업의 디버그 요청 데이터
      type: object
      fields:
        - 이름: debugData
          설명: 이벤트 유형에 따라 달라지는 기타 정보를 포함하는 동적 필드입니다.
          유형: json
    - 이름: authenticationContext
      설명: 작업의 인증 데이터
      type: object
      fields:
        - 이름: authenticationProvider
          설명: 제공된 자격 증명을 사용하여 actor의 신원을 증명하는 시스템
          type: string
        - 이름: authenticationStep
          설명: 인증 파이프라인에서 0부터 시작하는 단계 번호입니다. 현재는 사용되지 않으며 항상 0으로 설정됩니다.
          유형: int
        - 이름: credentialProvider
          설명: 자격 증명 공급자는 신원과 그에 연결된 자격 증명을 관리하는 소프트웨어 서비스입니다. 자격 증명 공급자가 제공한 자격 증명을 통해 인증이 이루어지면 해당 자격 증명 공급자가 여기에 기록됩니다.
          type: string
        - 이름: credentialType
          설명: 자격 증명에 사용된 기본 기술/방식
          type: string
        - 이름: rootSessionId
          type: string
        - 이름: issuer
          설명: 자격 증명을 생성하고 발급한 특정 소프트웨어 엔터티입니다.
          type: object
          fields:
            - 이름: id
              설명: 인증 유형에 따라 달라집니다. 인증이 SAML 2.0인 경우 id는 SAML assertion의 issuer입니다. 소셜 로그인인 경우 id는 토큰의 issuer입니다.
              type: string
            - 이름: type
              설명: SAML assertion 또는 토큰의 issuer 및 source에 대한 정보입니다.
              type: string
        - 이름: externalSessionId
          설명: actor의 세션 ID를 대리하는 값
          type: string
        - 이름: interface
          설명: actor가 인증에 사용하는 타사 사용자 인터페이스(있는 경우)
          type: string
        - 이름: authenticatorProvider
          설명: '더 이상 사용되지 않음: 이 필드는 이전 버전과의 호환성을 위해 유지됩니다.'
          type: string
        - 이름: authenticatorContext
          설명: 인증 요청을 충족하는 데 사용된 인증기의 바인딩 컨텍스트입니다(예: Platform SSO/SSO 확장 바인딩).
          type: object
          fields:
            - 이름: applicationVersion
              설명: 인증기 바인딩을 요청한 애플리케이션의 버전
              type: string
            - 이름: binaryIdentifier
              설명: 인증기 바인딩을 요청한 바이너리의 식별자
              type: string
            - 이름: binaryPath
              설명: 인증기 바인딩을 요청한 바이너리의 파일 시스템 경로
              type: string
            - 이름: bindingMethod
              설명: 인증기를 요청에 바인딩하는 데 사용된 방법입니다(예: APPLE_SSO_EXTENSION 또는 LOOPBACK)
              type: string
            - 이름: operator
              설명: 서비스 운영자의 이름
              type: string
    - 이름: securityContext
      설명: 작업의 보안 데이터
      type: object
      fields:
        - 이름: asNumber
          설명: 이벤트 요청의 소스가 된 자율 시스템과 연결된 자율 시스템 번호
          type: bigint
        - 이름: asOrg
          설명: 이벤트 요청의 소스가 된 자율 시스템과 연결된 조직
          type: string
        - 이름: isp
          설명: 이벤트 요청을 전송하는 데 사용된 인터넷 서비스 제공업체
          type: string
        - 이름: domain
          설명: 인바운드 이벤트 요청의 IP 주소와 연결된 도메인 이름
          type: string
          표시자:
            - domain
        - 이름: isProxy
          설명: 이벤트 요청이 알려진 프록시에서 온 것인지 지정합니다
          유형: boolean
        - 이름: botProtection
          설명: 이벤트와 연결된 봇 보호 디택션의 결과
          type: object
          fields:
            - 이름: level
              설명: 봇 보호 구성 대상과 연결된 봇 디택션 수준
              type: string
        - 이름: ipDetails
          설명: 관련 IP 주소에 대한 세부 정보
          type: object
          fields:
            - 이름: asNumber
              설명: IP 주소와 연결된 자율 시스템 번호
              type: bigint
            - 이름: asOrg
              설명: 자율 시스템 번호(ASN)와 연결된 이름
              type: string
            - 이름: domain
              설명: IP 주소와 연결된 도메인 이름
              type: string
              표시자:
                - domain
            - 이름: ipServiceCategories
              설명: IP 주소와 연결된 IP 서비스 범주
              type: array
              element:
                type: string
            - 이름: isp
              설명: IP 주소와 연결된 인터넷 서비스 제공업체
              type: string
        - 이름: risk
          설명: 이벤트와 연결된 위험
          type: object
          fields:
            - 이름: 디택션명
              설명: 위험을 식별한 디택션 메커니즘의 이름
              type: string
            - 이름: issuer
              설명: 관련 위험을 발급한 엔터티
              type: string
            - 이름: level
              설명: 요청과 연결된 위험 수준
              type: string
            - 이름: previousLevel
              설명: 사용자와 연결된 이전 위험 수준(있는 경우)
              type: string
        - 이름: userBehaviors
          설명: 이벤트와 연결된 사용자 행동 디택션 모델의 결과
          type: array
          element:
            type: object
            fields:
              - 이름: id
                설명: 사용자 행동 디택션 모델의 고유 식별자
                type: string
              - 이름: name
                설명: 관리자가 구성한 사용자 행동 디택션 모델의 이름
                type: string
              - 이름: result
                설명: 사용자 행동 분석의 결과
                type: string
```


---

# 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:

```
GET https://docs.panther.com/ko/data-onboarding/supported-logs/okta.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
