InfoGrab Docs

에이전트 스킬

요약

GitLab Duo는 에이전트에 새로운 기능과 전문 지식을 부여하기 위한 새로운 표준인 에이전트 스킬 명세를 지원합니다. 에이전트 스킬을 사용하면 특정 프레임워크에서 테스트를 작성하는 것과 같이 특정 작업에 맞는 전문 지식과 워크플로를 에이전트에 제공할 수 있습니다.

히스토리
  • GitLab 18.10에서 프로젝트 수준의 에이전트 스킬 지원이 추가됨.
  • GitLab for VS Code 6.71.4에서 도입됨.
  • GitLab Duo CLI 8.73.0에서 도입됨.
  • GitLab 19.0에서 사용자 수준의 에이전트 스킬 지원이 도입됨.
  • GitLab Duo CLI 8.83.0에서 실험으로 도입됨.

GitLab Duo는 에이전트에 새로운 기능과 전문 지식을 부여하기 위한 새로운 표준인 에이전트 스킬 명세를 지원합니다.

에이전트 스킬을 사용하면 특정 프레임워크에서 테스트를 작성하는 것과 같이 특정 작업에 맞는 전문 지식과 워크플로를 에이전트에 제공할 수 있습니다. 에이전트는 작업을 수행하면서 관련 스킬을 자동으로 로드하고 작업 중 해당 정보를 사용합니다.

SKILL.md 파일을 지정하면 스킬은 GitLab Duo 에이전트 플랫폼과 명세를 지원하는 다른 AI 도구에서 사용 가능합니다.

GitLab Duo에서 사용할 에이전트 스킬 지정:

  • 로컬 환경의 GitLab Duo Chat.
  • Code Review 플로우를 제외한 기반 흐름 및 사용자 정의 흐름.

사용자 수준 스킬은 GitLab Duo CLI에서만 사용 가능합니다.

GitLab Duo가 에이전트 스킬을 사용하는 방법#

에이전트가 작업을 시작하면 GitLab Duo는 사용 가능한 모든 스킬의 메타데이터를 에이전트의 컨텍스트에 추가합니다. 에이전트가 스킬의 설명과 일치하는 작업을 만나면 자동으로 스킬을 로드하고 작업을 완료하는 데 사용합니다.

이름, 파일 경로 또는 슬래시 명령어로 특정 스킬을 사용하도록 GitLab Duo에 수동으로 지시할 수도 있습니다.

GitLab Duo는 다음 유형의 스킬을 지원합니다:

수준 GitLab UI 편집기 확장 GitLab Duo CLI
사용자 수준: 모든 프로젝트에 적용 아니요 아니요
프로젝트 수준: 특정 프로젝트에만 적용 1

각주:

  1. GitLab UI에서는 Code Review를 제외한 기반 흐름 및 사용자 정의 흐름만 프로젝트 수준 스킬을 지원합니다. GitLab UI의 GitLab Duo Chat은 스킬을 지원하지 않습니다.

GitLab Duo에서 에이전트 스킬 사용#

Note

기존 대화 및 흐름은 새 스킬이나 업데이트된 스킬에 자동으로 접근할 수 없습니다. 새 대화를 시작하거나 이름이나 상대 경로로 스킬을 로드하도록 GitLab Duo에 요청하세요.

필수 요건#

  • 에이전트 플랫폼 필수 요건을 충족합니다.

  • 로컬 환경의 GitLab Duo Chat의 경우 다음 중 하나를 설치하고 구성합니다:

  • 사용자 정의 흐름의 프로젝트 수준 스킬의 경우 실행기에서 전달된 workspace_agent_skills 컨텍스트에 접근하도록 흐름의 구성 파일을 업데이트합니다:

    components:
    - name: "my_agent"
       type: AgentComponent
       prompt_id: "my_prompt"
       inputs:
       - from: "context:inputs.workspace_agent_skills"
          as: "workspace_agent_skills"
        optional: true
    

    optional: true를 설정하면 에이전트 스킬이 없는 경우를 흐름이 적절하게 처리합니다. 에이전트는 추가 컨텍스트 여부에 관계없이 작동합니다.

스킬 만들기#

프로젝트 수준 또는 사용자 수준에서 스킬을 만들 수 있습니다.

IDE에서 멀티 루트 워크스페이스를 사용하는 경우 워크스페이스의 각 프로젝트에 대한 프로젝트 수준 스킬을 만들 수 있습니다.

사용자 수준 스킬과 프로젝트 수준 스킬이 동일한 이름을 공유하는 경우, 프로젝트 수준 스킬이 우선합니다. 이를 통해 사용자 수준 스킬을 프로젝트별 버전으로 재정의할 수 있습니다.

멀티 루트 워크스페이스에서 여러 프로젝트가 동일한 이름의 스킬을 정의하는 경우, GitLab Duo는 처음 발견한 스킬을 로드합니다.

프로젝트 수준 스킬 만들기#

프로젝트 수준 스킬은 특정 프로젝트에 적용됩니다. 프로젝트의 skills/<skill-name>/ 디렉토리에 있는 SKILL.md 파일에 정의합니다.

프로젝트 수준 스킬을 만들려면:

  1. 프로젝트의 루트에 skills 디렉토리를 만듭니다.

  2. 새 디렉토리에서 특정 스킬에 대한 다른 디렉토리를 만듭니다. 스킬 이름을 디렉토리 이름으로 사용합니다.

  3. SKILL.md 파일을 만들고 다음 형식을 사용하여 지침을 포함합니다. namedescription YAML 프런트 매터 필드는 필수입니다.

    ---
    name: <skill_name>
    description: <skill_description>
    ---
    
    <your_instructions_and_context_for_the_skill>
    

    예를 들어 skills/cosign-blob/SKILL.md에서 cosign을 사용하여 아티팩트에 서명하는 스킬:

    ---
    name: cosign-blob
    description: Sign artifacts using cosign with local keypairs and Sigstore v3 bundles. Integrate with 1Password for secure key management.
    ---
    
    ## Cosign Blob Signing
    
    Sign artifacts locally using cosign with Sigstore v3 bundles for artifact verification and integrity.
    
    ### Generate a Local Keypair
    
    Generate a new cosign keypair:
    
    ```shell
    cosign generate-key-pair
    ```
    
    This creates two files:
    - `cosign.key` - Private key (encrypted)
    - `cosign.pub` - Public key
    
    Store the private key securely, preferably in a password manager like 1Password.
    
    ### Store Private Key in 1Password
    
    1. Create a new login item in 1Password with:
      - Title: "Duo Skills cosign"
      - Username: (optional)
      - Password: Your cosign private key password
    
    2. Save the secret reference path (for example, `op://Employee/Duo Skills cosign/password`)
    
    ### Sign Artifacts with Cosign
    
    Sign a file and generate a Sigstore v3 bundle:
    
    ```shell
    COSIGN_PASSWORD=$(op read "op://Employee/Duo Skills cosign/password") \
      timeout -v 4 cosign sign-blob \
        --key ~/.gitlab/duo/cosign.key \
        --bundle <filename>.bundle \
        --new-bundle-format \
        --yes \
        <filename>
    ```
    
    Replace:
    - `<filename>` with the file to sign (for example, `SKILL.md`)
    - The bundle output will be saved as `<filename>.bundle`
    
    ### Key Points
    
    - Use timeout to fail-fast and report the error back to the user.
    - Use `--bundle` with `$file.bundle` format for Sigstore v3 bundles
    - Use `--yes` to skip interactive prompts
    - Use `--new-bundle-format` to output a v3 Sigstore bundle rather than the legacy format
    - Set `COSIGN_PASSWORD` environment variable to avoid password prompts
    - Integrate with 1Password CLI for secure credential management
    - The bundle file contains the signature and can be verified later
    
  4. 파일을 저장합니다.

  5. 새 대화 또는 흐름을 시작합니다. SKILL.md 파일을 변경하거나 추가할 때마다 에이전트의 컨텍스트 혼선을 방지하기 위해 이 작업을 수행해야 합니다.

사용자 수준 스킬 만들기#

사용자 수준 스킬은 모든 프로젝트에 적용됩니다. 홈 디렉토리의 skills/<skill-name>/ 디렉토리에 있는 SKILL.md 파일에 정의합니다.

사용자 수준 스킬은 GitLab Duo CLI에서만 사용 가능합니다.

사용자 수준 스킬을 위한 디렉토리 만들기#

다음 위치 중 하나에 스킬 디렉토리를 만들 수 있습니다:

  • 다른 GitLab Duo 사용자 정의 파일과 스킬을 함께 유지하려면:

    • Linux 또는 macOS: ~/.gitlab/duo/skills/ 디렉토리 만들기.
    • Windows: %APPDATA%\GitLab\duo\skills\ 디렉토리 만들기.
    • GLAB_CONFIG_DIR 또는 XDG_CONFIG_HOME을 설정한 경우: $GLAB_CONFIG_DIR/skills/ 또는 $XDG_CONFIG_HOME/gitlab/duo/skills/ 사용. 둘 다 설정된 경우 GLAB_CONFIG_DIR이 우선합니다.
  • 에이전트 스킬 명세를 지원하는 다른 AI 도구와 스킬을 공유하려면:

    • Linux 또는 macOS: ~/.agents/skills/ 디렉토리 만들기.
    • Windows: %USERPROFILE%\.agents\skills\ 디렉토리 만들기.

슬래시 명령어로 스킬 노출#

스킬을 사용자 정의 슬래시 명령어로 활성화하려면 SKILL.md 파일의 YAML 프런트 매터 메타데이터에 slash-command: enabled를 추가합니다:

---
name: <skill_name>
description: <skill_description>
metadata:
  slash-command: enabled
---

메타데이터를 추가한 후 새 세션에서 /<skill_name>을 사용하여 GitLab Duo에 스킬을 사용하도록 지시할 수 있습니다. 예를 들어 /fix-bugs.

수동으로 스킬 사용#

특정 스킬을 사용하도록 GitLab Duo에 지시하려면 다음 방법 중 하나를 사용합니다:

  • 프롬프트에서 이름 또는 파일 경로로 스킬을 사용하도록 GitLab Duo에 지시합니다.
  • 스킬의 슬래시 명령어로 프롬프트를 시작합니다.

현재 세션의 컨텍스트에서 사용 가능한 모든 스킬을 나열하려면 /skills를 사용합니다.

관련 주제#

에이전트 스킬

Tier: Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

GitLab Duo는 에이전트에 새로운 기능과 전문 지식을 부여하기 위한 새로운 표준인 에이전트 스킬 명세를 지원합니다. 에이전트 스킬을 사용하면 특정 프레임워크에서 테스트를 작성하는 것과 같이 특정 작업에 맞는 전문 지식과 워크플로를 에이전트에 제공할 수 있습니다.

히스토리
  • GitLab 18.10에서 프로젝트 수준의 에이전트 스킬 지원이 추가됨.
  • GitLab for VS Code 6.71.4에서 도입됨.
  • GitLab Duo CLI 8.73.0에서 도입됨.
  • GitLab 19.0에서 사용자 수준의 에이전트 스킬 지원이 도입됨.
  • GitLab Duo CLI 8.83.0에서 실험으로 도입됨.

GitLab Duo는 에이전트에 새로운 기능과 전문 지식을 부여하기 위한 새로운 표준인 에이전트 스킬 명세를 지원합니다.

에이전트 스킬을 사용하면 특정 프레임워크에서 테스트를 작성하는 것과 같이 특정 작업에 맞는 전문 지식과 워크플로를 에이전트에 제공할 수 있습니다. 에이전트는 작업을 수행하면서 관련 스킬을 자동으로 로드하고 작업 중 해당 정보를 사용합니다.

SKILL.md 파일을 지정하면 스킬은 GitLab Duo 에이전트 플랫폼과 명세를 지원하는 다른 AI 도구에서 사용 가능합니다.

GitLab Duo에서 사용할 에이전트 스킬 지정:

  • 로컬 환경의 GitLab Duo Chat.
  • Code Review 플로우를 제외한 기반 흐름 및 사용자 정의 흐름.

사용자 수준 스킬은 GitLab Duo CLI에서만 사용 가능합니다.

GitLab Duo가 에이전트 스킬을 사용하는 방법#

에이전트가 작업을 시작하면 GitLab Duo는 사용 가능한 모든 스킬의 메타데이터를 에이전트의 컨텍스트에 추가합니다. 에이전트가 스킬의 설명과 일치하는 작업을 만나면 자동으로 스킬을 로드하고 작업을 완료하는 데 사용합니다.

이름, 파일 경로 또는 슬래시 명령어로 특정 스킬을 사용하도록 GitLab Duo에 수동으로 지시할 수도 있습니다.

GitLab Duo는 다음 유형의 스킬을 지원합니다:

수준 GitLab UI 편집기 확장 GitLab Duo CLI
사용자 수준: 모든 프로젝트에 적용 아니요 아니요
프로젝트 수준: 특정 프로젝트에만 적용 1

각주:

  1. GitLab UI에서는 Code Review를 제외한 기반 흐름 및 사용자 정의 흐름만 프로젝트 수준 스킬을 지원합니다. GitLab UI의 GitLab Duo Chat은 스킬을 지원하지 않습니다.

GitLab Duo에서 에이전트 스킬 사용#

Note

기존 대화 및 흐름은 새 스킬이나 업데이트된 스킬에 자동으로 접근할 수 없습니다. 새 대화를 시작하거나 이름이나 상대 경로로 스킬을 로드하도록 GitLab Duo에 요청하세요.

필수 요건#

  • 에이전트 플랫폼 필수 요건을 충족합니다.

  • 로컬 환경의 GitLab Duo Chat의 경우 다음 중 하나를 설치하고 구성합니다:

  • 사용자 정의 흐름의 프로젝트 수준 스킬의 경우 실행기에서 전달된 workspace_agent_skills 컨텍스트에 접근하도록 흐름의 구성 파일을 업데이트합니다:

    components:
    - name: "my_agent"
       type: AgentComponent
       prompt_id: "my_prompt"
       inputs:
       - from: "context:inputs.workspace_agent_skills"
          as: "workspace_agent_skills"
        optional: true
    

    optional: true를 설정하면 에이전트 스킬이 없는 경우를 흐름이 적절하게 처리합니다. 에이전트는 추가 컨텍스트 여부에 관계없이 작동합니다.

스킬 만들기#

프로젝트 수준 또는 사용자 수준에서 스킬을 만들 수 있습니다.

IDE에서 멀티 루트 워크스페이스를 사용하는 경우 워크스페이스의 각 프로젝트에 대한 프로젝트 수준 스킬을 만들 수 있습니다.

사용자 수준 스킬과 프로젝트 수준 스킬이 동일한 이름을 공유하는 경우, 프로젝트 수준 스킬이 우선합니다. 이를 통해 사용자 수준 스킬을 프로젝트별 버전으로 재정의할 수 있습니다.

멀티 루트 워크스페이스에서 여러 프로젝트가 동일한 이름의 스킬을 정의하는 경우, GitLab Duo는 처음 발견한 스킬을 로드합니다.

프로젝트 수준 스킬 만들기#

프로젝트 수준 스킬은 특정 프로젝트에 적용됩니다. 프로젝트의 skills/<skill-name>/ 디렉토리에 있는 SKILL.md 파일에 정의합니다.

프로젝트 수준 스킬을 만들려면:

  1. 프로젝트의 루트에 skills 디렉토리를 만듭니다.

  2. 새 디렉토리에서 특정 스킬에 대한 다른 디렉토리를 만듭니다. 스킬 이름을 디렉토리 이름으로 사용합니다.

  3. SKILL.md 파일을 만들고 다음 형식을 사용하여 지침을 포함합니다. namedescription YAML 프런트 매터 필드는 필수입니다.

    ---
    name: <skill_name>
    description: <skill_description>
    ---
    
    <your_instructions_and_context_for_the_skill>
    

    예를 들어 skills/cosign-blob/SKILL.md에서 cosign을 사용하여 아티팩트에 서명하는 스킬:

    ---
    name: cosign-blob
    description: Sign artifacts using cosign with local keypairs and Sigstore v3 bundles. Integrate with 1Password for secure key management.
    ---
    
    ## Cosign Blob Signing
    
    Sign artifacts locally using cosign with Sigstore v3 bundles for artifact verification and integrity.
    
    ### Generate a Local Keypair
    
    Generate a new cosign keypair:
    
    ```shell
    cosign generate-key-pair
    ```
    
    This creates two files:
    - `cosign.key` - Private key (encrypted)
    - `cosign.pub` - Public key
    
    Store the private key securely, preferably in a password manager like 1Password.
    
    ### Store Private Key in 1Password
    
    1. Create a new login item in 1Password with:
      - Title: "Duo Skills cosign"
      - Username: (optional)
      - Password: Your cosign private key password
    
    2. Save the secret reference path (for example, `op://Employee/Duo Skills cosign/password`)
    
    ### Sign Artifacts with Cosign
    
    Sign a file and generate a Sigstore v3 bundle:
    
    ```shell
    COSIGN_PASSWORD=$(op read "op://Employee/Duo Skills cosign/password") \
      timeout -v 4 cosign sign-blob \
        --key ~/.gitlab/duo/cosign.key \
        --bundle <filename>.bundle \
        --new-bundle-format \
        --yes \
        <filename>
    ```
    
    Replace:
    - `<filename>` with the file to sign (for example, `SKILL.md`)
    - The bundle output will be saved as `<filename>.bundle`
    
    ### Key Points
    
    - Use timeout to fail-fast and report the error back to the user.
    - Use `--bundle` with `$file.bundle` format for Sigstore v3 bundles
    - Use `--yes` to skip interactive prompts
    - Use `--new-bundle-format` to output a v3 Sigstore bundle rather than the legacy format
    - Set `COSIGN_PASSWORD` environment variable to avoid password prompts
    - Integrate with 1Password CLI for secure credential management
    - The bundle file contains the signature and can be verified later
    
  4. 파일을 저장합니다.

  5. 새 대화 또는 흐름을 시작합니다. SKILL.md 파일을 변경하거나 추가할 때마다 에이전트의 컨텍스트 혼선을 방지하기 위해 이 작업을 수행해야 합니다.

사용자 수준 스킬 만들기#

사용자 수준 스킬은 모든 프로젝트에 적용됩니다. 홈 디렉토리의 skills/<skill-name>/ 디렉토리에 있는 SKILL.md 파일에 정의합니다.

사용자 수준 스킬은 GitLab Duo CLI에서만 사용 가능합니다.

사용자 수준 스킬을 위한 디렉토리 만들기#

다음 위치 중 하나에 스킬 디렉토리를 만들 수 있습니다:

  • 다른 GitLab Duo 사용자 정의 파일과 스킬을 함께 유지하려면:

    • Linux 또는 macOS: ~/.gitlab/duo/skills/ 디렉토리 만들기.
    • Windows: %APPDATA%\GitLab\duo\skills\ 디렉토리 만들기.
    • GLAB_CONFIG_DIR 또는 XDG_CONFIG_HOME을 설정한 경우: $GLAB_CONFIG_DIR/skills/ 또는 $XDG_CONFIG_HOME/gitlab/duo/skills/ 사용. 둘 다 설정된 경우 GLAB_CONFIG_DIR이 우선합니다.
  • 에이전트 스킬 명세를 지원하는 다른 AI 도구와 스킬을 공유하려면:

    • Linux 또는 macOS: ~/.agents/skills/ 디렉토리 만들기.
    • Windows: %USERPROFILE%\.agents\skills\ 디렉토리 만들기.

슬래시 명령어로 스킬 노출#

스킬을 사용자 정의 슬래시 명령어로 활성화하려면 SKILL.md 파일의 YAML 프런트 매터 메타데이터에 slash-command: enabled를 추가합니다:

---
name: <skill_name>
description: <skill_description>
metadata:
  slash-command: enabled
---

메타데이터를 추가한 후 새 세션에서 /<skill_name>을 사용하여 GitLab Duo에 스킬을 사용하도록 지시할 수 있습니다. 예를 들어 /fix-bugs.

수동으로 스킬 사용#

특정 스킬을 사용하도록 GitLab Duo에 지시하려면 다음 방법 중 하나를 사용합니다:

  • 프롬프트에서 이름 또는 파일 경로로 스킬을 사용하도록 GitLab Duo에 지시합니다.
  • 스킬의 슬래시 명령어로 프롬프트를 시작합니다.

현재 세션의 컨텍스트에서 사용 가능한 모든 스킬을 나열하려면 /skills를 사용합니다.

관련 주제#