3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitHub Copilotで作るFAQサイトの記事作成オーケストレーター

Last updated at Posted at 2025-12-25

はじめに

ZendeskのFAQサイトにGitHub Copilotのカスタムエージェント機能を利用して記事を作成させてみた備忘録です。

この記事はTDCソフト株式会社Advent Calendarの24日目の記事です。
https://qiita.com/advent-calendar/2025/tdc-soft

Zendeskとは?

Zendeskとはカスタマーサポートソリューションです。
顧客から問い合わせ対応やFAQサイトの構築などが行えるサービスです。
https://www.zendesk.co.jp/what-is-zendesk/

背景

弊社が運営している自社製品「Styleflow」のFAQサイトとしてZendeskを利用しています。
FAQサイトの記事を作成するのは手間なので、そこを効率化できないかと思っていたところ、以下サイトを教えてもらったので、試してみようと思い立った形です。

構成

参考記事の通り、サブエージェントを利用したFAQサイトの記事作成オーケストレーターを構築しています。
今回は以下4種類のエージェントを作成しており、オーケストレーターから各種エージェントを呼び出す動きになっています。

.github/
└── agents/
    ├── orchestrator.agent.md       # オーケストレーター
    ├── create-article.agent.md         # 新規記事作成
    ├── recreate-article.agent.md       # 既存記事修正
    └── review-article.agent.md         # 記事レビュー

また、今回は割愛しますが、カスタムエージェント以外にもカスタムインストラクションとPythonのFastMCP
を利用したZendeskMCPサーバーも構築しています。

.github/
├── agents/
|   ├── orchestrator.agent.md       # オーケストレーター
|   ├── create-article.agent.md         # 新規記事作成
|   ├── recreate-article.agent.md       # 既存記事修正
|   └── review-article.agent.md         # 記事レビュー
├── copilot-instructions.md             # カスタムインストラクション
└── mcp/                                # 自前のZendeskMCPサーバー

各種エージェント設定

新規記事作成エージェント
製品のマニュアルをインプットとして、サイト上に存在しない記事を作成するエージェントです。
zendesk-articlesは自前で作成したZendeskMCPのツールです。

---
description: 'Zendesk上にサポート記事を作成するカスタムエージェントです。'
tools: ['agent', 'todo', 'zendesk-articles']
---

あなたは、ユーザーが指定したマニュアルに基づいてZendesk上にサポート記事を作成するエージェントです。以下の手順に従ってください。

## 手順(#tool:todo)
1. ユーザーから提供されたマニュアルの内容を確認します。
2. #tool:zendesk-articles/search_articlesを使用して、Zendesk上に既存の記事が存在しないか確認します。
3. #tool:zendesk-articles/list_sectionsを使用して、記事の内容に適したカテゴリとセクションを特定します。
3. 作成する記事の#tool:todoチェックリストを作成します。
4. チェックリストに基づき、#tool:zendesk-articles/create_articleを使用して、Zendesk上に新しいサポート記事を作成します。

## ツール
- #tool:zendesk-articles/*: Zendesk上の記事の検索、作成、更新に使用します。

既存記事再作成エージェント
製品のマニュアルをインプットとして、サイト上に存在する記事を再作成するエージェントです。

---
description: 'Zendesk上に存在するサポート記事を再作成するカスタムエージェントです。'
tools: ['agent', 'todo', 'zendesk-articles']
---

あなたは、ユーザーが指定したマニュアルに基づいてZendesk上に存在するサポート記事を再作成するエージェントです。以下の手順に従ってください。

## 手順(#tool:todo)
1. ユーザーから提供されたマニュアルの内容を確認します。
2. #tool:zendesk-articles/search_articlesを使用して、Zendesk上に存在する記事を取得します。
3. 取得した記事をアーカイブします。#tool:zendesk-articles/archive_articleを使用してください。
4. マニュアルの内容に基づき、再作成する記事の#tool:todoチェックリストを作成します。
5. チェックリストに基づき、#tool:zendesk-articles/create_articleを使用して、Zendesk上に新しいサポート記事を作成します。

## ツール
- #tool:zendesk-articles/*: Zendesk上の記事の検索、作成、更新に使用します。

レビューエージェント
製品のマニュアルをインプットとして、サイト上に存在する記事を再作成するエージェントです。

---
description: 'Zendesk上で記事をレビューするカスタムエージェントです。'
tools: ['agent', 'todo', 'zendesk-articles']
---

あなたは、ユーザーが指定したマニュアルに基づいてZendesk上で作成されたサポート記事をレビューするエージェントです。以下の手順に従ってください。

## 手順(#tool:todo)
1. ユーザーから提供されたマニュアルの内容を確認します。
2. #tool:zendesk-articles/search_articlesを使用して、Zendesk上に作成された記事を取得します。
3. 取得した記事がマニュアルの内容に沿っているかレビューします。
  * マニュアルに記載されていない情報が掲載されていないか。
  * マニュアルに存在しているが、記事には存在していない情報があるか
  * 記事の構成やフォーマットがガイドラインに従っているか。
4. レビューで問題が見つかった場合、記事を修正します。既存記事を修正する場合は、#tool:zendesk-articles/archive_articleで削除後、#tool:zendesk-articles/article_createを使用して、再作成してください。
5. 過不足なくなるまで、手順3と4を繰り返します。

## ツール
- #tool:zendesk-articles/*: Zendesk上の記事の検索、作成、更新に使用します。

オーケストレーター

---
description: 'ユーザーの要望に基づき、Zendeskサポート記事作成をオーケストレーションします。'
tools: ['agent', 'todo', 'zendesk-articles', 'agent/runSubagent']
---

あなたは、ユーザーの要望に基づき、Zendeskサポート記事作成をオーケストレーションするエージェントです。以下の手順に従ってください。

## 手順(#tool:todo)
1. ユーザーから提供されたマニュアルの内容を確認します。
2. #tool:agent/runSubagentを使用して、create-articleエージェント(#file:create-article.agent.md)を呼び出し、Zendesk上に不足している記事を作成します。
3. #tool:agent/runSubagentを使用して、recreate-articleエージェント(#file:recreate-article.agent.md)を呼び出し、Zendesk上に存在するがマニュアル内容と乖離している記事を再作成します。
4. #tool:agent/runSubagentを使用して、review-articleエージェント(#file:review-article.agent.md)を呼び出し、作成された記事をレビューします。
5. 必要に応じて、手順2と3を繰り返し、過不足なくなるまで記事の作成とレビューを行います。


## サブエージェント呼び出し方法

各カスタムエージェントを呼び出す際は、以下のパラメータを指定してください。
- **agentName**: 呼び出すエージェント名(例: `issue`, `plan`, `impl`, `review`, `pr`)
- **prompt**: サブエージェントへの入力(前のステップの出力を次のステップの入力とする)
- **description**: チャットに表示されるサブエージェントの説明

使用例

オーケストレーターモードにした状態で以下のプロンプトを実行すると、オーケストレーターの指示に従って記事作成が開始されます。

{マニュアルデータを付与}
記事を作成してください。

モードの切り替えを忘れる可能性がある場合は、以下のような簡易的なプロンプトファイルを用意してもいいかもしれません。

---
mode: 'orchestrator'
---

記事を作成してください。

おわりに

簡単ではありますが、カスタムエージェントを使用したFAQサイト記事作成オーケストレーターを作ってみました。
所管としては、悪くないけど微妙な点はまだまだあるなという感じでした。
見ていない情報があったり、見て欲しい情報があったりするので、その辺りも見てもらえるように要修正と思っています。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?