はじめに
Azure SRE Agent には、過去のインシデント対応やユーザーとのやり取りから学習した知識を蓄積し、次回以降の対応に活かす「メモリ」という仕組みがあります。
本記事では、メモリの種類や自動学習の仕組み、ユーザーメモリの操作方法、ナレッジベースとの違いについて解説します。
メモリ
メモリとは過去のインシデントで何が機能していたかなど、エージェントに蓄積することができる知識情報です。
メモリの種類
| 情報源 | 発見内容 | 最適な用途 |
|---|---|---|
| 過去のインシデント | 同様の問題を解決した手順 | 以前、どのようにこれを修正したのですか。 |
| ユーザーメモリ | 明示的に保存するファクト | “私の環境設定が使用することを覚えておいてください…” |
| ナレッジベース | アップロードしたランブックとドキュメント | “標準手順に従う” |
自動学習
SREエージェントはユーザーとの会話から自動で学習し、メモリに記録します。
スレッドが更新されなくなってから30分後、エージェントは会話を評価し、学習のインデックスを作成します。
プロアクティブな知識の永続化
完了したスレッドから学習するだけでなく、エージェントは会話中に重要と判断した知識をナレッジファイルに保存します。
ナレッジファイルは memories/synthesizedKnowledge/ 配下に保存され、次回セッション開始時に自動読み込み、より賢い回答を生成します。
ナレッジファイルの種類
| ファイル | 内容 | 文字数上限 |
|---|---|---|
overview.md |
サービスの概要とインデックス | 約2,000文字(常にコンテキストに読み込まれる) |
トピックファイル |
特定の主題に関する詳細な注意事項(例: aks-networking-gotchas.md) |
各1,000文字 |
team.md |
チームメンバー、役割、専門知識 | 最大500文字 |
architecture.md |
コンポーネント、接続、環境 | 最大1,500文字 |
logs.md |
ログソース、テーブル、キーフィールド、有用なクエリ | 最大1,500文字 |
deployment.md |
パイプラインの詳細、バージョン参照、ロールバックプロシージャ | 最大1,000文字 |
auth.md |
認証メカニズム、IDフロー | 最大800文字 |
debugging.md |
一般的な問題、トラブルシューティングガイド、Runbookリンク | 最大1,000文字 |
queries/*.md |
トピック別に整理された抽出クエリ | 各1,000文字 |
既存のナレッジを更新すると、エージェントは現在のファイルを読み取り、新しい情報をマージし、古くなったり正しくないものがあれば削除したりします。
ユーザーメモリ
エージェントが自動的に学習して永続化する以外に、エージェントが覚えておく必要がある個別のファクトを明示的に保存できます。
チャットでメモリコマンドを使用して、ユーザーメモリを管理します。
| 命令 | 動作内容 | 例 |
|---|---|---|
#remember |
将来の参照のためにファクトを保存する | #remember our Redis cache uses Premium tier |
#retrieve |
保存した思い出を検索する | #retrieve what's our caching setup? |
#forget |
保存されているメモリを削除する | #forget the outdated Redis info |
セッション分析情報
チャットや自動タスクのやり取り後に生成される「学習データ」から有用な知識を構造化して蓄積する機能です。
各分析情報で整理される内容
- 観察された症状: 発生したエラーや動作(例:HTTP503、メモリ使用率95%)
- 解決手順: 問題解決に有効だった対応(例:App Serviceのスケールアップ)
- 根本原因: 問題の発生理由(例:特定バージョンでのメモリリーク)
- 避けるべき落とし穴: 効果がなかった対応(例:再起動しても改善しなかった)
作成タイミング
- 同期チャット: 最後のメッセージから30分後(自動)
- 非同期タスク: 完了から30分後(自動)
- ユーザーフィードバック: 評価時に生成(手動トリガー)
「Monitor > Session Insight」で確認可能です。
ナレッジベース
ドキュメントをSREにアップロードしたり、WebページやGitHubなど外部ソースを接続させ、コネクタを介してSREエージェントにドキュメント参照させる機能です。
サポートされているファイル形式:Markdown、プレーンテキスト、PDF、Word、PowerPoint、Excel、画像など(ファイルあたり最大16 MB)
メモリは会話から得た傾向を蓄積させるような機能ですが、ナレッジベースはシステムのアーキテクチャ、APIドキュメント、運用手順書などの正式なドキュメントを明示的に知識として与えることができます。
アップロード vs コネクタ接続の使い分け
アップロードに向いているもの
更新頻度が低く、ある程度枯れている知識:
- インシデント実行計画書(Runbook)
- アーキテクチャ図
- エスカレーション手順
- 静的なAPIドキュメント
コネクタで接続すべきもの
頻繁に更新されるドキュメントやファイル:
- Wiki(Azure DevOps、GitHubなど)
- ソースコードリポジトリ
- リアルタイム監視データ
ナレッジのメンテナンス
古い情報は誤回答につながるため、定期的に見直す必要があります。
推奨ルール
- 四半期ごと(3ヶ月ごと)にレビュー
- 不要・古いドキュメントは削除
現在のナレッジを確認する場合の入力:
What knowledge documents do you have?
検索しやすいファイル名で指定する
ファイル名は検索性と回答精度に直結します。
❌ NG例: doc1.txt, runbook.md, notes.txt
✅ 推奨例:
production-database-failover.mdaks-cluster-scaling-runbook.mdescalation-procedures-2026.txt
おわりに
Azure SRE Agent のメモリ機能は、過去のインシデント対応やユーザーとのやり取りを自動的に蓄積し、次回以降の対応精度を高めていく仕組みです。
ユーザーメモリやナレッジベースと組み合わせて活用することで、より的確でスピーディなインシデント対応が可能になります。
定期的なナレッジのメンテナンスを心がけ、エージェントの回答精度を維持していきましょう。