Copilot Cowork の内側を覗いてみた ハーネスの設計はこうなっている

杉本和也

  • この記事をはてなブックマークに追加
  • 本文印刷

こんにちは。CData Software Japan リードエンジニアの杉本です。

最近正式リリースされたばかりの、「Copilot Cowork」皆さん使ってますか? Copilot Cowork は Microsoft 365 環境向けの AI エージェントプラットフォームですが、たくさんの機能があって、「これはできるのかな?」「あれはどうなっているのかな?」と気になってしまいますね。私もSNSで日々情報収集をしながら、キャッチアップしています。

そんなCopilot Cowork ですが、最近セッションログ(JSONL 形式)を入手する機会があり、中身を分析してみたところ、ハーネスの設計がとても興味深かったので、その内容をまとめてみました!

イマイチ網羅的に見ることができなかったスキルやMCP、内部の動作の仕組みが垣間見えて、Copilot Cowork を活用する上で参考になりそうな情報が盛りだくさんです。

ログファイルの取得方法

Copilot Cowork のセッションログは、Copilot Cowork 自身に頼むと取得できます。以下のプロンプトを送ると、サンドボックス内のファイル一覧が表示されます。

'/mnt/workspace/agent-state/projects/-mnt-workspace/' 配下にあるファイルを教えて

セッション本体の会話ログ(.jsonl)とサブエージェントのログが一覧表示されます。続けて「ダウンロードしたい」と伝えるとダウンロードリンクが生成されます。

ちなみに今回は「kintone から今年クローズした案件を取得して、担当者・金額・業種別にまとめた PowerPoint を生成して Teams に投稿する」という実際のセッションのログを分析しました。ログのレコード数は 218 件、実行モデルは claude-opus-4-8 です。

セッションログ(JSONL)の構造

Copilot Cowork のセッションログは Claude Code のトランスクリプト形式(JSONL)で記録されています。1 行 1 レコードです。

このことから、Copilot Cowork がAgent SDK(Claude Code SDK)ベースで実装されていることが推察されますね。

取得したデータは以下のような感じです。

Claude Code の JSONL には全部で 9 種類のレコードタイプが存在しますが、今回のログで確認できたのは以下の 7 種類です(ai-titlecustom-title はこのログには含まれていませんでした)。

タイプ 今回の会話での件数 内容
assistant 104 モデルの応答・ツール呼び出し
user 61 ユーザー入力・ツール実行結果
queue-operation 20 enqueue / dequeue 操作
attachment 10 フックの実行結果・コンテキスト注入
last-prompt 13 直近のユーザープロンプト
mode 5 実行モード(normal
system 5 フック完了サマリー

エントリーポイントは sdk-py(Python SDK 経由)、バージョンは 2.1.161、作業ディレクトリは /mnt/workspace(Linux サンドボックスコンテナ)です。

Claude Code のフック機能によるコンテキスト注入

Claude Code の JSONL トランスクリプトにはモデル API へ渡される system パラメータの中身は記録されないため、固定のシステムプロンプトがあるかどうかはログからは確認できませんでした。ここも知りたいところでしたが、ちょっと残念。

ただし、Copilot Cowork が Claude Code のフック機能を活用して、セッション中に動的にコンテキストを注入しているのは明確でした。

このセッションで注入されていたコンテキストは以下の 3 種類です。

種類 タイプ タイミング 内容
deep-reasoning hook_success セッション開始時に1回 推論フレームワーク全文(約6,400文字)
skill_listing スキル一覧 毎ターン 全28スキルの名前+トリガー条件文(約12,700文字)
task_reminder タスク一覧 毎ターン(内容は随時更新) その時点のタスクリスト(JSON)

skill_listing は毎ターン同じ内容が流れ続け、task_reminder だけがセッション中に内容が変化する真の動的コンテキストです。ここからタスク管理の仕組みが見えますね。

deep-reasoning はセッション開始時の1回のみで、その後はキャッシュヒットになります(キャッシュトークンの推移で確認できます)。

ちなみに、ユーザーのプロフィール情報(氏名・メールアドレス等)については、フックの注入コンテキストには含まれていませんでした。ログに現れるユーザー情報はすべてツール実行の返り値(GetDefaultDrive のオーナー情報など)として登場しており、必要になったときにツールで取得する設計と考えられます(system パラメータに含まれているかどうかはログからは確認できません)。

一方、MCP ツール定義(93ツール)はフック注入ではなく、セッション開始前に MCP サーバー接続経由で静的にロード・キャッシュ済みです。最初のターンで cache_read=78,824トークン がすでに存在することからわかります。

セッション開始前  → MCPサーバー接続・ツール定義をキャッシュ(静的ロード)
セッション開始時  → SessionStart フック: deep-reasoning を注入(1回)
各ターン開始時    → skill_listing(28スキル)を注入
                  → task_reminder(タスク一覧)を注入(内容は随時更新)


Claude Code のフック機能を使ってコンテキストを注入する方式の利点は、スキルや設定の変更がセッションごとに反映される点です。固定のシステムプロンプトに組み込む場合と比べて、Copilot Cowork 側でスキルの追加・削除・更新を柔軟に管理できます。

deep-reasoning:常時有効な推論フレームワーク

SessionStart フックで最初に注入されるのが deep-reasoning スキルです。これはすべてのエージェントに自動適用される implicit skillで、明示的に呼び出す必要はありません。

deep-reasoning の中では ultrathink モードが有効化されていたのが興味深いですね。ultrathink は Claude Code のネイティブキーワードで、Claude の extended thinking(拡張思考)の思考バジェットを最大に引き上げます。think → think hard → think harder → ultrathink という段階があり、最終回答を出す前の内部思考に使えるトークン数が最大になります。deep-reasoning は ultrathink で思考量を確保しつつ、その上に認知バイアス対策や信頼度ルールといった独自フレームワークを重ねた構成です。

5つの認知的ハザードと対処パターン

deep-reasoning が面白いのは、単なる動作指示ではなく、モデルが陥りやすい認知的ハザード(コグニトハザード)への対処パターンが定義されていることです。

ハザード 検出条件 対処
Inherited certainty ユーザーの主張をそのまま受け入れようとしている 仮説として扱い、ツールで外部検証する
Self-correction trap 「推論を確認しよう」と言いかけている 自己検証は不可。Read / Grep / WebSearch を使う
Premature switching 現アプローチが遅いが失敗していない 2 回以上試みてから切り替える
Confirmation bias 証拠がすべて初期仮説を支持している 批判・問題点を能動的に検索する
Hasty commitment 最初に見つけたアプローチに飛びつこうとしている 代替案を検討してからコミットする

「Self-correction trap」が興味深いです。「自己検証は不可」として、必ず外部ツール(Read・Grep・WebSearch)を使うよう強制しています。LLM の自己評価の信頼性が低い、という認識に基づいた設計な感じでしょうか。

信頼度キャリブレーション

deep-reasoning では、何かを断言する前に「自分はこれをどれくらい確信しているか」を 0〜100 のスコアで自己評価するよう指示されています。このスコアに応じて取るべきアクションが定められています。

スコア 意味 アクション
0–24 不確実 明示的に述べ、検証方法を特定する
25–49 可能性あり 不確実性を注記してから進む
50–74 可能性高い 主要な主張を検証する
75+ 検証済み 自信を持って断言する

スコア 75 以上のみアサーション可、というルールです。それ以下の場合は不確実性を明示し、検証方法を示す必要があります。

メタ認知シーケンス

すべての処理は以下のシーケンスで進めるよう定義されています。

VALIDATE → DECOMPOSE → SOLVE → VERIFY → SYNTHESIZE → REFLECT

VALIDATE:具体的な解法に入る前に原則・前提を抽象化する
DECOMPOSE:最小のサブ問題から積み上げる
SOLVE:中間ステップを明示しながら体系的に進める
VERIFY:Draft → Verify → Revise のプロトコルで検証する

また「State Externalization」というルールがあり、作業の追跡は TaskCreate / TaskUpdate で行い、mental tracking(頭の中で管理)は禁止となっています。これがタスク管理の仕組みにつながります。

スキル体系:28個を5カテゴリに分類

各ターンの注入コンテキスト skill_listing には、利用可能なスキル一覧と各スキルのトリガー条件(「何を言ったら発動するか」)が自然言語で定義されています。28 個のスキルを 5 カテゴリに分類できます。

生産性スキル(6個)

スキル名 トリガー例 概要
calendar-management 「カレンダーを整理して」「会議が多すぎる」 スケジュール管理・フォーカス時間防衛・会議トリアージ
daily-briefing 「今日のブリーフィング」「今日の予定は?」 カレンダー・メール・Teams を集約した優先度付き日次概要
meeting-intel 「会議を要約して」「アクションアイテムを抽出して」 会議ブリーフ・議事録・参加者コンテキスト提供
schedule-meeting 「会議をスケジュールして」「空き時間を探して」 会議スケジューリング・空き時間検索・会議室予約・リスケ
stakeholder-comms 「経営層向けに報告して」「チームにアナウンスして」 読者に応じた経営層更新・チームアナウンス・リスクエスカレーション等の文書生成
deep-research 「詳しく調べて」「ファクトチェックして」 出典付きの深掘り調査・ファクトチェック


ドキュメント生成スキル(7個)

スキル名 出力形式 概要
docx Word (.docx) レポート・SOP・提案書・議事録など。TOC・追跡変更・コメント対応
pptx PowerPoint (.pptx)プレゼン・ピッチデック。pptxgenjs + QAワークフロー
xlsx Excel (.xlsx) スプレッドシート・数式・チャート・CSV など。LibreOffice で数式再計算も対応
pdf PDF 生成・結合・分割・OCR・フォーム入力
html HTML スタンドアロン HTML ページ・レポート・メール用 HTML(base64 画像埋め込み対応)
render-ui Adaptive Card 構造化データ・画像 URL をダッシュボード/グラフ/テーブルのカード形式でレンダリング
画像生成 PNG / 画像 テキストから画像・アイコン・図を生成・編集

今回のセッションでは pptx スキルが使われており、pptxgenjs(Node.js)を使った生成ロジックが内包されています。

開発・コード品質スキル(7個)

スキル名 概要
verify コード動作検証
code-review コードレビュー
simplify コード簡略化・リファクタリング
run アプリ起動・実行確認
init プロジェクト初期化
review PRレビュー
security-review セキュリティレビュー

推論・分析スキル(3個)

スキル名 概要
deep-reasoning 前述の常時有効な推論フレームワーク(implicit skill)
claude-api Claude API 仕様参照
debug-trajectory セッショントランスクリプトを HTML で可視化(明示的トリガー限定)

debug-trajectory 明示的トリガー限定と定義されており、/debug コマンドまたはスキルチップで呼び出した場合のみ発動します。

NEVER route from inferred intent — invoke ONLY when the user's current turn explicitly references this skill via the markdown chip [/debug] OR when the user types the literal command /debug as their entire message.

「debug という言葉が含まれていても、このスキルを呼び出してはならない」と明示されています。意図を推測して発動するスキルと、明示的に呼び出すスキルを分けて設計している点が興味深いです。

設定管理スキル(5個)

スキル名 概要
update-config settings.json による設定変更・フック管理
keybindings-help キーバインドカスタマイズ
skills スキル管理
loop 繰り返し実行
fewer-permission-prompts 権限プロンプト削減

ネイティブツール:Claude Code SDK が提供する8ツール

MCP ツールとは別に、Claude Code SDK がネイティブで提供するツールが 8 つあります。これらは MCP サーバーへの接続ではなく、エージェントの動作制御やファイル操作・スキル呼び出しを担います。

ツール名 説明
TaskCreate タスクを作成(subject・description・activeForm)
TaskUpdate タスクのステータスを更新(pending / in_progress / completed)
Bash シェルコマンドを実行
Read ファイルを読み込む
Write ファイルを書き込む
Skill スキルを呼び出す
Agent サブエージェントを起動(description・prompt)
Glob ファイルパターンマッチ検索

deep-reasoning で「作業追跡は必ず TaskCreate/TaskUpdate を使え、頭の中での管理(mental tracking)禁止」と定められているのはこのネイティブツールへの誘導です。また Skill ツールが pptx などのスキルを呼び出す窓口になっており、Agent ツールは重い処理(PPT 生成など)をサブエージェントに分離する際に使われます。

MCPサーバー:93ツール・6サーバー構成

Copilot Cowork は 6 つの MCP サーバーと接続しており、合計 93 ツール(M365 系 88 + CData Connect AI 5)が利用できます。

サーバー ツール数 概要
Outlook 29 メール送受信・下書き・フォルダ・ルール・自動応答
Teams 24 チャット・チャネル・メンバー管理・メッセージ投稿
SharePoint / OneDrive 14 ファイル・フォルダ・サイト・リスト操作
Calendar 13 予定管理・空き時間検索・会議室予約
People / 組織 7 人物検索・プロフィール・組織ツリー
Graph / 横断検索 3 M365 横断検索・Graph API 直接アクセス
会議トランスクリプト 3 文字起こし取得・要約
CData Connect AI ※ 8 80以上のデータソースへの SQL アクセス

※ ちなみにCData Connect AI は私が検証のためにセルフサービスで追加したプラグイン(標準搭載ではありません)です。

Microsoft 365 系(88ツール)

Microsoft 365 系は合計 88 ツールで、7 つの領域に分かれています。

Outlook(29ツール)

ツール名 機能
ListMessages 受信トレイ/フォルダのメール一覧(送信者・日付・添付・未読等で絞込)
GetMessage メール本文・添付の全文取得
SendEmailWithAttachments メール作成・即時送信(添付対応)
CreateDraftMessage 新規メールの下書き作成
CreateReplyDraft 返信の下書き作成
CreateReplyAllDraft 全員返信の下書き作成
UpdateDraft 下書きの宛先・件名・本文の更新
SendDraftMessage 既存の下書きを送信
AddDraftAttachments 下書きへの添付追加
UploadAttachment 添付アップロード(3MB以下)
UploadLargeAttachment 大容量添付アップロード(3〜150MB)
DeleteAttachment 下書きの添付削除
ReplyToMessage 送信者へ返信(即時)
ReplyAllToMessage 全員返信(即時)
ForwardMessage メール転送(即時)
MoveMessage メールを別フォルダへ移動
DeleteMessage メール削除(削除済みアイテムへ)
FlagEmail フォローアップフラグの設定/解除
UpdateMessage 既読・重要度・分類などの更新
ListMailFolders メールフォルダ一覧
GetMailFolder フォルダ詳細取得
CreateMailFolder メールフォルダ作成
ListMailRules 受信ルール一覧
CreateMailRule 受信ルール作成
UpdateMailRule 受信ルール更新
DeleteMailRule 受信ルール削除
GetAutoReplySettings 自動応答(不在通知)設定の取得
SetAutoReply 自動応答の有効化・設定
DisableAutoReply 自動応答の無効化


Calendar(13ツール)

ツール名 機能
ListCalendarView 期間指定の予定一覧(定期予定を個別展開)
ListEvents 予定一覧(定期はマスター単位)
CreateEvent 予定の新規作成
UpdateEvent 予定の変更(出席者追加・リスケ等)
DeleteEventById 予定の削除
AcceptEvent 招待の承諾
DeclineEvent 招待の辞退
TentativelyAcceptEvent 仮承諾
CancelEvent 自分が主催する予定のキャンセル通知
ForwardEvent 予定の転送(FYI共有)
FindMeetingTimes 出席者の空き時間候補の検索
GetRooms 会議室一覧の取得
GetUserDateAndTimeZoneSettings タイムゾーン・勤務時間設定の取得


Teams(24ツール)

ツール名 機能
ListTeams 参加チーム一覧
GetTeam チーム詳細取得
ListChannels チャネル一覧
GetChannel チャネル詳細取得
CreateChannel チャネル作成
CreatePrivateChannel プライベートチャネル作成
UpdateChannel チャネル名・説明の更新
ListChannelMembers チャネルのメンバー一覧
AddChannelMember チャネルへメンバー追加
UpdateChannelMember メンバーの役割変更
ListChannelMessages チャネルのメッセージ一覧
PostChannelMessage チャネルへ投稿
ReplyToChannelMessage チャネル投稿への返信
ListChats チャット一覧(未読・相手で絞込)
GetChat チャット詳細取得
CreateChat チャット作成
UpdateChat チャットのトピック変更
AddChatMember チャットへメンバー追加
ListChatMembers チャットのメンバー一覧
ListChatMessages チャットのメッセージ一覧
GetChatMessage チャットの特定メッセージ取得
PostMessage チャットへメッセージ送信(宛先名で自動作成)
UpdateChatMessage チャットメッセージの編集
DeleteChatMessage チャットメッセージの削除


会議トランスクリプト(3ツール)

ツール名 機能
GetMyRecentTranscripts 期間内の直近の会議文字起こしを一括取得
ListMeetingTranscripts 特定会議の文字起こし一覧
GetMeetingTranscript 文字起こし本文(話者・タイムスタンプ付)取得


People / 組織(7ツール)

ツール名 機能
GetMyDetails 自分のプロフィール取得
GetUserDetails 特定ユーザーのプロフィール取得
GetMultipleUsersDetails 複数ユーザーのプロフィール一括取得
SearchPeople 人物検索(氏名・部署・役職・拠点等)
GetManagerDetails 上司情報の取得
GetDirectReportsDetails 直属の部下一覧
GetOrgTree 組織ツリー(配下全体)の取得


SharePoint / OneDrive(14ツール)

ツール名 機能
GetDefaultDrive 個人OneDrive/サイト既定ライブラリの取得
ListDrives サイトのドキュメントライブラリ一覧
GetDriveChildren フォルダ内のファイル・フォルダ一覧
GetDriveItem ファイル/フォルダのメタデータ取得
ReadFileContent ファイル内容の読み取り
SearchDrive ドライブ内のファイル検索
CreateFolder フォルダ作成
GetSite SharePointサイトの取得
SearchSites サイト検索
ListSubsites サブサイト一覧
ListLists SharePointリスト一覧
ListListColumns リストの列(項目)一覧
ListListItems リストアイテム一覧
GetOrgTemplateLibrary 組織のブランドテンプレートライブラリ取得


Graph / 横断検索(3ツール)

ツール名 機能
SearchM365 ファイル・メール・Teams・予定・Power BI 等の横断検索
QueryGraph Microsoft Graph への読み取り(GET)アクセス
CallGraph Microsoft Graph への書き込み(POST/PUT/PATCH)アクセス

QueryGraph CallGraph は Graph API を直接叩けるため、上記カテゴリにないエンドポイントにも対応できます。なお Power BI 連携はこのいずれかのツールを通じて実現しており、個別ツールとしての分類はログ上では確認できませんでした。

CData Connect AI(5ツール)※セルフサービスで追加したプラグイン

kintone やSalesforce など、外部のエンタープライズデータへのアクセスを担うMCP サーバーです。Copilot Cowork のセルフサービス機能でユーザーが任意に追加できるプラグインであり、標準搭載ではありません。

ツール名 説明
getCatalogs 利用可能なコネクション一覧を取得
getSchemas 特定カタログのデータベーススキーマを取得
getTables 特定カタログ・スキーマのテーブル一覧を取得
getColumns 特定テーブルの利用可能なカラム一覧を取得
queryData 接続済みデータソースに SQL クエリを実行し結果を取得
getProcedures 特定カタログ・スキーマのストアドプロシージャ一覧を取得
getProcedureParameters ストアドプロシージャのパラメータメタデータを取得
executeProcedure ストアドプロシージャを実行

実際の処理フロー:15ステップで kintone → PPT → Teams

今回のセッション(「kintone から今年クローズした案件を取得して、担当者・金額・業種別にまとめた PowerPoint を生成して Teams に投稿する」)の処理フローを追ってみましょう。

タスク管理の仕組み
セッション開始直後に TaskCreate で 3 つのタスクが定義されます。

[
  { "id": "1", "subject": "kintoneの案件データ構造を確認", "status": "pending" },
  { "id": "2", "subject": "今年クローズした案件を取得", "status": "pending" },
  { "id": "3", "subject": "報告用パワーポイントを生成", "status": "pending" }
]


各タスクは pending → in_progress → completed と状態遷移し、blocks blockedBy フィールドで依存関係も表現できるようになっています。

データ取得フェーズ(ステップ 1〜8)

まずkintone からデータを取得するために、CData Connect AI のMCP ツールを利用します。 getCatalogs で接続済みのデータソース一覧を取得し、Kintone_demo カタログを特定します。次に getInstructions で kintone ドライバーのガイダンスを取得し、getTables でテーブル一覧を確認して「案件管理」テーブルを見つけます。

getColumns でカラム定義を確認すると、商談フェーズ・売上 (¥)・主担当 Aggregate・受注予定日・会社名 などが確認できました。

-- 商談フェーズの値を確認 
SELECT [商談フェーズ], COUNT(*) AS 件数 
FROM [Kintone_demo].[Kintone].[案件管理] 
GROUP BY [商談フェーズ] 
ORDER BY 件数 DESC


結果:受注 8 件・提案中 6 件・内示 2 件・NULL 15 件。受注済み案件が 8 件であることを確認してから、担当者・金額・業種別の集計クエリに進んでいます。

PPT 生成フェーズ(ステップ 9〜10)

Skill ツールで pptx スキルを呼び出すと、スキル内部でまず Read ツールが /opt/workspace-config/.claude/skills/pptx/pptxgenjs.md(API リファレンス)を読み込み、Bash で日本語フォントの有無を確認します。その後 Write ツールで生成スクリプト(create-presentation.js)を出力します。

ここで注目したいのがサブエージェントの起動パターンです。スクリプトの実行・QA 検証は Agent ツールで別エージェントに委譲されます。

{
  "description": "Creating your presentation", 
  "prompt": "Create the PowerPoint presentation by running an existing generation script, then QA it..." 
}


サブエージェントへの指示には以下のルールが含まれていました。

Every Bash tool call description MUST use user-facing intent language — never mention scripts, file types, conversion steps, or internal tools

処理 description(表示テキスト)
スライド生成 "Building your slides"
エラー後再生成 "Rebuilding your slides"
QA 検証 "Checking the presentation for errors"
修正適用 "Fixing [specific issue]"
後処理 "Finalizing the presentation"

内部的な処理名をユーザーに見せず、意図ベースの言葉で表示する設計です。UX 配慮が設計レベルで組み込まれています。

また、日本語フォントがコンテナに存在しない場合の QA 検証についても明示的にルールが定められています。

The container may LACK Japanese fonts, so the QA preview images may show Japanese as boxes/tofu — this is a RENDERING-ONLY artifact and is NOT a defect in the .pptx itself. Therefore: verify TEXT CONTENT using python -m markitdown output/xxx.pptx. Use the QA images ONLY to judge LAYOUT.

フォント欠如による豆腐表示(日本語フォントが環境にない場合に文字が □ で表示される現象)は「レンダリングのみの問題」として、テキスト検証とレイアウト検証を分離しているのが面白いですね。

Teams 投稿・メール作成フェーズ(ステップ 11〜15)

PPT 生成後は Teams の ListTeams → ListChannels でターゲットチャンネルを特定し、Graph API でファイルアップロード先(SharePoint の filesFolder)を取得します。ファイルをアップロードして共有リンクを生成し、PostChannelMessage でサマリーとリンクを投稿。最後に CreateDraftMessage と AddDraftAttachments で Outlook のメール下書きを作成して完了です。

最終的なタスク一覧は 6 タスク(CData + Teams + SharePoint + 投稿 + メール下書き)がすべて completed になっています。

まとめ

今回のセッションログ分析から見えてきた Copilot Cowork の設計ポイントをまとめます。

Claude Code のフック機能を活用した動的コンテキスト管理
Claude Code SDK が提供する SessionStart フックを利用して、スキルと推論フレームワークを動的に注入する設計です。フックの仕組み自体は SDK のネイティブ機能であり、何をどう注入するかが Copilot Cowork 側の実装です。スキルの追加・更新がセッションごとに反映されます。

deep-reasoning による認知的ハザード対策
5 種類の認知的ハザードと対処パターン、75 以上でのみアサーション可という信頼度ルール、メタ認知シーケンスが常時有効なスキルとして定義されています。LLM の弱点を補う設計が丁寧に組み込まれている感じで面白いですね。

豊富なMCP ツールセット
Claude Cowork をベースにしたCopilot だからこそ、という強みだと思いますが、Microsoft 365 系・88ツールが標準のMCP ツールセットとして提供さているのは本当に強みですね。私が当初想定していたよりも、機能サポートの範囲も広い印象でMicrosoft としてもかなり本気で、Copilot Cowork に業務を行わせようという意識が感じられました。

今回調査をしてみて、個人的にも改めてハーネスの意義や実装アプローチの勉強になって、とても良かったです。Claude SDKや Claude Managed Agetns を通じて、自社のエージェントを作る機会がある方にも参考になる情報ではないでしょうか。

本記事はアフィリエイトプログラムによる収益を得ている場合があります

過去記事アーカイブ

2026年
01月
02月
03月
04月
05月
06月
07月
2025年
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
12月
2024年
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
12月
2023年
04月
07月
08月
09月
10月
11月
12月