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

概要

generate コマンドはブラウザを開き、指定したゴールに基づいて AI が Web アプリを探索し、構造化された手順書を出力します。生成された手順書は AI コストゼロで無制限に実行できます。

前提条件

  • Node.js 18 以降
  • AI プロバイダーの API キーAI プロバイダーを設定するを参照)
  • コンテキストファイル(推奨)— 操作対象アプリの情報

ステップバイステップ

1

コンテキストとシークレットを準備

操作対象アプリの補足情報を記載した context.md を作成します。ログイン URL、画面遷移のヒント、特殊な UI パターン、業務ルールなどを含めます:
# アプリ情報

- ログインページ: https://app.example.com/login
- ログイン後、ダッシュボードは /dashboard にある
- 「CSV エクスポート」ボタンは右上のツールバーにある
- ステージング環境を使用(本番環境ではない)
ワークフローに認証情報が必要な場合は secrets.json を作成します。全値が sensitive として扱われ、ログでマスクされます:
{
  "email": "[email protected]",
  "password": "s3cret!"
}
2

generate コマンドを実行

npx @refrainai/cli generate -- \
  --url "https://app.example.com/login" \
  --goal "ログインしてダッシュボードに移動する" \
  --output ./login-flow.yaml \
  --context ./context.md \
  --secrets ./secrets.json \
  --headless false
主要フラグ:
フラグ説明
--url開始 URL(必須)
--goalAI が達成すべきゴール(必須)
--output手順書の保存先パス(必須)
--contextコンテキストマークダウンファイルのパス
--secretsシークレット JSON ファイルのパス
--headless falseブラウザウィンドウを表示して AI の動きを確認
全フラグは CLI リファレンス: generate を参照してください。
3

AI の探索を確認(任意)

--headless false を指定すると、AI がアプリをナビゲートする様子をリアルタイムで確認できます。AI が行き詰まったり誤った方向に進んだ場合は、Enter キーまたは p キーで一時停止し、ガイダンスを入力するか中止できます。AI はループにはまった場合にも自動検出し、ガイダンスを求めます。
4

生成されたステップをレビュー

探索後、AI がすべての記録ステップをレビューします:
  • 不要なステップ(冗長なクリック、誤ったナビゲーション)を除去
  • 各ステップにリスクレベル(lowmediumhigh)を付与
  • リスクの高いステップに承認フラグ(requiresConfirmation: true)を設定
レビューフェーズでこれらのフラグを対話的に変更できます。
5

手順書を取得

最終的な手順書が --output で指定したパスに保存されます。実行に必要なすべてのステップ、セレクタ、変数、設定が含まれています。

より良い結果を得るコツ

  • ゴールは具体的に — 「管理画面でなんかやる」よりも「メールとパスワードでログインし、ユーザー一覧を CSV エクスポートする」の方が良い結果が得られます
  • コンテキストを充実させるcontext.md の情報が多いほど、AI の誤探索が減ります。認証情報、画面構成、期待される動作を記載しましょう
  • --headless false を使う — 探索の様子を見ることで、問題を早期に発見しガイダンスを提供できます
  • シンプルなゴールから始める — 複雑なワークフローは小さなゴールに分割し、別々の手順書を生成してからチェーンしましょう

トラブルシューティング

Enter キーで一時停止し、「まず設定メニューをクリックして」「ボタンはページ下部にある」などのガイダンスを入力してください。ゴールに多くのステップが必要な場合は --max-iterations を増やすことも検討してください。
context.md に操作対象アプリの十分な情報があるか確認してください。ゴールをより具体的にしてみてください。アプリが bot 検出を使用している場合は --stealth モードを試してください。
レビューフェーズで不要なステップは除去されます。それでも多い場合は、よりフォーカスしたゴールにするか、最適なパスを context.md に記載してください。

次のステップ