Azure SRE エージェントでのエージェントの推論

エージェントは固定された脚本に従うのではなく、問題を理屈で解決します。 Deep Contextはコードベース、過去のインシデント、インフラから構築されるため、一般的なシステムではなく あなたの システムについて考えます。 チャットインターフェースでは、証拠収集、ツールの選択、行動リスクの分類、思考の説明を見ることができます。

推論ループ

すべてのメッセージは同じループをたどります。

エージェントの推論フローのスクリーンショット。要求の理解、コンテキストの収集、理由の収集、操作または応答。最大 10 回ループします。

エージェントはまずあなたのリクエスト を理解し 、必要なデータを特定します。 その後、ログ、メトリクス、リソースの状態、デプロイ履歴、メモリなどのデータソースを並列で問い合わせることでコンテキストを取得します。 次に、証拠を推 してパターンを特定し、結論を導きます。 最後に、安全な行動を実行したり、リスクの高い行動の承認を求めたり、調査結果を提示したりして 行動または応答 します。

問題にさらに多くの作業が必要な場合、ループはターンごとに最大 10 回繰り返されます。 その後、エージェントは続行するかどうかを確認します。

適応型思考

複雑な問題の場合、担当者はチャットでその理由を示します。 折りたたみ式の思考セクションには、「Azureの健康問題の探索」や「アクティブなアラートの分析」などの説明的なタイトルで各ステップと経過時間が記載されています。

推論ステップを示すアダプティブ思考のスクリーンショット。

エージェントは自動的にその論理の深さを調整します。 状態チェックは、迅速な応答を取得します。 多段階の障害は、情報源間の証拠を相関させるより深い理由付けを持ちます。

ディープ コンテキスト

適応的推論は、エージェントが環境内の情報を活用できると、より強力になります。 ディープコンテキストとは、エージェントがその環境について蓄積した理解のことです。 それは3つのコンテキストソースから来ています:コネクター、ナレッジ&メモリ、そしてワークスペースツールです。 毎回ゼロから始めるのではなく、エージェントがシステムがどのように機能しているかをより明確に理解し、その文脈を各推論ループに取り入れます。

Tip

  • 豊富なコンテキストにより、エージェントは一般的な Azure の知識だけでなく、お客様のコード、インフラストラクチャ、運用履歴に基づいて推論できます。
  • これは、3 つのコンテキストソース、コネクタナレッジとメモリワークスペース ツールから取得されます。
  • 接続されたソースコードリポジトリは、ワークスペースツールが有効化されているときにエージェントがコードベースの読み取り、検索、ナビゲーションを可能にします。

ファイル操作やターミナルコマンドにはワークスペースツールが必要です。 エージェント管理者に連絡するか、ポータルの 実験設定 ページから有効にしてください。 Pythonの実行はデフォルトでCode Interpreterを通じて利用可能です。 ワークスペースツールが有効になると、Pythonの実行はデフォルトのCode Interpreterセッションではなくワークスペースサンドボックスを通過します。

ディープ コンテキストは、有効にする 1 つの機能ではありません。 これらの文脈の情報源が連携することで、その成長が進みます。

文脈の出典 提供される内容 追加する方法
コネクタ GitHub、Azure DevOps、Kusto、Azure Monitor、その他のサービスからのライブデータ サービスデータソースを接続する。 「コネクタ」を参照してください。
知識と記憶 アップロードされたランブック、アーキテクチャドキュメント、チーム手順、ユーザーの好み、過去の会話の事実 知識をアップロードしたり、スキルを作成したり、エージェントに事実を覚えるように指示したりしましょう。 「メモリと知識」を参照してください。
ワークスペースツール ソースコードの読み取り、検索、分析、ターミナルコマンドの実行、サンドボックス化されたPythonの実行に直接アクセスできる リポジトリを接続し、 実験設定でワークスペースツールを有効にしてください。

ディープ コンテキストが重要な理由

あなたのチームの専門知識は多くの場所に存在しています。GitHubのソースコード、Azure Monitorのログ、YAMLファイル内の設定、時代遅れのウィキのランブック、そしてシニアエンジニアの部族的な知識などです。 事故の際に最も難しいのは、問題について理屈を考えることではないことが多いです。 開始するのに十分なコンテキストを収集しているところです。

深い文脈は、エージェントにこれらの情報源への継続的なアクセスを提供し、各やり取りから得た情報を記憶する手段を提供します。

Connectors

コネクターはライブサービスデータを推論ループに持ち込みます。 エージェントはGitHub、Azure DevOps、Kusto、Azure Monitorなどの接続されたソースを使って、一般的なAzure知識に頼るのではなく、環境に関する証拠を収集できます。

コネクタの中には、時間の経過とともにエージェントの理解を深めるものもあります。 Azure Data Explorer(Kusto)クラスターを接続すると、エージェントはデータベースやテーブルを発見し、各テーブルのスキーマをドキュメント化し、人間が読みやすい説明を書き、クエリガイダンス付きのKusto調査スキルを生成します。

知識と記憶

知識と記憶は、エージェントが会話を通じて持ち続ける持続的な文脈を提供します。 アップロードされたランブック、アーキテクチャガイド、チーム手順、スキル、覚えている事実が、エージェントがチームの運営方法を把握するのに役立ちます。

エージェントは学習内容を記憶します。 会話の後、ツールの成功率、根本原因、主要な学習内容、Azureサービス、症状などの構造化された側面を抽出します。 これらの側面は将来の調査のための持続的な知識となります。

会話の開始時に、エージェントは応答する前に 関連する 文脈を記憶から探します。

何に基づいているのか 推論を改善する方法
セッションの分析情報 過去の会話や他の利用可能なデータソースから学びます
同様の症状パターン 繰り返されるパターンを認識し、原因に早く到達します
アップロードしたランブックとドキュメント 一般的なアドバイスではなく、チームの手順に従います
ユーザー設定 環境コンテキストと応答の基本設定を記憶する

背景インサイト生成は過去の会話やその他の利用可能なデータソースを集約します。 セマンティックマッチングを用いて、時間をかけて運用上の洞察を生成、調整、洗練させます。

ワークスペースツール

ワークスペースツールはエージェントに接続されたリポジトリや実行環境への直接アクセスを提供します。 これらを有効にすると、エージェントはファイルの読み取り、コードの検索、プロジェクト構造の解析、ターミナルコマンドの実行、調査中にワークスペースサンドボックス内でPythonの実行が可能です。 Pythonの実行は、それ以外の場合はCode Interpreterを通じてデフォルトで利用可能です。

コードリポジトリに接続すると、エージェントは自動的にプロジェクト構造、技術スタック、デプロイ構成、サービス依存関係を分析します。 その後、リポジトリに SREAGENT.md ファイルを追加するPRが開きます。

コンテキストはいつでも追加できます。

  • リポジトリを接続する:GitHubやAzure Reposをリンクしてエージェントがソースコードを読み取れるようにしましょう。 「コネクタ」を参照してください。
  • ナレッジ ドキュメントのアップロード: Runbook、アーキテクチャ ガイド、チーム プロシージャを追加します。 「メモリと知識」を参照してください。
  • エージェントに覚えておくように伝えてください:チャットで #remember と入力して、エージェントが知っておくべき事実を保存してください。 「メモリと知識」を参照してください。
  • スキルの作成: ツールを使用してトラブルシューティング手順をパッケージ化します。 「スキル」を参照してください。

ランブックやアーキテクチャドキュメント、チーム手順など、知識を多く提供すればするほど、その論理はより関連性が高くなります。 詳細については、「 メモリと知識」を参照してください。

セキュリティ

エージェントがファイル操作やターミナルコマンドを使う、またはPythonの実行をワークスペースサンドボックスにルーティングするには、Experimental Settingsを通じてワークスペースツールを有効にしなければなりません。 Pythonの実行自体はデフォルトでCode Interpreterを通じて利用可能です。 コードの実行は、設定されたサンドボックスモードによっては、エージェントホストとは別にサンドボックスまたは隔離されたセッションで実行されます。 Azure CLIの書き込みコマンドは、実行前に明確なユーザー承認が必要です。

ツールの選択

その文脈が整った上で、エージェントは問題に基づいてツールを選択します。 現在のカスタム エージェントに登録されているすべてのツールから始まり、接続されたインシデント プラットフォームのインシデント ツールのみを使用して、プラットフォームでフィルター処理します。 公開されたリストによってさらにフィルター処理し、利用可能なツールのみが含まれるようにし、会話中に新しい情報が登場すると、それに応じて調整します。

各カスタム エージェントには、独自のツール セットがあります。 エージェントが別のカスタム エージェントに委任されると、使用可能なツールが自動的に変更されます。

使用可能なツールの詳細については、「 ツール」を参照してください。

並列実行

エージェントが独立した操作、つまり互いの出力に依存しないアクションを識別すると、一つずつ実行するのではなく、一ターンで同時に実行します。

たとえば、エージェントがポッドの状態、サービスの正常性、デプロイ履歴を確認する必要がある場合は、次のコマンドを開始する前に各コマンドが完了するのを待たずに、3 つのコマンドすべてを並列で実行します。 このアプローチは推論のターンを減らし、調査を迅速化します。

ツールレベルのプロンプトは、モデルに「コマンドが独立していて並列実行できるなら、1つのメッセージで複数のツール呼び出しを行う」と指示することで並列実行を導きます。

アクションの分類

エージェントは実行前にすべてのアクションを分類します。

分類 行動 例示
安全 すぐに実行されます ログのクエリ、リソースの状態の確認、デプロイの一覧表示
慎重 簡単な説明を使用して実行します メールの送信、Teams メッセージの投稿
破壊的な 確認が必要です アプリの再起動、リソースのスケーリング、構成の変更

エージェントが各種類を処理する方法は 、実行モードによって異なります。

実行モード Safe 慎重 破壊的な
レビュー 実行する 実行する 承認を求める
自律 実行する 実行する 実行する

会話管理

長い会話を軌道に保つ仕組みはいくつかあります。

メカニズム 動作内容
圧縮 会話が長くなる場合、エージェントは主要な結果を保持しながら、以前のコンテキストを要約します。 このアクションは、 /compact コマンドを使用して手動でトリガーできます。
自動再試行 応答の途中でサービス中断が発生した場合、エージェントは自動的に再トライします。
エラー処理 モデルが一時的な問題に遭遇した場合、エージェントは一般的な内部エラーの代わりに明確なメッセージ(「モデルが一時的に問題を抱えています」)を表示します。

キャンセル

停止を選択すると、エージェントはすべての操作を停止し、キャンセルされたタスクの再試行を阻止します。 次のメッセージは、キャンセルされたリクエストを明示的に修正しない限り、新たに始まります。

Boundaries

理屈には限界があります。

推論とは何か それが行わないこと
複数のソースから証拠を並列に収集する 証拠が不十分でも根本原因を見つけることを保証する
アクションを分類し、実行モードを尊重する レビュー モードで確認なしで自動修復する
その思考を段階的に説明する 個別のエージェント間で調査手法を共有する
推論の深さを問題の複雑さに調整します 重大な意思決定のための人間の判断を置き換える

次のステップ