InfoGrab DocsInfoGrab Docs

커스텀 플로 YAML 스키마

요약

- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated 커스텀 플로는 flow registry v1 사양 구문을 사용합니다. v1 사양의 일부 필드는 커스텀 플로에서 제한됩니다.


커스텀 플로 YAML 스키마#

  - 
  Tier: [Free](/19.3/subscriptions/gitlab_credits/#for-the-free-tier), Premium, Ultimate

- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated

History

커스텀 플로는 flow registry v1 사양 구문을 사용합니다. v1 사양은 version, environment, components, prompts, routers, flow 등의 필드를 포함한 전체 YAML 구조를 정의합니다.

v1 사양의 일부 필드는 커스텀 플로에서 제한됩니다. 자세한 내용은 제한된 필드를 참조하세요.

YAML 구성에는 최대 크기도 있습니다. 자세한 내용은 구성 크기 제한을 참조하세요.

트리거 유형별 goal 값#

커스텀 플로를 설계할 때 goal 값은 플로를 시작하는 트리거 유형에 따라 달라집니다. 플로에는 여러 트리거 유형을 설정할 수 있으며, 각 트리거 유형은 context:goal로 서로 다른 값을 전달합니다. 플로는 설정한 각 트리거 유형에 맞는 goal 형식을 처리해야 합니다.

트리거 유형에 대한 자세한 내용은 트리거를 참조하세요.

컴포넌트는 inputs 필드를 통해 goal에 접근합니다:

components:
  - name: "my_agent"
    type: AgentComponent
    prompt_id: "my_prompt"
    inputs:
      - from: "context:project_id"
        as: "project_id"
      - "context:goal"

Mention 이벤트#

사용자가 댓글에서 플로 서비스 계정을 멘션하면, 전체 댓글 텍스트와 리소스 컨텍스트가 goal로 전달됩니다.

goal의 형식은 다음과 같습니다:

Input: <comment_text>
Context: {<resource_type> IID: <iid>}

예를 들어, 사용자가 이슈 #2에 @ai-my-flow Can you work on this?라고 작성하면 goal은 다음과 같습니다:

Input: @ai-my-flow Can you work on this?
Context: {Issue IID: 2}

Assign 및 Assign reviewer 이벤트#

플로 서비스 계정이 이슈 또는 머지 리퀘스트에 담당자로 지정되거나 리뷰어로 지정되면, 해당 리소스의 IID가 goal로 전달됩니다.

예를 들어, 플로 서비스 계정이 머지 리퀘스트 !10의 리뷰어로 지정되면 context:goal 값은 10이 됩니다.

IID와 context:project_id를 함께 사용하여 리소스를 읽을 수 있습니다:

components:
  - name: "review_mr"
    type: AgentComponent
    prompt_id: "review_mr_prompt"
    inputs:
      - from: "context:project_id"
        as: "project_id"
      - from: "context:goal"
        as: "mr_iid"

Pipeline 이벤트#

파이프라인 이벤트가 플로를 트리거하면, 전체 파이프라인 이벤트 웹훅 페이로드가 goal로 전달됩니다.

선택적 최상위 속성#

coding_environment#

History

선택적 coding_environment 속성은 워크로드가 시작될 때 플로에 필요한 코딩 환경의 종류를 선언합니다.

값 설명
full 제공하지 않았을 때의 기본값입니다. 리포지터리 클론, 설정 스크립트, Git 훅, 의존성 캐시를 포함합니다. 리포지터리 파일을 읽거나 쓰는 플로에 사용하세요.
none 리포지터리 클론이 없습니다. 설정 스크립트와 의존성 캐시는 건너뜁니다. Duo 세션 Git 훅은 여전히 설치되므로, 리포지터리를 직접 클론하는 플로도 커밋이 Duo에 귀속된 상태로 유지됩니다. GitLab API와만 상호작용하고 로컬 리포지터리가 필요 없는 API 전용 플로에 사용하세요. 리포지터리 파일을 읽거나 쓰는 에이전트 도구는 대상이 없습니다. none 값은 리포지터리 접근을 차단하지 않습니다. run_command 도구를 가진 플로는 여전히 리포지터리를 직접 클론할 수 있습니다. 이 속성은 플로가 시작되기 전에 GitLab이 준비하는 것만 제어합니다.

플로에 체크아웃이 필요할 때는 full 값을 사용하세요. 그러면 클론이 실행 중이 아니라 사전에 한 번만 수행됩니다.

full 또는 none 이외의 값을 추가하면 스키마 검증에 실패하고 플로가 실행되지 않습니다.

coding_environment 속성을 추가하지 않으면 플로는 전체 환경을 받으며 리포지터리 접근 권한도 그대로 유지합니다.

예시:

version: v1
environment: ambient
coding_environment: none
components:
  - name: "api_agent"
    type: AgentComponent
    prompt_id: "my_api_prompt"
    inputs:
      - "context:goal"
routers:
  - from: "api_agent"
    to: end
flow:
  entry_point: "api_agent"

제한된 필드#

v1 사양의 일부 필드와 기능은 커스텀 플로가 GitLab에서 일관되게 동작하도록 제한되어 있습니다.

environment#

environment 필드는 커스텀 플로에서 ambient 값만 지원합니다.

chat 및 chat-partial 값은 지원되지 않습니다.

prompts의 model#

prompts 항목 내부의 model 필드는 지원되지 않습니다.

모델은 그룹 또는 인스턴스 설정에서 구성된 모델 공급자에 의해 결정됩니다.

AgentComponent 필드#

response_schema_id 및 response_schema_version 필드는 지원되지 않습니다.

OneOffComponent 필드#

ui_role_as 필드는 지원되지 않습니다.

prompt 파라미터의 stop#

params 항목 내부의 stop 필드는 지원되지 않습니다.

최상위 필드#

v1 사양의 name, description, product_group 필드는 지원되지 않습니다. 커스텀 플로는 이 필드들을 거부합니다.

커스텀 플로 YAML 스키마

GitLab v19.4
원문 보기

요약

- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated 커스텀 플로는 flow registry v1 사양 구문을 사용합니다. v1 사양의 일부 필드는 커스텀 플로에서 제한됩니다.


커스텀 플로 YAML 스키마#

  - 
  Tier: [Free](/19.3/subscriptions/gitlab_credits/#for-the-free-tier), Premium, Ultimate

- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated

History

커스텀 플로는 flow registry v1 사양 구문을 사용합니다. v1 사양은 version, environment, components, prompts, routers, flow 등의 필드를 포함한 전체 YAML 구조를 정의합니다.

v1 사양의 일부 필드는 커스텀 플로에서 제한됩니다. 자세한 내용은 제한된 필드를 참조하세요.

YAML 구성에는 최대 크기도 있습니다. 자세한 내용은 구성 크기 제한을 참조하세요.

트리거 유형별 goal 값#

커스텀 플로를 설계할 때 goal 값은 플로를 시작하는 트리거 유형에 따라 달라집니다. 플로에는 여러 트리거 유형을 설정할 수 있으며, 각 트리거 유형은 context:goal로 서로 다른 값을 전달합니다. 플로는 설정한 각 트리거 유형에 맞는 goal 형식을 처리해야 합니다.

트리거 유형에 대한 자세한 내용은 트리거를 참조하세요.

컴포넌트는 inputs 필드를 통해 goal에 접근합니다:

components:
  - name: "my_agent"
    type: AgentComponent
    prompt_id: "my_prompt"
    inputs:
      - from: "context:project_id"
        as: "project_id"
      - "context:goal"

Mention 이벤트#

사용자가 댓글에서 플로 서비스 계정을 멘션하면, 전체 댓글 텍스트와 리소스 컨텍스트가 goal로 전달됩니다.

goal의 형식은 다음과 같습니다:

Input: <comment_text>
Context: {<resource_type> IID: <iid>}

예를 들어, 사용자가 이슈 #2에 @ai-my-flow Can you work on this?라고 작성하면 goal은 다음과 같습니다:

Input: @ai-my-flow Can you work on this?
Context: {Issue IID: 2}

Assign 및 Assign reviewer 이벤트#

플로 서비스 계정이 이슈 또는 머지 리퀘스트에 담당자로 지정되거나 리뷰어로 지정되면, 해당 리소스의 IID가 goal로 전달됩니다.

예를 들어, 플로 서비스 계정이 머지 리퀘스트 !10의 리뷰어로 지정되면 context:goal 값은 10이 됩니다.

IID와 context:project_id를 함께 사용하여 리소스를 읽을 수 있습니다:

components:
  - name: "review_mr"
    type: AgentComponent
    prompt_id: "review_mr_prompt"
    inputs:
      - from: "context:project_id"
        as: "project_id"
      - from: "context:goal"
        as: "mr_iid"

Pipeline 이벤트#

파이프라인 이벤트가 플로를 트리거하면, 전체 파이프라인 이벤트 웹훅 페이로드가 goal로 전달됩니다.

선택적 최상위 속성#

coding_environment#

History

선택적 coding_environment 속성은 워크로드가 시작될 때 플로에 필요한 코딩 환경의 종류를 선언합니다.

값 설명
full 제공하지 않았을 때의 기본값입니다. 리포지터리 클론, 설정 스크립트, Git 훅, 의존성 캐시를 포함합니다. 리포지터리 파일을 읽거나 쓰는 플로에 사용하세요.
none 리포지터리 클론이 없습니다. 설정 스크립트와 의존성 캐시는 건너뜁니다. Duo 세션 Git 훅은 여전히 설치되므로, 리포지터리를 직접 클론하는 플로도 커밋이 Duo에 귀속된 상태로 유지됩니다. GitLab API와만 상호작용하고 로컬 리포지터리가 필요 없는 API 전용 플로에 사용하세요. 리포지터리 파일을 읽거나 쓰는 에이전트 도구는 대상이 없습니다. none 값은 리포지터리 접근을 차단하지 않습니다. run_command 도구를 가진 플로는 여전히 리포지터리를 직접 클론할 수 있습니다. 이 속성은 플로가 시작되기 전에 GitLab이 준비하는 것만 제어합니다.

플로에 체크아웃이 필요할 때는 full 값을 사용하세요. 그러면 클론이 실행 중이 아니라 사전에 한 번만 수행됩니다.

full 또는 none 이외의 값을 추가하면 스키마 검증에 실패하고 플로가 실행되지 않습니다.

coding_environment 속성을 추가하지 않으면 플로는 전체 환경을 받으며 리포지터리 접근 권한도 그대로 유지합니다.

예시:

version: v1
environment: ambient
coding_environment: none
components:
  - name: "api_agent"
    type: AgentComponent
    prompt_id: "my_api_prompt"
    inputs:
      - "context:goal"
routers:
  - from: "api_agent"
    to: end
flow:
  entry_point: "api_agent"

제한된 필드#

v1 사양의 일부 필드와 기능은 커스텀 플로가 GitLab에서 일관되게 동작하도록 제한되어 있습니다.

environment#

environment 필드는 커스텀 플로에서 ambient 값만 지원합니다.

chat 및 chat-partial 값은 지원되지 않습니다.

prompts의 model#

prompts 항목 내부의 model 필드는 지원되지 않습니다.

모델은 그룹 또는 인스턴스 설정에서 구성된 모델 공급자에 의해 결정됩니다.

AgentComponent 필드#

response_schema_id 및 response_schema_version 필드는 지원되지 않습니다.

OneOffComponent 필드#

ui_role_as 필드는 지원되지 않습니다.

prompt 파라미터의 stop#

params 항목 내부의 stop 필드는 지원되지 않습니다.

최상위 필드#

v1 사양의 name, description, product_group 필드는 지원되지 않습니다. 커스텀 플로는 이 필드들을 거부합니다.