⚙️output-workflow-run
- プラグイン
- outputai
- ソース
- GitHub で見る ↗
説明
Output SDK ワークフローを同期的に実行し、結果を待機します。 次のような場合に使用: - ワークフローを実行して即時に結果が必要な場合 - ワークフローの実行をテストする場合 - ターミナルに直接出力結果を取得したい場合
原文を表示
Execute an Output SDK workflow synchronously and wait for the result. Use when running a workflow and needing immediate results, testing workflow execution, or getting the output directly in the terminal.
ユースケース
- ✓ワークフローを実行して即座に結果が必要なとき
- ✓ワークフロー実行をテストするとき
- ✓ターミナルに直接出力結果を取得したいとき
本文(日本語訳)
ワークフローの同期実行
概要
このスキルはワークフローを同期的に実行します。つまり、コマンドはワークフローが完了するまで待機し、結果を直接返します。 テスト、簡易実行、即時フィードバックが必要な場合に最適です。
このスキルを使用するタイミング
次のような場合に使用:
- 開発中のワークフローをテストする
- ワークフローを実行し、すぐに結果が必要なとき
- 簡単な単発のワークフロー実行
- 異なる入力でワークフローを再実行してデバッグする
- ワークフローを別途モニタリングする必要がない場合
非同期実行を使用するタイミング
次のような場合には npx output workflow start(非同期)の使用を検討してください:
- ワークフローの実行に長時間(数分〜数時間)かかる場合
- 複数のワークフローを並列実行したい場合
- 一度切断して後から結果を確認したい場合
- 進行状況を別途モニタリングする必要がある場合
使い方
基本構文
npx output workflow run <workflowName> --input '<json-input>'
npx output workflow run <workflowName> --input <path-to-json-file>
ワークフローが入力データを必要とする場合、--input フラグは必須です。
入力方法
1. インライン JSON
コマンドラインに直接 JSON を渡します:
npx output workflow run example --input '{"question": "who really is ada lovelace?"}'
2. ファイルパス(推奨)
入力データを含む JSON ファイルを参照します:
npx output workflow run simple --input src/simple/scenarios/question_ada_lovelace.json
この方法を推奨する理由:
- 入力内容がバージョン管理され、再現性が確保される
- 複雑な入力の読み書きがしやすい
- シナリオを共有・再利用できる
シナリオフォルダのパターン(ベストプラクティス)
ワークフローには通常、テスト用入力データを格納する scenarios/ フォルダが用意されています:
src/
my_workflow/
workflow.ts
steps.ts
scenarios/
basic_test.json
edge_case_empty.json
large_payload.json
推奨される手順:
-
シナリオファイルに入力データを作成します:
# scenarios フォルダが存在しない場合は作成 mkdir -p src/my_workflow/scenarios -
シナリオファイルに入力内容を記述します:
// src/my_workflow/scenarios/test_user.json { "userId": "123", "options": { "verbose": true } } -
シナリオを指定してワークフローを実行します:
npx output workflow run my_workflow --input src/my_workflow/scenarios/test_user.json
入力例
# インライン JSON - シンプルなオブジェクト
npx output workflow run my-workflow --input '{"userId": "123"}'
# インライン JSON - 複雑なネストされた入力
npx output workflow run data-pipeline --input '{"source": "api", "options": {"limit": 100}}'
# ファイルパス - シナリオファイルを参照
npx output workflow run simple --input src/simple/scenarios/basic.json
# ファイルパス - カレントディレクトリからの相対パス
npx output workflow run batch-processor --input ./test_inputs/batch1.json
# 入力なし(ワークフローが入力を必要としない場合のみ)
npx output workflow run health-check
出力内容について
コマンドはワークフローの結果を標準出力(stdout)に直接返します。
成功時の出力
ワークフローの戻り値が表示されます(通常は JSON 形式)。
エラー時の出力
ワークフローが失敗した場合、以下の情報が表示されます:
- エラーメッセージ
- ワークフロー ID(追加デバッグ用)
npx output workflow debugで詳細を確認するよう促すメッセージ
実行例
シナリオ: シナリオファイルを使ってワークフローをテストする
# まず既存のシナリオを確認
ls src/simple/scenarios/
# シナリオファイルを使って実行
npx output workflow run simple --input src/simple/scenarios/basic_sum.json
# 出力例:
# { "sum": 6, "count": 3 }
シナリオ: 新しいテストシナリオを作成して実行する
# シナリオファイルを作成
cat > src/my_workflow/scenarios/test_case_1.json << 'EOF'
{
"question": "What is the capital of France?",
"context": "geography"
}
EOF
# ワークフローを実行
npx output workflow run my_workflow --input src/my_workflow/scenarios/test_case_1.json
シナリオ: 開発中に手軽にインラインでテストする
npx output workflow run example --input '{"question": "explain quantum computing"}'
シナリオ: デバッグのため異なる入力でワークフローを再実行する
# まずシナリオファイルで実行
npx output workflow run process-data --input src/process_data/scenarios/user_abc.json
# エラーが発生
# 問題を切り分けるための最小シナリオを作成
cat > src/process_data/scenarios/debug_minimal.json << 'EOF'
{"id": "test", "debug": true}
EOF
npx output workflow run process-data --input src/process_data/scenarios/debug_minimal.json
シナリオ: 出力結果をキャプチャしてさらに処理する
# 結果をファイルに保存
npx output workflow run generate-report --input src/generate_report/scenarios/jan_2024.json > report.json
# jq にパイプして処理
npx output workflow run get-users --input src/get_users/scenarios/active.json | jq '.users[].name'
エラーハンドリング
よくあるエラー
| エラー | 原因 | 対処法 |
|---|---|---|
| "Workflow not found" | ワークフロー名が正しくない | npx output workflow list で確認する |
| "Invalid input" | JSON がスキーマと一致していない | ワークフローの inputSchema に合わせて入力を確認する |
| "Parse error" | JSON の形式が不正、またはファイルが見つからない | JSON 構文またはファイルパスを確認する |
| "Timeout" | ワークフローの実行時間が長すぎる | 長時間実行には非同期実行を使用する |
失敗時の詳細確認
ワークフローが失敗すると、出力にワークフロー ID が含まれます。その ID を使って完全なトレースを取得できます:
npx output workflow run my-workflow --input src/my_workflow/scenarios/test.json
# 出力例: Workflow failed. ID: abc123xyz
npx output workflow debug abc123xyz --json
入力スキーマのヒント
- スキーマを先に確認する: コード内のワークフローの
inputSchemaを参照する - シナリオファイルを活用する: ワークフローの
scenarios/フォルダに再利用可能なテスト入力を作成する - 型を正しく指定する: 文字列はクォートで囲み、数値はクォートなし、真偽値は
true/falseを使用する - 必須フィールドを含める: オプションでないスキーマフィールドはすべて指定する必要がある
関連コマンド
npx output workflow start <name> --input- 非同期で開始するnpx output workflow list- 利用可能なワークフローを確認するnpx output workflow debug <id>- 失敗した実行をデバッグする
原文(English)を表示
Run Workflow Synchronously
Overview
This skill executes a workflow synchronously, meaning the command waits for the workflow to complete and returns the result directly. This is ideal for testing, quick executions, and when you need immediate feedback.
When to Use This Skill
- Testing a workflow during development
- Running a workflow and needing the result immediately
- Quick one-off workflow executions
- Debugging by re-running a workflow with different inputs
- When you don't need to monitor the workflow separately
When to Use Async Instead
Consider using npx output workflow start (async) when:
- The workflow takes a long time (minutes to hours)
- You need to run multiple workflows in parallel
- You want to disconnect and check results later
- You need to monitor progress separately
Instructions
Basic Syntax
npx output workflow run <workflowName> --input '<json-input>'
npx output workflow run <workflowName> --input <path-to-json-file>
The --input flag is required when the workflow expects input data.
Input Methods
1. Inline JSON
Pass JSON directly on the command line:
npx output workflow run example --input '{"question": "who really is ada lovelace?"}'
2. File Path (Recommended)
Reference a JSON file containing the input:
npx output workflow run simple --input src/simple/scenarios/question_ada_lovelace.json
This is the recommended approach because:
- Input is version controlled and reproducible
- Complex inputs are easier to read and edit
- Scenarios can be shared and reused
Scenario Folder Pattern (Best Practice)
Workflows typically have a scenarios/ folder containing test inputs:
src/
my_workflow/
workflow.ts
steps.ts
scenarios/
basic_test.json
edge_case_empty.json
large_payload.json
Best practice workflow:
-
Create a scenario file with your input:
# Create scenarios folder if it doesn't exist mkdir -p src/my_workflow/scenarios -
Write your input to a scenario file:
// src/my_workflow/scenarios/test_user.json { "userId": "123", "options": { "verbose": true } } -
Run the workflow referencing the scenario:
npx output workflow run my_workflow --input src/my_workflow/scenarios/test_user.json
Input Examples
# Inline JSON - simple object
npx output workflow run my-workflow --input '{"userId": "123"}'
# Inline JSON - complex nested input
npx output workflow run data-pipeline --input '{"source": "api", "options": {"limit": 100}}'
# File path - reference a scenario file
npx output workflow run simple --input src/simple/scenarios/basic.json
# File path - relative to current directory
npx output workflow run batch-processor --input ./test_inputs/batch1.json
# No input (only if workflow doesn't require it)
npx output workflow run health-check
Understanding the Output
The command returns the workflow result directly to stdout.
Success Output
The workflow's return value is displayed, typically as JSON.
Error Output
If the workflow fails, you'll see:
- Error message
- The workflow ID (for further debugging)
- Suggestion to use
npx output workflow debugfor details
Examples
Scenario: Test a workflow with a scenario file
# First, look for existing scenarios
ls src/simple/scenarios/
# Run using a scenario file
npx output workflow run simple --input src/simple/scenarios/basic_sum.json
# Output:
# { "sum": 6, "count": 3 }
Scenario: Create and run a new test scenario
# Create a scenario file
cat > src/my_workflow/scenarios/test_case_1.json << 'EOF'
{
"question": "What is the capital of France?",
"context": "geography"
}
EOF
# Run the workflow
npx output workflow run my_workflow --input src/my_workflow/scenarios/test_case_1.json
Scenario: Quick inline test during development
npx output workflow run example --input '{"question": "explain quantum computing"}'
Scenario: Re-run a workflow with different input for debugging
# First attempt with scenario file
npx output workflow run process-data --input src/process_data/scenarios/user_abc.json
# Error occurs
# Create a new scenario to isolate the issue
cat > src/process_data/scenarios/debug_minimal.json << 'EOF'
{"id": "test", "debug": true}
EOF
npx output workflow run process-data --input src/process_data/scenarios/debug_minimal.json
Scenario: Capture output for further processing
# Save result to a file
npx output workflow run generate-report --input src/generate_report/scenarios/jan_2024.json > report.json
# Pipe to jq for processing
npx output workflow run get-users --input src/get_users/scenarios/active.json | jq '.users[].name'
Error Handling
Common Errors
| Error | Cause | Solution |
|---|---|---|
| "Workflow not found" | Workflow name is incorrect | Check with npx output workflow list |
| "Invalid input" | JSON doesn't match schema | Verify input matches workflow's inputSchema |
| "Parse error" | Malformed JSON or file not found | Check JSON syntax or file path |
| "Timeout" | Workflow took too long | Use async execution for long workflows |
Getting More Details on Failures
When a workflow fails, the output includes the workflow ID. Use it to get the full trace:
npx output workflow run my-workflow --input src/my_workflow/scenarios/test.json
# Output: Workflow failed. ID: abc123xyz
npx output workflow debug abc123xyz --json
Input Schema Tips
- Check the schema first: Look at the workflow's
inputSchemain the code - Use scenario files: Create reusable test inputs in the workflow's
scenarios/folder - Use proper types: Strings in quotes, numbers without quotes, booleans as true/false
- Include required fields: All non-optional schema fields must be provided
Related Commands
npx output workflow start <name> --input- Start asynchronouslynpx output workflow list- See available workflowsnpx output workflow debug <id>- Debug a failed run
原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。