先日 Global Secure Access (GSA) を使用したエージェントの管理について という投稿を書きましたが、この続きです。
先日の投稿を更新しようかとも思ったのですが、改めての知識の整理を兼ねて、別の投稿としてまとめておきたいと思います。
SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿
先日 Global Secure Access (GSA) を使用したエージェントの管理について という投稿を書きましたが、この続きです。
先日の投稿を更新しようかとも思ったのですが、改めての知識の整理を兼ねて、別の投稿としてまとめておきたいと思います。
SQL Server 2022 CU26 では、次の修正が含まれています。
本問題ではどのような挙動が修正されたのかをまとめておきたいと思います。
なお、この修正については、SQL Server 2022 CU26 以降 / SQL Server 2025 CU3 以降で対応されていることは確認をしています。
SQL Server 2025 は手元にあったのが CU3 までなので、それより前のバージョンでは確認をしていませんが、前のバージョンに修正が含まれている可能性もあります。
SQL Server 2014 から内在しているはずの挙動ですが、SQL Server 2019 以前のバージョンについては、メインストリームサポートが終了しているため、本問題の修正が含まれることはないかと思います。
Global Secure Access (GSA) にはエージェント向けの管理機能が搭載されています。
GSA によるエージェントの管理を把握しておく必要があったので管理する情報をまとめておきたいと思います。
SQL Server では 互換性レベル という概念があります。
新しいバージョンで廃止された機能については新しいバージョンで継続して利用することはできませんが、T-SQL の構文の差異であれば互換性レベルを調整することで、新しいバージョンの SQL Server でも古いバージョンの T-SQL の構文解析で動作させることが可能となります。
今回、互換性レベルの変更に伴う構文解析ツールを Codex で作成して、MSSQLCompatibilityLevelQueryChecker として公開しました。
Agent 365 のエージェント ID では、エージェント自律アプリの OAuth フロー – アプリ専用プロトコル がサポートされています。
このフローはエージェントでエージェント ID を使用した認証フローで利用されるという理解でいます。
利用されるケースとしては、独自に開発したエージェントに Agent 365 のエージェント ID の機能を Agent 365 SDK を用いて追加、Microsoft Foundry のエージェントに追加した ツールの認証 などで使用されることがあるのではないでしょうか。
トークンの取得フローとしては冒頭のドキュメントの次の流れとなります。

エージェントから外部リソースにアクセスする際の資格情報ですが、次のようなパターンがあります。
エージェント ユーザーを使用しなくても、エージェント ID のトークンを利用したフローにより、エージェントに割り当てられている資格情報でリソースにアクセスすることが可能となります。
このフローは、既存のエージェントに Agent 365 のエージェント ID による管理機能を追加する際にも使用されるものとなるのではないでしょうか。
Microsoft Foundry からエージェント ID で通信した場合に、上記のフローとなることは把握していたのですが、Foundry のエージェントからの通信で、エージェント ID を指定した場合に、実際にどのようなトークンが取得されているのかを確認したことがありませんでした。
そこで、本投稿では Dev Tunnel を使用してトークンを確認してみたという内容となります。
Foundry には、開発中のエージェント向けの 共有プロジェクト ID という概念もありますが、今回は、共有プロジェクト ID ではなく、発行済みのエージェントであり、エージェント ID を使用して確認をしています。
SQL Server のレプリケーションで、パブリケーション内の最後のサブスクライバーを削除する場合、それまでのサブスクライバーを削除するときとは異なる挙動がありましたので、調査した内容や方法をまとめておきたいと思います。
Microsoft Foundry で作成したエージェントは A2A プロトコルを使用するためにセットアップを実施することができます。
Prompt Agent であれば Foundry ポータルの エージェントの「詳細」のセットアップからセットアップを実行することとができます。
Hosted Agent でも A2A プロトコルのセットアップボタンが表示されるのですが、ここからセットアップをしてもポータル上は変化が無いようで、セットアップを実行してもアクティブ / エンドポイントが表示されないという状態になりました。
この事象について確認した内容をまとめておきたいと思います。
SQL Server では、変更の追跡 (Change Tracking: CT) の機能を使用することで、変更があった行のトラッキングを行うことができます。
CT では行の変更は次のテーブル (サイドテーブル) で管理が行われています。
これらのテーブルは クリーンアップ により、定期的にデータの削除が行われます。
クリーンアップは、上述のリンクと Change Tracking の自動クリーンアップに関する問題のトラブルシューティング から挙動を確認することができます。
更新頻度が高いテーブルでは、サイドテーブルに格納されている行数が膨大になり、これらのクリーンアップのドキュメントに記載されている内容だけではトラブルシューティングが難しいことがあります。
本投稿では、変更の追跡のクリーンアップについてドキュメント外の情報について、参考情報をまとめておきたいと思います。