変数を使って手順書をパラメータ化できます。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"
変数フィールド
| フィールド | 型 | デフォルト | 説明 |
|---|
source | VariableSource | — | 変数の解決方法(下記参照) |
description | string | — | 人が読める説明 |
required | boolean | true | 実行前に解決が必要か |
sensitive | boolean | false | ログやレポートで値をマスク |
value | string | — | 静的な値(fixed ソース用) |
expression | string | — | テンプレート式(expression ソース用) |
envKey | string | — | 環境変数名(env ソース用) |
変数ソース
| ソース | 説明 | 使用例 |
|---|
prompt | 実行時にユーザーに入力を求める(CLI のみ) | ログイン認証情報 |
fixed | ハードコードされた静的値 | ベース URL、定数 |
context | コンテキスト Markdown ファイルから AI が抽出 | --context で記述された値 |
env | 環境変数から読み込み | AWS_REGION, APP_URL |
expression | テンプレート式を評価 | {{Date.now()}}, {{captured_value}} |
data | CSV/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回ずつ実行され、各行の値で変数が設定されます。