Skip to main content
作業管理

Autonomous Work

スケジュール、イベント、API で Waker または WakerFlow を起動し、実行上限、実行記録、失敗を管理します。

Autonomous Work は、タスクの挙動が検証済みの状態では自動的に開始します。1 つのタスクは 1 つの Waker または WakerFlow を実行できます。頻繁な確認や段階的な判断が依然として必要な作業は、チャットタスクのままにしておくべきです。 Autonomous Work は、作業がいつ開始されるか、どのような入力を受け取るか、いつ停止するかを管理します。WakerFlow は、実行が開始したあとのステージとロール間の引き継ぎを管理します。ワークフローの設計と診断については WakerFlow を参照してください。

Autonomous Work を開く

Path: 左側ナビゲーション → Autonomous Work。このページは、タスクの総数、アクティブなタスク、Waker または WakerFlow が処理したタスクを集計して表示します。応答タイプ、トリガータイプ、ステータスで絞り込めます。 Waker の詳細ページでは、Work → Autonomous Work を選ぶと、その Waker に関連するタスクのみが表示されます。実行が完了したという状態は、あくまで実行が終わったことを意味するだけです。受け入れの前に、実行の入力、プロセス、結果、成果物を確認してください。
グローバルな Autonomous Work ページで件数、実行主体、ステータスを確認する

前提条件を確認する

自律タスクは通常、不足したコンテキストを補ってくれる人が同席しない状態で実行されます。タスクを作成する前に、以下を確認してください。
  • 実行主体: Waker が有効になっており、正常に応答します。WakerFlow の場合は、少なくとも 1 回の手動実行を成功させ、人間の確認ノードと出力を検証してください。
  • モデル: Waker のモデルが利用可能です。再現性が重要な場合は特定のモデルを選択し、Auto を使ってシステム推奨に従うこともできます。
  • ワークスペース: Waker が必要なディレクトリまたはプロジェクトにアクセスできます。ローカルディレクトリは、トリガー発動時にデバイス、QoderWake、ディレクトリが引き続き利用可能である必要があります。
  • 能力とアクセス: 必要な Skill、コネクタ、ネットワークアクセス、外部アカウントを、まず通常のチャットで検証してください。本番の自動化を初回の認可テストに使用しないでください。
  • タスクの境界: 目標の再確認が繰り返し必要な作業はチャットに残してください。複数のステージ、固定の承認、人間の確認ステップがある場合は WakerFlow を優先してください。

トリガーを選択する

トリガー最適な用途最初の検証
Schedule日次または週次のレポート、定期チェック、一回限りの予約数分後に実行を設定し、タイムゾーンと次回実行時刻を検証する
EventIssue、Pull Request、その他の変更をプッシュする外部システム安全なテストイベントを 1 件作成し、タスクの結果より前にイベントアクティビティを確認する
API構造化データを供給するチケット管理、CI/CD、監視、業務システムテスト用 PAT と、機微データを含まない JSON ボディを使用する
定期ポーリング(利用可能な場合)イベントをプッシュできないが、変更をクエリできるソース低い頻度で開始し、フィルターと重複排除を検証する
1 つの業務変更には 1 つのトリガーソースを優先してください。イベント配信とポーリングが同じオブジェクトを対象にする場合は、タスクまたは呼び出し側に安定した重複排除キーを追加してください。

自律タスクを作成する

  1. New Automation を選択します。
  2. 「オブジェクト + 操作 + 頻度またはソース」の形式で名前を入力します。
  3. 1 つ以上のトリガー条件を追加します。1 つのタスクには最大 5 つのトリガーを含められます。
  4. 実行方法を選択します:
    • 1 つのロールが担当する安定した作業には Waker。
    • 複数のステージ、並列作業、固定の引き継ぎ、構造化入力には WakerFlow。
  5. 実行オブジェクトを選択し、それが有効になっていることを確認します。
  6. 応答方法が Waker の場合、Auto または特定のモデルを選択します。そのモデルが利用不可になったり削除されたりした場合は、タスクを編集して再テストしてください。
  7. タスク説明を記述します: 反復的な目標、入力の範囲、出力、禁止操作。
  8. デフォルトのワークスペース、ローカルディレクトリ、またはプロジェクトを選択します。
  9. 詳細設定を開き、最大実行回数と終了日時を設定します。
  10. 保存して手動で実行し、本番利用を有効にする前に実際のトリガーをテストします。
タスク説明にはこの構造を使用してください:
目的: 各呼び出しで必ず達成する内容。
入力: 使用を許可するデータ、期間、業務オブジェクト。
処理ルール: 必須の手順、判断、エラー処理。
出力: 応答形式、ファイル名、保存先、または外部アクション。
受け入れ基準: Completed ステータスだけでなく、業務結果を検証する方法。
禁止事項: 変更、削除、公開、送信してはならない内容。
コード、ファイル、外部システムへの書き込みには、テスト要件、対象ブランチ、出力先、人間の承認が必要な操作を記載してください。
1 つのダイアログでトリガー、実行方法、ワークスペース、詳細設定を設定する

スケジュールトリガーを設定する

スケジュールトリガーは、日次レポート、週次サマリー、定期的なチェックに適しています。
  1. Schedule を選択します。
  2. 定期実行または 1 回限りの実行を選び、日付、時刻、繰り返しルールを設定します。
  3. 次回実行時刻と業務タイムゾーンを検証します。
  4. 最初のテストでは、数分後に実行を予約します。成功後にのみ最終的な実行間隔に切り替えてください。
タスクは、一時停止中、実行上限に達した後、または終了日時を過ぎた後はトリガーされません。ローカルの Waker またはディレクトリは、予約時刻に利用可能である必要があります。複数の実行が同じ成果物に書き込む場合は、前回の実行と重なる実行間隔を避けてください。

イベントトリガーを設定する

イベントトリガーは、リポジトリの Issue、Pull Request、その他サポートされるコネクタイベントに反応します。
  1. Event を選択し、イベントソースを認可します。
  2. リポジトリまたはオブジェクトを選択します。
  3. イベントタイプと、作成、編集、リポジトリ、ブランチ、ラベル、オブジェクト範囲など、ソース固有のフィルターを選択します。利用可能なフィールドはソースによって異なります。
  4. 保存し、ソースシステムで安全なテストイベントを作成します。
  5. タスク詳細で Event Activity または実行履歴を確認します。まずイベントが届いたことを確認し、次に予期したタスクがちょうど 1 件開始されたことを確認してください。
一部のイベントトリガー型タスクは Run now を使用できず、ソースシステムからの実際のイベントでテストする必要があります。GitHub など一部の Webhook の詳細では、通常の実行履歴の代わりに Event Activity が表示されることがあります。そこで配信を確認し、関連するタスクまたはチャットを開いて結果を受け入れてください。 何も実行されない場合は、認可、オブジェクト範囲、イベントタイプ、フィルター、タスクステータス、イベントアクティビティを確認してください。重複した実行が見られる場合は、重複するトリガー条件を確認してください。 GitHub の場合は、認可されたアカウントがリポジトリにアクセスできること、リポジトリ、Issue / Pull Request、変更タイプが正しいこと、ブランチ、ラベル、オブジェクトフィルターが必要以上にマッチしていないこと、テストイベントが Event Activity に表示されることを確認してください。マージやリリース関連のイベントを有効にする前に、テスト用リポジトリまたは低リスクのオブジェクトを使用してください。

定期ポーリングを設定する(利用可能な場合)

あるソースがイベントをプッシュできず、ページにポーリングトリガーが用意されている場合は、定期ポーリングを使用してください:
  1. ソースを選択し、認可します。
  2. オブジェクト範囲、フィルター、ポーリング間隔を選択します。
  3. 初回実行がすべての履歴を誤って処理しないよう、初期時刻またはカーソルを定義します。
  4. 重複排除には安定したオブジェクト ID または更新時刻を使用します。
  5. 変更の検出 → タスクの作成 → カーソルの進め方という完全な経路を検証します。
利用可能なフィールドと最小間隔は現在のページに従います。ソースに API 制限がある場合はゆっくり開始し、リトライが同じオブジェクトを 2 回変更または送信できないようにしてください。

API トリガーを設定する

API トリガーを使うと、チケット管理システム、CI/CD パイプライン、監視サービス、業務アプリケーションが、必要に応じて自律ワークを開始できます。呼び出し側が構造化 JSON を送信すると、QoderWake がそのデータをタスク説明に解決し、選択された Waker または WakerFlow にディスパッチします。

パーソナルアクセストークンを作成する

API リクエストは Bearer 認証にパーソナルアクセストークン(PAT)を使用します。呼び出し側を統合する前に、以下を作成してください:
  1. Qoder Console にサインインし、アバターまたはユーザーメニューを開きます。
  2. Personal Settings → Service Integration に移動します。
  3. パーソナルアクセストークンを作成します。ticketing-production のように、呼び出し側と環境を識別できる名前を使用してください。
  4. トークンをすぐにコピーします。通常、完全な形式で表示されるのは 1 回だけです。呼び出し側の資格情報マネージャーまたは CI シークレットストアに保存してください。
  5. テスト環境で統合を検証し、その後、本番用の別のトークンを作成します。ローテーションの際は、古いトークンを失効させる前に新しいトークンを検証してください。
PAT は現在のアカウントの呼び出しIDを表します。実際のトークンをリポジトリ、自律タスクの説明、スクリーンショット、シェル履歴、アプリケーションログに絶対に置かないでください。漏洩した場合はすぐに失効させて再作成してください。

タスクを作成しエンドポイントを取得する

  1. 自律タスクを作成し、API トリガーを追加します。
  2. Waker または WakerFlow を選択し、タスク説明、ワークスペース、実行上限を設定します。
  3. タスクを保存します。タスク詳細から、生成された POST エンドポイント、認証方法、リクエスト例をコピーします。
  4. 完全なエンドポイントを資格情報同様に保護してください。手動で構築したり、公開ログやスクリーンショットに含めたりしないでください。
エンドポイントには現在の API トリガーの識別子が含まれます。そのトリガーを削除、再作成、再生成すると、古いエンドポイントが無効になることがあります。トリガー設定を編集したあとは、タスク詳細から最新のエンドポイントを再度コピーしてください。

タスク説明とペイロードを設計する

タスク説明は安定した指示を定義し、リクエストボディは 1 回の呼び出し用のデータを供給します。たとえば次のとおりです:
チケット {{ticket.id}} を処理してください。
重大度: {{ticket.severity}}
問題: {{ticket.summary}}
出力: 原因、推奨対応、人間の承認が必要なリスクを提示してください。
対応する JSON ペイロードを送信します:
curl -X POST 'https://api.qoder.com/v1/qoderwake/automation/invoke/<GENERATED_INVOKE_KEY>' \
  --header 'Authorization: Bearer <YOUR_PAT>' \
  --header 'Content-Type: application/json' \
  --data '{
    "wakeSessionUniqueId": "ticket-1001",
    "ticket": {
      "id": "1001",
      "severity": "high",
      "summary": "Payment callbacks keep timing out"
    }
  }'
タスク詳細で生成された完全な POST エンドポイントを使用してください。ペイロードの置換は次のルールに従います:
  • 最上位フィールドには {{field}}、ネストされたフィールドには {{ticket.id}}、配列要素には {{items[0].name}} を使用します。
  • フィールド名は大文字小文字を区別します。パスを解決できない場合、プレースホルダーはタスク説明に残り、不一致が確認できます。
  • 文字列は直接挿入されます。オブジェクト、配列、数値、ブール値、null は JSON テキストに変換されます。
  • タスク説明にプレースホルダーがない場合、固定の説明はそのまま残り、完全なリクエストボディがその実行の入力として追加されます。

一回限りのリクエストと継続セッション

デフォルトでは、すべての API 呼び出しが新しいタスクセッションを開始します。同じチケット、アラート、業務オブジェクトに対する作業を継続するには、後続のリクエストで同じ最上位の文字列フィールド wakeSessionUniqueId を送信してください:
  • 同じユーザー、自律タスク、wakeSessionUniqueId からのリクエストは 1 つのセッションを再利用し、順番に実行されます。
  • このフィールドを省略するか値を変更すると、新しいセッションが開始されます。
  • このフィールドはコンテキストを保持します。べき等性キーではありません。呼び出し側は引き続きリトライと重複排除の挙動を実装する必要があります。
  • 異なる顧客、プロジェクト、データ権限、セキュリティスコープにわたっては異なる値を使用し、コンテキストが境界を越えないようにしてください。

結果を検証する

  1. 小さく機微でないペイロードで最初のリクエストを実行します。
  2. HTTP レスポンスを確認します。リクエストが受理されたことは、実行がディスパッチされたことを意味するだけで、業務タスクが完了したことを意味しません。
  3. Autonomous Work の実行履歴で、トリガーソースが API であることを確認し、入力、実行主体、ワークスペース、現在のステータスを検査します。
  4. 完了を待ち、最終レスポンス、生成されたファイル、外部システム内の実際の結果を検査します。
  5. 検証後、保護されたエンドポイントと PAT を本番の呼び出し側に設定します。

API トリガーをトラブルシューティングする

症状確認すべき項目
HTTP 401 または 403PAT が現在のアカウントとリージョンに対して有効であり、ヘッダーが Authorization: Bearer <YOUR_PAT> であることを確認する
無効なエンドポイントまたは HTTP 404タスク詳細から完全なエンドポイントを再度コピーする。タスクまたは API トリガーが削除・再作成されていないことを確認する
リクエストは受理されたが予期した結果がない実行履歴を検査する。タスクステータス、Waker/WakerFlow の可用性、ローカルデバイスまたはディレクトリの依存関係を確認する
プレースホルダーが置換されなかったJSON のネスト、フィールド名の大文字小文字、配列インデックスをタスク説明と比較する
誤ったコンテキストが再利用された無関係な業務オブジェクトが 1 つの wakeSessionUniqueId を共有していないか確認する
リトライで重複実行が発生した呼び出し側に重複排除を追加する。wakeSessionUniqueId をべき等性キーとして扱わない
エンドポイントが漏洩した場合は、API トリガーを削除して再追加し、新しいエンドポイントを取得してください。PAT も漏洩した場合は、失効させて再作成してください。

WakerFlow を実行する

Run WakerFlow を選択すると、ページにワークフローステージとランタイムパラメーターが表示されます。
  1. すでに手動実行を通過済みの WakerFlow を選択します。
  2. フェーズと人間の確認ノードをレビューします。
  3. すべてのランタイムパラメーターに対してオーバーライド方法と値を設定します。
  4. 必須フィールドと出力の互換性を検証します。
ワークフローの入力が変更された場合は、そのワークフローを使用するすべての自律タスクを開き直してください。既存のマッピングは自動的に正しいものにはなりません。

ワークスペースを設定する

ワークスペース用途要件
Default固定ファイルのない作業ローカルリポジトリを前提としない
Local directory特定のマシン上のファイルデバイスがオンラインでディレクトリの権限が有効
Project管理されたリポジトリまたはドキュメント一式正しい可視性、ブランチ、書き込み範囲
自動化には誤ったパスをリアルタイムで修正してくれるオペレーターがいません。コード変更には、ブランチ戦略、テスト、出力先、禁止されるデプロイ操作を文書化してください。

詳細設定

  • Maximum runs: 無制限またはカスタム回数。上限に達するとタスクは一時停止します。
  • End date: 設定しないか、指定の日時。その日時のあとは新しいトリガーは開始しません。
一時的な移行、キャンペーン、リリース専用の作業には両方を使用してください。制限がサイクルの途中で作業を停止したり、一時的なタスクが無期限に実行され続けたりしないことを確認してください。

ロールアウト前にテストする

  1. Run now を使用して、実行主体、タスク説明、ワークスペース、能力を検証します。
  2. 直近のスケジュール、安全なイベント、API リクエストで実際のトリガーをテストします。
  3. トリガーソース、入力、現在のステップ、最終結果、成果物を検査します。
  4. リスクの高い操作が引き続き承認のために停止することを確認します。
  5. テストデータを削除してから、本番トリガーを有効にします。
手動実行は成功するのに自動実行が失敗する場合は、トリガー設定に注目してください。手動実行も失敗する場合は、Waker/WakerFlow、ワークスペース、権限、Skill、コネクタに注目してください。

実行記録を検査する

トリガーソースと時刻、入力、実行主体、ワークスペース、プロセスのステータス、最終結果、実際の成果物を確認してください。最終サマリーではなく、最初のエラーからトラブルシューティングを開始します。

編集、一時停止、コピー、削除

  • 既存のタスクを編集する際は、応答方法と選択された Waker または WakerFlow はロックされます。実行主体を変更するには、Copy を使い、新しいタスクを検証してから、古いタスクを一時停止または削除してください。
  • トリガー、モデル、ワークスペース、権限、コネクタを変更したあとは再テストしてください。
  • コピーしても、累積した実行回数や実行履歴はコピーされません。コピー後は、2 つのタスクが同じイベントを処理しないよう、名前、トリガー範囲、プロジェクト、モデル、トークンを確認してください。
  • 一時停止は新しい自動トリガーを防ぎますが、すでに進行中の実行は停止しません。
  • すべてのイベントトリガー型タスクが Run now に対応しているわけではなく、検証には外部ソースからの安全なイベントを使用します。
  • 削除の前に、必要な実行記録を保存し、外部システムがエンドポイントを呼び出さないようにしてください。

よくある問題

症状確認順序
スケジュールが実行されなかったステータス → 次回実行/タイムゾーン → 制限 → デバイス/ワークスペース
イベントが実行されなかったソースの認可 → オブジェクト → イベントタイプ → アクティビティ
API 認証またはペイロードエラー現在のエンドポイント → PAT → Content-Type → JSON フィールド
実行が即座に失敗するWaker/WakerFlow → ワークスペース → モデル → Skill/コネクタ
ワークフローパラメーターが空ワークフロー入力 → オーバーライド方法 → トリガーフィールド
完了したが成果物が誤っている実行詳細 → 説明 → 出力先 → 実際のオブジェクト