コンテンツへスキップ
Latchkey
ドキュメントメニュー

AI最適化インサイト

Latchkeyがワークフロー最適化の推奨事項を自動的に生成する仕組みと、それらをプルリクエストとして適用する方法。

Optimization Insights ページ
Optimization Insights: 信頼度スコア付きのAI推奨事項を、ワークフローごとに。

LatchkeyのAIは、監視中のワークフローを継続的に分析し、ワークフローごとに具体的な推奨事項を生成します: キャッシュの改善、冗長なステップ、ランナーの適正なサイズ調整、信頼性の修正など。それらを Optimization Insights ページでレビューし、望むものをプルリクエストとして適用します。

ライフサイクル#

01CIイベントバックフィル完了、ワークフロー編集、繰り返す失敗、コスト急増、または速度低下
02AI分析エージェントがKnowledge Baseをコンテキストとしてワークフローを分析します
03あなたがレビュー推奨事項が信頼度スコア付きでこのページに現れます
04PRとして適用Latchkeyが選択した変更を含むプルリクエストを開きます
05GitHubでマージあなたがレビューしてマージし、Latchkeyが修正を適用済みとして追跡します

このライフサイクルの重要な性質: あなたがそう決めるまで、リポジトリでは何も変わりません。AIは提案します。すべての変更はあなた自身がレビューしてマージする通常のプルリクエストとして出荷されます。

推奨事項が生成されるとき#

生成は自動でイベント駆動です。押すボタンはありません。エージェントは次のときに実行されます:

  • 新たに監視したリポジトリの初回バックフィルの後。
  • 分析ブランチ上でワークフローファイルが変更されたとき。
  • ワークフローが連続する繰り返しの失敗に見舞われたとき(これは診断分析も引き起こします)。
  • コスト急増時(直近の平均をはるかに上回るコストの実行)。
  • パフォーマンス低下時(直近の平均よりはるかに長くかかる実行)。

分析の実行中は、処理バナーがページに表示されます。新しい推奨事項は、そのタイプを有効にしていれば通知も引き起こします。

5つの推奨カテゴリー#

costCostキャッシュ、ランナーの適正なサイズ調整、冗長な作業: 支出を削減する変更。
performancePerformanceビルド時間を短縮する並列化とパイプラインの変更。
reliabilityPlatform不安定または脆いワークフローパターンに対するリトライ、タイムアウト、レジリエンスの修正。
securitySecurityリスクのあるワークフローパターンと、引き締める価値のある権限。
diagnosticDiagnosticパイプラインが失敗し続けるときに生成される根本原因の分析。

各推奨事項は具体的です。たとえば "ビルドジョブにnpmキャッシュを追加する" や "GitHub ActionsをコミットSHAに固定する" など。各カテゴリーが生成するものの例:

カテゴリー推奨事項の例
Costランナーの適正なサイズ調整、並行実行と cancel-in-progress、パスフィルター、重複ジョブの削除、依存関係Dockerレイヤーのキャッシュ、アーティファクトの保持
Performanceジョブとステップの並列化、マトリックスの調整、依存チェーンの平坦化、ビルドキャッシュ、条件付き実行、fail-fast
Platform (信頼性)リトライ設定、タイムアウトの調整、不安定なテストの検出、メモリ不足やディスク逼迫に対するリソース制限
Security過剰な権限、固定されていないアクション(統合された1つのSHA固定推奨事項)、ログでのシークレット露出、pull_request_target のリスク、スクリプトインジェクション
Diagnosticパイプライン失敗後に提案される根本原因の修正。下記の失敗診断を参照

ページの読み方#

  • Optimization Overview: 優先度の件数(High、Medium、Low)、推奨タイプの分布、月あたりの推定節約額を伴う健全性バッジ。
  • リポジトリ別・ワークフロー別の Top Optimization Opportunities
  • Insight Severity DistributionInsight Resolution Rate
  • AI Optimization Insights テーブル: ワークフローごとにグループ化された推奨事項。それぞれに信頼度スコアが付きます。
  • Trends: 時系列で生成されたインサイトと、信頼度スコアの傾向。

信頼度スコアの扱い方#

すべての推奨事項は0-100%の信頼度スコアを持ち、セグメント化されたゲージと色分けされたバッジで表示されます: 信頼度80%以上で High、50%以上で Medium、50%未満で Low。実用的な扱い方: スコアは、推奨事項が読むに値するかどうかではなく、あなた自身のレビュー労力をどれだけ割くべきかを決めるものです。

高い信頼度

  • まとめて選択し、1つのPRで出荷するのに適した候補
  • 通常は素早くレビューして安全: 変更の意図が明確です
  • それでもPR上で差分を読むこと。高い信頼度はマージの指示ではありません

低めの信頼度

  • 完成したパッチではなく、十分な情報に基づく指針として扱う
  • 効果を帰属しやすいよう、1つずつ適用する
  • 選択する前に、ワークフローについて自分が知っていることと突き合わせる

スコアに加えて、各推奨事項には詳細な説明、実装手順、裏付けとなる証拠、既知のリスクが付いています。コストとパフォーマンスの推奨事項には、所要時間、実行あたりコスト、成功率、ランナーをカバーする Current State vs Optimized State の比較と、Potential Savings の数値(月あたりのドル、実行あたりの節約時間、短縮率)が加わります。行動する前に、変更をマージする価値がわかります。

ここであなたが操作できるレバーが1つ: エージェントはあなたの Knowledge Base をコンテキストとして分析するので、ランブックや慣習をアップロードすることで、エンジニアが変更を提案する前に欲しがるであろう真実の情報をより多く与えられます。

レビュードロワーの中#

ワークフローで View Insights をクリックすると、全画面のレビュードロワーが開きます。2つのタブがあります: カードごとのレビューと、最終ファイルプレビューです。カードごとのビューは、3つのセクションで各推奨事項を順に案内します:

  • Best Practice Insights: 自動のYAML編集として表現できない助言。各項目を "I've done this" または "Not relevant" としてマークします。
  • Code Change Insights: 各変更はインライン差分ブロックとして描画され、削除行は赤、追加行は緑で表示されます。変更ごとに "Apply with Latchkey" または "Skip this" を選びます。一緒に出荷する必要があるリンクされた変更には Group バッジが付き、1つを受け入れるとグループ全体を受け入れます。
  • Changes Requiring Manual Placement: 分析後にワークフローファイルが変更された場合、自動で配置できなくなった変更がここにフラグされます。"I'll apply this" を選び、手作業で対応します。

右側の AI Insights Breakdown パネルは、選択した推奨事項の完全な詳細を、前へ・次への操作、状態比較、節約額、信頼度ゲージとともに表示します。ドロワーのヘッダーは AvailableAcceptedDeclined の推奨事項の集計を随時保持し、フッターは Cancel、Select All、Apply を提供します。

Final file preview タブは、あなたが受け入れた変更だけを反映した提案ファイルそのものを描画するので、リポジトリに何が入るかを正確に確認できます。実質的な効果: チームメイトのPRをレビューするのと同じように、完全なコンテキストとともに1行ずつAIの変更をレビューできます。

推奨事項をPRとして適用する#

ワークフローを開く

インサイトテーブルのワークフローで View Insights をクリックし、そのレビュードロワーを開きます。

望む推奨事項を選択する

各変更を1つずつ受け入れるかスキップし、ベストプラクティスの項目を完了または非該当としてマークし、最終ファイルプレビューを確認します。ヘッダーの集計が受け入れた内容を追跡します。

適用する

Latchkeyは分析ブランチから現在のワークフローファイルを読み、受け入れた変更をコミットし、latchkey/optimize-... という名前のブランチ上に "latchkey AI: Optimize <workflow> workflow" というタイトルのプルリクエストを開きます。成功バナーが新しいPR番号、適用された推奨事項の数、View PR リンクを表示します。

GitHubでレビューしてマージする

PRは他のものと同じように、あなたがレビュー、編集、マージするものです。自動でマージされるものはありません。マージすると、Latchkeyは修正を適用済みとして記録します。

役立つドロワーの習慣#

ドロワーが提示するすべてを一度に適用する必要はありません。推奨するリズム: まず高信頼度の推奨事項を選び、小さくレビューしやすい1つのPRとして出荷し、その後、低信頼度の項目を1つずつ戻ってきて対応します。小さなPRはレビューされマージされます。ワークフローの半分を書き換える単一のPRは滞りがちです。

それが起きても、一覧の項目は失われた作業ではありません: 開かれたPRはあなたが編集するものなので、推奨事項が何をなぜ変えるかの説明を指針として、残りの変更を同じブランチに手作業で配置できます。

推奨事項が解決される仕組み#

インサイトの一覧はそれ自体で最新に保たれます。推奨事項は次のときに解決されます:

  • PRフローを通じて適用し、変更をマージしたとき。
  • 手作業で問題を修正したことをLatchkeyが検出したとき。
  • 助言がもはや当てはまらないようにワークフローが変わったとき。古い推奨事項は自動的に解決され、再浮上しなくなります。
  • (診断インサイトについて)繰り返す失敗が再発しなくなったとき。

結果として信頼できる一覧になります: 未対応の項目は本物で、すでに解決した問題の助言をかき分ける必要はありません。

失敗診断#

パイプラインが失敗すると、診断エージェントが自動的に開始します: 設定するものも、手作業で引き起こすものもありません。失敗したジョブのログを読み、失敗したワークフローファイルを同じブランチの最後に成功した実行と比較し、正確なエラー箇所を特定します。結果は3つの問いに答える Diagnostic インサイトとしてこのページに届きます: 何が壊れたか、なぜ壊れたか、どうすべきか。

各診断は失敗を9種類のいずれかに分類します: ビルドエラー、テスト失敗、依存関係の問題、環境エラー、タイムアウト、リソース制限、設定エラー、外部サービス、または不安定なテスト。失敗が繰り返しか一度きりかをフラグし、すべての推奨事項と同様に信頼度バッジを持ちます。

分析の実行中、ページ上部のライブバナーが何が起きているかを表示します: "Diagnostic agent is investigating a pipeline failure" のような見出し、"Finding root cause" や "Generating recommendations" のようなステージラベル、そして進捗バーです。診断の準備ができると、根本原因の要約と提案された修正の数とともに通知されます。

修正がワークフローのYAML変更として表現できる場合、他のすべての推奨事項と同じドロワーで、差分を目の前にしてレビューできる適用可能な変更が得られます。人手が必要な場合は、代わりに手動の手順が得られ、静かに誤適用されないよう明確に区別されます。

診断と自己修復#

自己修復

  • ジョブがまだ実行中の間、実行時に作用します
  • マージするPRなしに、Latchkeyランナー上の環境失敗を修正します
  • コードの本物の欠陥は手を加えられず通過するので、テストは正直に失敗します
  • 今日のビルドを生かし続けます

失敗診断

  • 実行後に、あらゆる失敗したパイプラインに作用します
  • 根本原因を名指しし、持続的な修正を提案します
  • あなたが自分のペースでレビューして適用します
  • 失敗が戻ってくるのを止めます

この2つは冗長ではなく補完的です: 自己修復は進行中の実行を救い、診断は同じ失敗が起き続けないようにします。

FAQ#

なぜまだインサイトがないのですか?

生成はイベント駆動で、リポジトリの初回パスは初回バックフィルの完了後に実行されるので、新たに有効化したリポジトリは何かを生成するまで少し時間がかかります。まずバックフィル進捗バナーを確認してください。また、分析されているブランチも確認してください: Monitoringモーダルにはリポジトリごとのブランチセレクターがあり、AIはそのブランチを分析します(既定ではリポジトリの既定ブランチ)。リポジトリの管理を参照してください。

分析はどれくらいの頻度で実行されますか?

スケジュールもボタンもありません。エージェントは何かが起きたときに実行されます: 初回バックフィルの後、分析ブランチ上でワークフローファイルが変わったとき、連続する繰り返しの失敗時、コスト急増時、またはパフォーマンス低下時。分析の実行中は処理バナーがページに表示されます。

Latchkeyが私なしでワークフローを変えることはありますか?

ありません。すべての変更は、あなた自身がレビュー、編集、マージするプルリクエストとして出荷されます。自動でマージされるものはありません。

推奨事項が生成された後にワークフローファイルが変わった場合はどうなりますか?

Latchkeyはまだきれいに収まるものを適用し、手動配置が必要な推奨事項を一覧表示します。PRはあなたが編集できる通常のブランチなので、残りの変更を手作業で加えられます。

ページを確認せずに新しい推奨事項を知るにはどうすればよいですか?

その通知タイプを有効にしていれば、新しい推奨事項は通知を引き起こします。チャネルとトグルについては通知を参照してください。