本サイトでは、文章の一部の生成系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を活用したエージェントの拡張を検討してみてください。