ブログ AI修復

エンジニアリング制御を失わずに AI 修復を使用する方法

AI を使用して実稼働修正の草案を作成する一方で、証拠、レビュー、テスト、所有権をエンジニアの手に委ねる実用的なモデル。

AI 修復エンジニアリング制御コードレビュー生産上の修正インシデント対応

AI による修復は、自信があるように聞こえるだけでは信頼できるものにはなりません。証拠、所有権、レビュー、テスト、明確なマージ決定など、運用上の変更をすでに安全にしているエンジニアリング作業の部分を保存する場合、信頼性が高まります。

その区別が重要です。適切なコンテキストでプル リクエストを開くツールを使用すると、時間を節約できます。実稼働コードをサイレントに変更するツールは、チームに新たな運用リスクを受け入れるよう求めます。

境界線から始める

設計上の最初の決定は、どのモデルを使用するかではありません。それはモデルに許可されていることです。

ほとんどのチームにとって、安全な境界は次のようになります。

  • AI は生産信号を検査できます。
  • AI はこれらの信号をコードにマッピングできます。
  • AI はパッチを起草することができます。
  • AIは自分の推論を説明できる。
  • エンジニアは承認、編集、拒否、またはマージを行います。

これは依然として強力なワークフローです。システムの所有者から説明責任を遠ざけることなく、インシデント対応の退屈な部分を取り除きます。

「とにかく修正する」が間違ったデフォルトである理由

生産上の失敗は厄介です。同じエラーは、不適切なデプロイ、ガードレールの欠落、バックプレッシャーを必要とするキュー、顧客データのエッジケース、または上流プロバイダーの予想とは異なる動作を意味する可能性があります。

システムが症状からコード変更に直接移行すると、レビュー担当者は調査せずにパッチを入手します。彼らは、なぜパッチが存在するのかをリバースエンジニアリングする必要があります。そのためレビューが遅くなり、コードが合理的であっても自動化が危険に感じられるようになります。

より良いデフォルトは証拠を最初に用意することです。

本番環境の動作を示し、疑わしいコード パスを示し、提案された変更を示し、何が間違っている可能性があるかを示します。

最後の部分が重要です。証拠が部分的である場合、救済システムは確実性を装うべきではありません。不確実性を可視化する必要があります。

人間らしくあるべきコントロールポイント

チームが通常のワークフローで維持すべき決定事項がいくつかあります。

所有権と範囲

適切なコード所有者は、提案された修正がサービス境界に適合するかどうかを判断する必要があります。これにより、狭いインシデントが広範なアーキテクチャの変更に変わるのを防ぎます。

商品判定

一部の障害は技術的にパッチ適用が簡単ですが、製品に依存します。支払いの再試行バグ、権限のエッジケース、または請求状態の不一致には、コードを変更する前に製品コンテキストが必要になる場合があります。

テストの信頼度

AI はテストを提案できますが、信頼性が何を意味するのかはエンジニアが判断する必要があります。 1 つの修正には単体テストが必要です。もう 1 つはイベントの再生が必要です。もう 1 つは、移行チェックとロールバック パスが必要です。

マージの承認

マージの決定は、チームの既存のプル リクエスト プロセスに表示されたままにする必要があります。これにより、セキュリティ、コンプライアンス、所有権のポリシーがそのまま維持されます。

AIが絶対にやるべきこと

人間による承認を維持することは、ワークフローが臆病であることを意味するものではありません。人間が頻繁に繰り返す作業を AI が引き継ぐ必要があります。

  • 5 つの個別の調査を開始する代わりに、同様のエラー イベントをクラスタリングする
  • スタック トレースとノイズの多いログを 1 つの読みやすいインシデント ノートに要約する
  • 最も関連性の高いリポジトリ、ファイル、関数、および所有者の検索
  • 失敗を最近のデプロイおよびコード変更と比較する
  • 平易な英語の説明を含む最小限のパッチの草案を作成する
  • 提案されたテストまたはレビューチェックを追加する
  • コード以外のフォローアップを Jira、Linear、または GitHub の問題にルーティングする

ここからが時間の節約になります。査読者は、切断された信号の山ではなく、準備された事件ファイルから始めます。

プルリクエストはインターフェースです

エンジニアリング チームにとって、プル リクエストはすでにリスクを交渉する場所となっています。これには、差分、コメント、CI、所有権、承認履歴が含まれます。 AI 修復では、新しいサーフェスを作成するのではなく、そのサーフェスを使用する必要があります。

有用な修復 PR には以下を含める必要があります。

  1. 調査のきっかけとなったプロダクションシグナル。
  2. システムが責任があると考えるコード パス。
  3. 提案されたパッチ。
  4. パッチの背後にある理由。
  5. 実行された、または実行されるはずのテスト。
  6. 信頼水準と仮定。

この構造により、レビュー担当者は評価すべき具体的なものを得ることができます。彼らは、診断に同意しなかったり、パッチを改善したり、証拠が強力であればすぐにパッチを統合したりすることができます。

シンプルなポリシーモデル

チームは 3 つのポリシー レベルから始めることができます。

ドラフトのみ

システムはプル リクエストを作成できますが、レビューを自動的にリクエストすることはできません。これは、チームが信号品質を評価するための良い最初のステップです。

レビュー対応

システムはプル リクエストをオープンし、所有者を割り当て、証拠が強力な場合はレビューをリクエストできます。これは、ほとんどのチームが目指すべきデフォルトです。

制約された変更を自動マージする

システムは、厳格なポリシーに一致する、限定された元に戻せる変更のみをマージできます。これはまれであり、ログに記録され、簡単に無効にすることができます。

ほとんどの組織はレベル 3 から始める必要はありません。多くの場合、高価な部分は診断と最初のドラフトであるため、レベル 2 では意味のある価値が得られます。

誤った自信に注意

障害モードは抽象的には「AI が不正なコードを書き込む」というものではありません。より鮮明な故障モードは、証拠が薄い、洗練されたパッチです。

レビュー担当者は、システムが根本原因を見つけたのか、それとも単に近くにあるファイルを見つけたのかを判断できる必要があります。優れたワークフローでは、運用シグナルからコード変更までのチェーンが公開されます。ワークフローが弱いと、その連鎖が自信に満ちた要約の背後に隠れてしまいます。

証拠が弱い場合、ツールはそのことを通知し、問題を修正ではなく調査として転送する必要があります。

何が良いのか

優れた AI 修復は、上級エンジニアがレビューの前に準備作業を行ったように感じられます。プルリクエストは魔法ではありません。異常によく組み立てられています。

  • 問題は重複排除されています
  • 関連するログが要約されています
  • コードパスには名前が付けられています
  • パッチは小さいです
  • 理屈は見える
  • 査読者はまだ担当している

それがバランスです。 AI に捜査を圧縮させましょう。工学的な判断を失わせないでください。

ループを実行

本番環境のシグナルをレビュー済みの修正に変える。

無料トライアルで、Prilog が実際のインシデントをコードレベルの Pull Request に結びつける方法をご確認ください。