メインコンテンツへスキップ

概要

変数を使って手順書をパラメータ化できます。variables セクションで定義し、ステップの値で {{variableName}} 構文で参照します。

定義

variables:
  email:
    source: prompt
    description: "ログイン用メールアドレス"
    required: true
  password:
    source: prompt
    description: "ログインパスワード"
    required: true
    sensitive: true
  baseUrl:
    source: fixed
    value: "https://staging.example.com"
  timestamp:
    source: expression
    expression: "{{Date.now()}}"
  region:
    source: env
    envKey: "AWS_REGION"

変数フィールド

フィールドデフォルト説明
sourceVariableSource変数の解決方法(下記参照)
descriptionstring人が読める説明
requiredbooleantrue実行前に解決が必要か
sensitivebooleanfalseログやレポートで値をマスク
valuestring静的な値(fixed ソース用)
expressionstringテンプレート式(expression ソース用)
envKeystring環境変数名(env ソース用)

変数ソース

ソース説明使用例
prompt実行時にユーザーに入力を求める(CLI のみ)ログイン認証情報
fixedハードコードされた静的値ベース URL、定数
contextコンテキスト Markdown ファイルから AI が抽出--context で記述された値
env環境変数から読み込みAWS_REGION, APP_URL
expressionテンプレート式を評価{{Date.now()}}, {{captured_value}}
dataCSV/JSON データファイルから読み込み(バッチ実行)行ごとの値

解決優先順位

実行時、変数は secrets > data > context > env > expression > fixed > prompt の優先順位で解決されます。最初にマッチした値が使用されます。 各ソースの詳細は変数とシークレット: 解決優先順位を参照してください。
SDK モードでは prompt ソースは使用できません。未解決の必須変数はエラーになります。

ステップでの変数の使用

{{variableName}} で任意の文字列フィールドから変数を参照できます:
steps:
  - ordinal: 0
    description: "{{baseUrl}} に遷移"
    action:
      type: navigate
      url: "{{baseUrl}}/login"
    url: "{{baseUrl}}/login"
    riskLevel: low
    requiresConfirmation: false
  - ordinal: 1
    description: "メールアドレスを入力"
    action:
      type: input
      value: "{{email}}"
      selector:
        tagName: input
        inputType: email
    url: "{{baseUrl}}/login"
    riskLevel: low
    requiresConfirmation: false

機密変数

sensitive: true を設定すると、ログやレポートに値が表示されなくなります:
variables:
  password:
    source: prompt
    description: "ログインパスワード"
    sensitive: true
--secrets(CLI)または secrets オプション(SDK)で渡した値は自動的に sensitive として扱われます。

data ソースによるバッチ実行

--data 使用時は、dataSource で変数名と CSV/JSON カラムをマッピングします:
variables:
  email:
    source: data
    description: "CSV からのユーザーメールアドレス"
  name:
    source: data
    description: "CSV からのユーザー名"

dataSource:
  mapping:
    email: "Email"      # CSV カラムヘッダー
    name: "Full Name"   # CSV カラムヘッダー
npx @refrainai/cli execute -- \
  --runbook ./flow.yaml \
  --data ./users.csv
手順書はデータの各行に対して1回ずつ実行され、各行の値で変数が設定されます。