オートメーション
Letaido が定期的にどのように動作するか。2 種類あります。1 つはエージェントがあなたのために構築した小さなプログラムを実行するもの、もう 1 つはエージェントを起動してエージェント自身に作業を実行させるものです。
やりたいことと実行タイミングを説明すると、エージェントが自動化を作成し、スケジュールを選択して、一度承認を求めた後、それ以降は自動的に実行します。各実行の出力(stdout、stderr、終了コード)は保存されるため、後で確認できます。
2 種類の自動化
1. スクリプト化された自動化
エージェントは一度小さなプログラムを作成し、スケジュールに従って実行します。高速で安価、かつ予測可能です。実行ごとにステップは変わりません。タスクが機械的で、毎週の出力が同じ形式である場合に使用してください。
依頼例:
- 「毎週月曜日の午前9時に、先週のキーワードの変動を取得して、Slack で DM してください。」
- 「毎月1日に、先月のデータをレポートアーカイブにアーカイブしてください。」
- 「1時間ごとに、ブランドレーダーのキャッシュを更新して、ダッシュボードが即座に読み込まれるようにしてください。」
2. エージェントの自動化
保存されたプログラムを実行する代わりに、スケジュールはエージェントを書かれた指示(プロンプト)で起動します。エージェントは毎回それを新たに読み込み、現在ワークスペースにあるものを確認し、チャットでのやり取りと同じように行動を決定します。
作業に判断が必要な場合、実行ごとに状況が変化する場合、またはエージェントに毎サイクル小さな改善を行わせ、それらの改善を時間とともに積み重ねたい場合に使用します。
依頼例:
- 「毎日 9 時(UTC)に、ワークスペースで変更された内容を確認し、チームの Wiki を更新する。」(これは上記のリストにある Wiki 同期自動化で、次のセクションで説明します。)
- 「毎週金曜日の午後に、今週の競合データを確認し、月曜日に注目すべき内容を教えてください。」
- 「毎週月曜日に、このランディングページの下書きを確認し、最も大きな改善点を 1 つ見つけて適用する。」数週間実行すると、ページが自動的に書き換えられます:多数のサイクル後に何が起こるかを見る。
注意: Agent の自動化は、スクリプト化されたものよりもコストがかかります(実行ごとに LLM 呼び出しが発生し、単純な Python ではありません)が、スクリプトでは決して処理できない作業を処理します。
管理された自動化(Letaido によってプリインストール済み)
一部の自動化は、すべてのワークスペースにプリインストールされており、Letaido が改善するたびに最新の状態に保たれます。最初のマネージド自動化は Wiki 同期です。これは Agent の自動化で、毎日実行され、新しいチャットセッション、ファイル編集、アップロードを要約することで、ワークスペースの長期記憶を ~/workspace/wiki/ に最新の状態で保ちます。
wiki/ フォルダは、ワークスペースの長期記憶の概念実証です。エージェントが決定事項、固有名詞、規約、最近の作業を記録する場所であり、将来のチャットが過去のチャットの続きから始められるようにします。Wiki 同期は、更新を覚えておく必要なく、常に最新の状態を保つ機能です。
管理された自動化は、自動化タブでプリインストール済みとしてマークされており、デフォルトでは読み取り専用です。カスタマイズしたい場合は、カスタマイズをクリックして、編集可能なコピーにフォークしてください。フォークしたものはワークスペースに残り、オリジナルは Letaido のアップデートとともに実行され続けます。
トリガー(近日公開)
現在、すべての自動化は cron によってトリガーされています。次の波ではイベント駆動型トリガーが追加され、接続されたアプリで何かが発生したときに自動化を起動できるようになります。たとえば、新しい GitHub PR が開かれたとき、HubSpot の取引がクローズドウォンに移動したとき、特定のチャンネルに Slack メッセージが投稿されたときなどです。
これにより、次のようなパターンが可能になります。
- 「メインリポジトリで新しい PR が開かれたら、Claude Code と Codex を起動してセキュリティレビューを実行し、共同サマリーを #engineering に投稿してください。」
- 「Slack の #incoming-leads に誰かが投稿したら、その会社を Ahrefs で調べて、4 行のコンテキストサマリーで返信してください。」
それまでの間、Webhook キューをポーリングする Scripted オートメーションと、Webhooks & triggers で説明されているサブスクリプションを組み合わせることで、今日からサードパーティのイベントに対してアクションを実行できます。Slack、GitHub、HubSpot、Linear、Notion、Webflow、その他十数社のプロバイダーがすでにそのキューにイベントを配信しており、cron でスケジュールされたスクリプトがそれらを取得してアクションを実行します。
自動化を依頼するタイミングと単発作業を依頼するタイミング
依頼の形式を見れば、どちらが必要かわかります。
- 「毎週月曜日」「四半期ごと」「X が発生するたびに」と言う場合:自動化。
- 「今週の月曜日」「今すぐ」「この 1 つの URL に対して」と言う場合:1 回限りのチャット実行。
一方、ワンオフとは、今すぐ一度だけ実行したいものを指します。
- 「先週のデータを取得して、概要を教えてください。」
- 「この 100 個の URL リストを確認して、どれが 404 を返すか教えてください。」
承認とは何か
自動化が初めて登録されると、次の内容を含む承認カードが表示されます。
- 名前と1行の説明。
- スケジュール(cron 式)。
- 種類(スクリプトまたは Agent)。
- モデルとコンテキスト上限(Agent 自動化の場合)。
- スクリプト本文またはプロンプト本文。
オーナーまたは管理者が一度クリックするだけで、その後は自動化がスケジュールに従って実行されます。自動化タブから、一時停止、再開、手動トリガー(今すぐ実行)、カスタマイズ、または削除を行うことができます。
一般的なスケジュール
| 頻度 | Cron 式 |
|---|---|
| 5分ごと | */5 * * * * |
| 毎時00分 | 0 * * * * |
| 毎日9:00 UTC | 0 9 * * * |
| 毎週月曜日8:00 UTC | 0 8 * * 1 |
| 1日2回(午前9時、午後6時) | 0 9,18 * * * |
この環境では、Cron の時刻は UTC です。ローカルタイムゾーンが必要な場合、エージェントは年間を通じてローカル時刻にマッピングされる UTC 時刻を選択するか、ローカル時刻が適切な時間帯にある場合にのみ動作するスクリプト内の zoneinfo ガードを追加します。夏時間は厄介です。エージェントは、それが問題になる場合に通知します。
依存関係
自動化に未承認の Python パッケージまたはコネクタが必要な場合、エージェントは次のように動作します:
- 依存関係が存在するかどうかを確認します。
- 存在しない場合は、標準の承認フローを通じてインストールまたはコネクタの承認をリクエストします。
- オーナー/管理者の承認を待ちます。
- その後、自動化を登録します。
依存関係に対する承認カードが 1 つ、自動化に対する承認カードが 1 つ表示されます。エージェントは通常、関連するリクエストをまとめて処理するため、3 回クリックするのではなく、フロー全体に対して 1 回クリックするだけで済みます。
このワークスペースで実行されている自動化
Automations タブから、ワークスペース内のリストを確認できます。現在お読みいただいているドキュメントサイトは、そのうちの 3 つによって管理されています。
- Wiki 同期(毎日、Letaido が管理):新しいチャットセッション、ファイル編集、アップロードを読み取り、それらを
~/workspace/wiki/のワークスペース Wiki に要約する Agent 自動化です。これは、次の 2 つの自動化が依存する長期記憶です。 - Docs 同期(30 分ごと):
~/workspace/docs/から Markdown を読み取り、HTML にレンダリングし、公開サイトにプッシュする Scripted 自動化で、訪問者は 30 分以内に最新バージョンを見ることができます。 - Docs 自動更新提案(毎週月曜日 10:00 ヨーロッパ/ブカレスト時間):Wiki を読み取り、過去 1 週間にワークスペースで変更された内容をリストアップし、Andrei がレビューするために章ごとに具体的な編集を提案する Agent 自動化です。提案のみで、自動公開はありません。
制限
- 自動化の実行は1時間後にタイムアウトします。より長い作業は段階に分割し、中間状態をデータベースに書き込む必要があります。
- stdout と stderr は実行ごとに 50 KB に制限されています。それより大きいものはファイルまたはデータベース行に保存する必要があります。
- スケジュールは承認後にプラットフォームによって管理されます。スケジュールを変更するには、エージェントは新しい自動化を登録し、古いものを削除します。cron を黙って編集することはありません。
内部の仕組み。 各自動化は、プラットフォームの自動化テーブルの行と crontab エントリで構成されています。ランナーはスクリプトをシェル実行(スクリプト型)するか、保存されたプロンプトで新しい Agent A チャットを生成(Agent A 型)し、stdin/stdout/stderr をキャプチャし、実行 ID 環境変数を設定して、実行レコードを書き戻します。スクリプトがシステム全体にインストールされていないものをインポートした場合、実行は即座に失敗し、実行履歴に明確なエラーが表示されます。