はじめに
Azure SRE Agent では、ユーザーが特定のタスクを実行するための特化したエージェントを、カスタムエージェントとして定義・作成することができます。
本記事では、カスタムエージェントの定義方法から実際の活用方法まで、詳しく解説します。
カスタムエージェントとは
カスタムエージェントは、ユーザーが入力した特定のタスクを実行するために特化したエージェントです。
標準的なSREエージェントではカバーしきれない、特殊な役割や機能を必要とする場合に活用します。
カスタムエージェントの定義方法
カスタムエージェントは以下のようにYAML形式で定義できます。
name: database_expert
system_prompt: |
You are a database specialist. Analyze query performance,
diagnose connection issues, and recommend optimizations.
handoff_description: Handles SQL and database troubleshooting
tools:
- execute_kusto_query
- azure_cli
connectors:
- azure_sql
enable_skills: true # Can use skills for additional expertise
定義要素の説明
| 要素 | 説明 |
|---|---|
name |
カスタムエージェントの識別子 |
system_prompt |
カスタムエージェントの役割や動作を定義するプロンプト |
handoff_description |
オーケストレーターがこのカスタムエージェントにタスクを委任する判断基準となる説明文 |
tools |
カスタムエージェントが使用できるツール(azコマンド、外部APIなど) |
connectors |
接続するAzure リソースやサービス |
enable_skills |
有効にするとカスタムエージェントがスキルに動的にアクセス可能 |
重要な注意点
SRE エージェントのカスタムエージェントは、Claude Code のサブエージェントとは異なり、使用するモデルを指定することができません。
カスタムエージェントの活用方法
チャットで使用する
SRE エージェントのチャットに /agent と入力すると、作成済みのカスタムエージェントの一覧から、タスク遂行に必要なエージェントを選択することができます。
使用例:
/agent
→ カスタムエージェント一覧を表示
→ データベース診断エージェントを選択
→ 「クエリパフォーマンスを分析してください」と指示
スケジュールタスクで使用する
スケジュールタスクでカスタムエージェントを使用する場合、定義時に使用するエージェント名を指定します。
{
"name": "schedule-task",
"description": "毎時0時スケジュールタスクを実行",
"cronExpression": "0 15 * * *",
"agentPrompt": "アプリケーションのログを調査",
"agent": "hogehoge-agent"
}
設定要素:
cronExpression: 実行スケジュール(cron形式)agentPrompt: エージェントへの指示内容agent: 使用するカスタムエージェント名
レスポンスプランで使用する
インシデント対応を自動化するレスポンスプランでも、カスタムエージェントを指定できます。
{
"id": "response-plan",
"name": "Response plan",
"priorities": ["Sev0", "Sev1", "Sev2", "Sev3", "Sev4"],
"titleContains": "",
"handlingAgent": "hogehoge-agent",
"agentMode": "autonomous",
"maxAttempts": 3
}
設定要素:
priorities: 対象とするインシデントの優先度titleContains: 対象アラートのキーワードhandlingAgent: 使用するカスタムエージェント名agentMode:autonomous(自動実行)またはinteractive(対話型)maxAttempts: 最大試行回数
実装例
シナリオ:データベースパフォーマンス診断エージェント
以下のようなカスタムエージェントを定義することで、データベースの問題を自動診断できます。
name: db_performance_analyzer
system_prompt: |
You are a database performance specialist. Your role is to:
1. Query Azure SQL Database for slow query logs
2. Analyze execution plans
3. Identify missing indexes
4. Recommend optimization strategies
5. Generate performance reports
handoff_description: Diagnoses and optimizes SQL database performance issues
tools:
- execute_kusto_query
- azure_cli
- sql_server_management
connectors:
- azure_sql
- azure_monitor
enable_skills: true
このエージェントは以下の場面で活用できます:
- 定期監視: 毎日深夜にスケジュール実行して、パフォーマンス低下の早期発見
- インシデント対応: アラート検知時に自動的に診断スクリプトを実行
- チャット相談: ユーザーが具体的なクエリの相談をする際に専門的なアドバイス
ベストプラクティス
1. 明確な責務定義
system_prompt と handoff_description は、エージェントの役割を明確に定義してください。オーケストレーターが適切にタスクを委任できるようになります。
❌ 悪い例:
handoff_description: "いろいろなことができます"
✅ 良い例:
handoff_description: "SQL クエリのパフォーマンス分析と最適化提案"
2. 必要最小限のツール付与
セキュリティと誤動作防止のため、実際に必要なツールのみを指定してください。
❌ 危険:
tools:
- all_tools
✅ 安全:
tools:
- execute_kusto_query
- read_azure_resources
3. コネクターの適切な指定
使用するAzure リソースやサービスは、connectors で明示的に指定します。
connectors:
- azure_sql # 診断対象のSQL Database
- azure_monitor # ログ収集
- azure_application_insights # トレース情報
参考リソース
おわりに
カスタムエージェントは、Azure SRE Agent の拡張性を最大限に活かすための強力な機能です。
明確な責務定義と適切なツール・コネクターの設定により、運用タスクの自動化と専門性の両立が実現できます。
自組織の運用課題に合わせて、カスタムエージェントを設計・活用することで、より高度で効率的なSRE運用が可能になるでしょう。