カスタムフローYAMLスキーマ
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
- ステータス: ベータ版
カスタムフローは、flowレジストリv1仕様構文を使用します。v1仕様では、version、environment、components、prompts、routers、flowなどのフィールドを含む、完全なYAML構造を定義します。
v1仕様の一部のフィールドは、カスタムフローで制限されています。詳細については、restricted fieldsを参照してください。
トリガータイプごとの目標値
カスタムフローを設計する際、目標値はフローを開始するトリガータイプによって異なります。フローには複数のトリガータイプを設定でき、各トリガータイプはcontext:goalとして異なる値を渡します。フローは、設定する各トリガータイプの目標フォーマットを処理する必要があります。
トリガータイプに関する詳細については、トリガーを参照してください。
コンポーネントは、inputsフィールドを介して目標にアクセスします:
components:
- name: "my_agent"
type: AgentComponent
prompt_id: "my_prompt"
inputs:
- from: "context:project_id"
as: "project_id"
- "context:goal"メンションイベント
ユーザーがコメントでフローサービスアカウントをメンションすると、完全なコメントテキストとリソースコンテキストが目標として渡されます。
目標はこのフォーマットを使用します:
Input: <comment_text>
Context: {<resource_type> IID: <iid>}たとえば、ユーザーがイシュー#2で@ai-my-flow Can you work on this?と書き込んだ場合、目標は次のようになります:
Input: @ai-my-flow Can you work on this?
Context: {Issue IID: 2}割り当ておよびレビュアー割り当てイベント
フローサービスアカウントがイシューまたはマージリクエストに割り当てられた場合、またはレビュアーとして割り当てられた場合、リソースのIIDが目標として渡されます。
たとえば、フローサービスアカウントがマージリクエスト!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"パイプラインイベント
パイプラインイベントがフローをトリガーすると、完全なパイプラインイベントWebhookペイロードが目標として渡されます。
制限されたフィールド
v1仕様の一部のフィールドと機能は、カスタムフローがGitLabで一貫して機能するように制限されています。
environment
カスタムフローでは、environmentフィールドはambientの値のみをサポートします。
chatとchat-partialの値はサポートされていません。
プロンプト内のmodel
promptsエントリ内のmodelフィールドはサポートされていません。
モデルは、グループまたはインスタンス設定で構成されたモデルプロバイダーによって決定されます。
AgentComponentフィールド
response_schema_idとresponse_schema_versionフィールドはサポートされていません。
OneOffComponentフィールド
ui_role_asフィールドはサポートされていません。
プロンプトパラメータ内のstop
paramsエントリ内のstopフィールドはサポートされていません。
トップレベルフィールド
v1仕様のname、description、およびproduct_groupフィールドはサポートされていません。カスタムフローはこれらのフィールドを拒否します。