はじめに

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_prompthandoff_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運用が可能になるでしょう。