オートメーションとは、ワークフローに付けたトリガーです。ワークフローは何をするかを示し、オートメーションはいつ次のRunを開始するかを示します。
オートメーションは次を使います:
- ワークフロー(それを所有するエージェントを含む)
- オーナー(そのオートメーションチャットと接続済みアクセスが使われる)
- トリガー(スケジュール、接続済みサービスのイベント、受信Webhookなど)
毎回実行されるもの
発火するたびに、そのワークフローとオーナーのオートメーションチャットで新しいRunが始まります。発火のたびに新しいチャットが作られるわけではありません。同じメンバーが同じワークフローで所有するオートメーションは、そのオートメーションチャットを再利用します。
Runはワークフローの現在のインストラクションとトリガーのペイロードを使います。チャットは再利用されるため、以前のRunはそのスレッド履歴に残ります。タスクをステートレスに動作させたい場合は、ワークフローのインストラクションにその旨を書き、現在のイベントか明示的な時間枠だけを使うようOkouに指示します。
モデルはエージェントやワークフローではなく、オートメーションチャットのスレッドで選択されます。オートメーションチャットが最初に作られるとき、そのモデルはメンバーのデフォルト、次にワークスペースのデフォルトから始まります。以後の発火は、そのスレッドで選ばれたモデルを再利用します。
オートメーションチャットを開いて、そのRun、出力、表示されるエラーを確認します。失敗した発火はそこに残るので、ワークフロー、コネクタのアクセス、トリガーを修正して再実行できます。
トリガーリファレンス
ワークフロー上のオートメーションピッカーが、現在のワークスペースで作成できるものの正しい情報源です。一部のイベントタイプはワークスペースのフィーチャースイッチの背後で公開されるため、どこでも表示されるとは限りません。
スケジュール
| タイプ | 動作 |
|---|---|
| Scheduled | cronスケジュールとIANAタイムゾーンを使って、壁時計の時刻に実行します。 |
| Interval | Runの完了後に設定した間隔を待ってから、次のRunをスケジュールします。Run同士は重なりません。 |
| Once | 選択した日時に実行し、その後自分自身を無効化します。 |
保存する前に、オートメーションに表示されるタイムゾーンを確認します。壁時計のタイミングにはスケジュール型、完了後の間隔が重要なポーリングにはインターバル型を使います。
Gmail
| イベント | フィルター |
|---|---|
| New message | 任意のFrom、To、Cc、Subject、本文テキストのマッチャー。マッチャーがない場合は、すべての新着メッセージが対象になります。 |
| Label applied | Gmailラベル名1つ。 |
忙しい受信トレイで想定外のRun数にならないよう、まずは狭い新着メッセージフィルターから始めます。
GitHub
| イベント | 一般的なフィルター |
|---|---|
| Pull request | リポジトリ1つとアクション1つ: opened、reopened、closed、ready for review、converted to draft、synchronized、added to or removed from the merge queue、labeled、unlabeled。ベースブランチ、作成者、PR番号、ラベルで絞り込みます。closedでは、mergedをclosed without mergingと区別できます。 |
| Workflow run completed | リポジトリ、ワークフロー、conclusion、ブランチ、トリガーイベント、actor。 |
| Workflow job completed | リポジトリ、ワークフロー、ジョブ、conclusion、ブランチ、ランナーラベル、ランナーグループ。 |
| Pull request review submitted | リポジトリ、レビューステート、ベースブランチ、ヘッドブランチ、信頼できる作成者。 |
| Deployment status created | リポジトリ、環境、ステート、ref、作成者、アプリ、本番環境フラグ。 |
| Issue or pull-request comment created | リポジトリ、Issue/PRスコープ、信頼できる作成者、コメント接頭辞。 |
GitHub label appliedという個別イベントはありません。PRラベルに反応するには、Pull requestを選び、Labeledアクションを選び、ラベルフィルターを追加します。
Google CalendarとMeet
- Calendar event created、updated、cancelled(選択したカレンダーIDにスコープ)
- Google Meet transcript generated(接続済みメンバーが主催する会議向け)
チャットとその他の連携
- Chat run finishedは自分のチャットスレッドの1つを監視します。completed、failed、cancelledのステータスで絞り込め、完了したRunでは最終返信に対する大文字小文字を区別しない
*ワイルドカードで絞り込めます。 - Webhook receivedは署名付きの受信URLを作成し、ワークスペースのプランにWebhookオートメーションが含まれる場合に利用できます。
- Google Forms response submitted、Notion page/database events、Strapi entry published、Stripe invoice paidは、それらのオートメーション機能が有効なワークスペースでのみ表示されます。
イベントオートメーションには、オートメーションのオーナーが該当するコネクタまたは連携を接続済みで利用可能な状態にしておくことも必要です。
オートメーションの作成
うまく動くチャットから。 まずタスクを一度だけ実行します。望む結果になったら、こう言います:
"Run this every weekday at 8 a.m. Los Angeles time and DM me the result."
Okouがワークフロー、頻度、送信先を確認し、ワークフローがまだなければ保存し、オートメーションを付けます。
明示的に。 ワークスペースでワークフローを開き、トリガータイプとそのフィルターを選んでオートメーションを追加します。形を事前に把握していてドライランをしたくない場合に便利です。
オートメーションは削除せずに個別に有効化・無効化できます。休暇前や、うるさいトリガーをデバッグするときに適した手段です。
送信先
オートメーションは結果の送り先を知る必要があります。ワークフローのインストラクションに明記します:
- SlackチャンネルまたはDM — 最も一般的。チャンネルにメッセージまたはスレッドとして届く
- FeishuまたはMicrosoft Teams — そこを主に使うチーム向けの同じ考え方
- Telegramまたはテキストメッセージ — 個人向け、モバイルファーストの通知
- Notionページまたはデータベース — ブロードキャストよりアーカイブすべきもの向け
- Google DocまたはSheet — 追記または上書き
- GitHubのIssueまたはPRコメント — エンジニアリングのワークフロー向け
- Gmailの下書き — あなたが確認して送信できるようアカウントに準備される
- ホストされたページ — Hosted sitesを参照
- ワークスペースのファイル — 成果物が動画、画像、ダウンロード可能なアセットの場合
"Post to #engineering" や "DM me" は、"send it somewhere." より明確です。
運用のヒント
本番でオートメーションを動かした経験から:
- 最初の3回のRunを監視する。 オートメーションの設定は簡単。実際にOkouが自分の環境で何を生成するかを見れば、さらに洗練しやすい。
- タスクは小さく保つ。 長く多段階のオートメーションは壊れやすい。1つで5つのシステムを更新するなら、2つに分けることを検討する。
- 送信先を固定する。 チャンネルは改名され、人は去る。ワークフローのインストラクションに送信先を明示する。次のRunで見つからない場合、Okouが警告する。
- 長期間のクエリは時間を区切る。 プロンプトが「直近30日」を求めるなら、毎回それを明記して窓を最新に保つ。
- タイムゾーンを確認する。 スケジュール型と一度きりのオートメーションは明示的なタイムゾーンを保存する。保存前に表示値を確認する。
- 休暇前に一時停止する。 特にDMを送るオートメーションでは、14件の短いDMで戻るのは役に立たない。オートメーションを無効化し、戻ったら再有効化する。ワークフローはそのまま残る。
コストと量
オートメーションの発火は通常のRunを開始し、モデルのルートと使うサービスに応じてクレジットを消費し得ます。コストを見積もるときはオートメーションチャットとBillingを確認します。
短い間隔はすぐに増えます。15分間隔は、各Runが次の間隔までに終われば1日最大96回実行され得ます。広いイベントフィルターも同様にうるさくなります。まず狭く始め、最初の数回の発火を確認してから、フィルターや頻度を意図的に広げます。
ワークフローや履歴を削除せずに新しい発火を止めたい場合は、オートメーションを無効化します。
次へ
- オートメーションが実行する手順についてはWorkflowsを参照。
- 各Runの内部で何が起きるかはChatを参照。
- ワークフローとオートメーションの組み合わせ5例はExample workflowsを参照。