本サイトでは、文章の一部の生成系AIを活用しています。また、一部の記事にはアフィリエイトリンクを設定しています。

はじめに

Azure SRE Agent は、ポータルからの操作だけでなく、REST APIを使ってSkills(スキル)、KnowledgeItem(ナレッジ)、ScheduledTasks(定期実行タスク)を登録・更新することができます。
本記事では、それぞれの登録APIのリクエストフォーマットと、実際の実装例を解説します。


Skills登録API

Skillsは、エージェントに特定の作業手順やノウハウを教えるための拡張機能です。
API経由で登録することで、GUI操作なしにスキルの追加・更新を自動化できます。

エンドポイント

PUT {AgentEndpoint}/api/v2/extendedAgent/skills/{URLエンコードしたスキル名}

ヘッダー

ヘッダー名
Authorization Bearer <DataPlaneトークン>
Content-Type application/json

リクエストボディ

{
  "name": "スキル名",
  "type": "Skill",
  "tags": [],
  "properties": {
    "name": "スキル名",
    "description": "スキルの説明",
    "tools": [],
    "skillContent": "スキルの本文",
    "additionalFiles": [
      {
        "displayName": "filename.md",
        "fileContent": "ファイルの中身"
      }
    ]
  }
}
フィールド 説明
name スキルの識別子
properties.description スキルの用途をエージェントに伝える説明文
properties.tools スキル実行時に使用を許可するツール
properties.skillContent スキル本体のプロンプト・手順
properties.additionalFiles スキルに付随する補助ファイル(テンプレートやスクリプトなど)

KnowledgeItem登録API

KnowledgeItemは、エージェントに参照させるドキュメントやWebページを登録する仕組みです。
登録元によってdataConnectorTypeが異なります。

エンドポイント

PUT {agentEndpoint}/api/v2/extendedAgent/connectors/{filename}

ファイルをアップロードする場合

{
  "name": "filename.md",
  "type": "KnowledgeItem",
  "properties": {
    "dataConnectorType": "KnowledgeFile",
    "dataSource": "filename.md",
    "extendedProperties": {
      "displayName": "filename.md",
      "fileContent": "<Base64エンコードされたファイル内容>"
    }
  }
}

Webページを登録する場合

{
  "name": "https://example.com/docs/page",
  "type": "KnowledgeItem",
  "properties": {
    "dataConnectorType": "KnowledgeWebPage",
    "dataSource": "https://example.com/docs/page",
    "sourceUrl": "https://example.com/docs/page",
    "extendedProperties": {
      "displayName": "ページのタイトルなど"
    }
  }
}
dataConnectorType 用途
KnowledgeFile Markdownやドキュメントファイルをナレッジとして登録
KnowledgeWebPage 外部Webページのコンテンツをナレッジとして登録

ファイル登録時はfileContentにBase64エンコードした本文を渡す点に注意してください。


ScheduledTasks登録API

ScheduledTasksは、cron形式のスケジュールでエージェントに定期的な作業を実行させる機能です。

エンドポイント

POST {AGENT_ENDPOINT}/api/v1/scheduledtasks

ヘッダー

ヘッダー名
Authorization Bearer {TOKEN}
Content-Type application/json

リクエストボディ

{
  "name": "task name",
  "description": "task description.",
  "cronExpression": "0 */12 * * *",
  "agentPrompt": "agent prompt.",
  "agent": "agent name"
}
フィールド 説明
name タスクの識別名
description タスクの説明
cronExpression 実行スケジュール(cron形式)
agentPrompt 実行時にエージェントへ渡す指示内容
agent タスクを実行するエージェント名(カスタムエージェントも指定可能)

実装例

12時間ごとにIssueをトリアージするタスク:

{
  "name": "triage-{repo_name}-issues",
  "description": "Triage customer issues in {repo}",
  "cronExpression": "0 */12 * * *",
  "agentPrompt": "Use the issue-triager subagent in {repo} to triage open issues.",
  "agent": "issue-triager"
}

1時間ごとにアプリケーションの実行時間を調査するタスク:

{
  "name": "igichat-time",
  "description": "IGI Chat アプリケーションの実行時間を調査",
  "cronExpression": "0 */1 * * *",
  "agentPrompt": "IGI Chatアプリケーションの実行時間を調査する。",
  "agent": "igichat-time-checker"
}

まとめ

機能 エンドポイント 用途
Skills PUT /api/v2/extendedAgent/skills/{name} 作業手順やノウハウをエージェントに追加
KnowledgeItem PUT /api/v2/extendedAgent/connectors/{filename} ドキュメントやWebページを参照ナレッジとして登録
ScheduledTasks POST /api/v1/scheduledtasks cron形式で定期的にエージェントへタスクを実行させる

いずれもポータルのGUI操作と同等のことをAPI経由で実行できるため、Skillsやナレッジ、定期タスクをコード管理・自動デプロイしたい場合に活用できます。


おわりに

Azure SRE Agent のSkills・KnowledgeItem・ScheduledTasksは、REST APIから直接登録・更新することが可能です。
GUIでの手動登録に代えてAPI経由で管理することで、複数エージェント環境への一括展開や、CI/CDパイプラインへの組み込みがしやすくなります。
自組織の運用ニーズに合わせて、これらのAPIを活用したエージェントの拡張を検討してみてください。