😭
Azure OpenAI で trace 機能をオンにして Agent SDK を使ってみたが……
概要
先日のMCPサーバーを立ててAgent SDKでサーバーに接続する記事を書いたのですが、こちらのコードではAzure OpenAIでデプロイしたモデルを使う場合はトレース機能をオフにしなければエラーになるという風に書いていました。しかし、Azure OpenAIを使っている場合でもOpenAIのAPIキーがあればAgent実行結果がトレースできそうということで試してみました。
追加コード
先日の記事のmcp_agent.py
に以下のコードを追加します。
from agents.tracing import set_tracing_export_api_key
OPENAI_API_KEY = "<openaiのアカウントで発行したキー>"
set_tracing_disabled(disabled=False) # デフォルトでFalseなのでなくてもいい
set_tracing_export_api_key(OPENAI_API_KEY)
# トレースオフ設定の行はコメントアウトするか削除して下さい
# set_tracing_disabled(disabled=True)
結果
コード実行出力
> AIに関する最近のニュースを調べて下さい
RunResult:
- Last agent: Agent(name="Assistant", ...)
- Final output (str):
AIに関する最近のニュースは以下の通りです:
1. ホワイトハウスのMAHAレポート、AIによる“科学の混乱”の可能性
- 媒体: The Washington Post
- 概要: 米保健福祉省が主導したMAHAレポートで、AIの利用により科学データが誤って伝えられている可能性があると専門家が指摘。
- 記事URL: The Washington Postの記事
2. 中国ハイテク企業、Nvidia不在のAI未来へ準備
- 媒体: Financial Times
- 概要: 中国の主要テクノロジー企業が、AI開発を国内製チップに切り替える長く困難なプロセスに着手。米中対立の影響が背景。
- 記事URL: Financial Timesの記事
3. 中国、世界初のAIによる核兵器検査官を発表
- 媒体: South China Morning Post
- 概要: 中国が核弾頭検査を担う世界初のAIシステムを開発。ただし、技術流出への懸念も存在。
- 記事URL: South China Morning Postの記事
もし、それぞれの記事の詳細が必要であれば、リンクもご案内できます。
- 3 new item(s)
- 2 raw response(s)
- 0 input guardrail result(s)
- 0 output guardrail result(s)
(See `RunResult` for more details)
openaiのダッシュボードから以下のように確認できます。
List MCP Tools
やsearch_news
から、MCP関連の実行結果は問題なく確認できました。
しかし、POST/v1/responses
の結果でモデルの出力結果が見られることを期待したのですが、IDが確認できるだけで、エージェントの思考過程等をトレースすることは出来ませんでした。
Azure OpenAIを使わずに、OpenAIだけで完結させるとこんな感じで思考過程を確認することができます。
おわり
こうすればAzure OpenAIでもちゃんとモデルの途中出力結果見られるよ!という情報あればお待ちしております……。不便だ!
そういえば、OpenAIダッシュボードのLogsを確認すると Agent SDK ではデフォルトでResponses API
が使われていることがわかります。Chat Completion API
はやめていきましょう。
追記:
MSのエンジニアがこんな記事を出していたのでまた試したいと思います。
参考
Discussion