はじめに
七尾百合子さん、お誕生日 120日目 おめでとうございます! nikkieです。
deep researchの気になる実装例を動かしました。
目次
Azure-Samples/deepresearch
This sample creates a reasoning, AI-powered reseacrher using DeepSeek R1. (ママ)
知ったきっかけはこちらの記事
リポジトリの実装(Python)を解説し、その上C#での実装例を示されていました👏
技術要素
DeepSeek-R1 (Azure AI Foundry)
ここが一番経験がないところでしたが、AzureのWeb UIから操作と割り切って、DeepSeek-R1の推論APIを立てられました。
リポジトリではazdコマンドで立てるようです(将来の宿題事項)
Tavily
Pythonクライアントを少し調べました
動作します!
ローカル環境で動いたぞおおお!!https://t.co/IllnZBlFRr
— nikkie(にっきー) / にっP (@ftnext) 2025年7月13日
DeepSeek-R1とTavilyでdeep research。
クエリを考え、Tavilyで検索。
検索結果を要約し、reflectionして再検索して、足りないと思う内容を追加していって最後にレポート生成みたい pic.twitter.com/DTyfT3A9V5
リポジトリより
Give it a topic and it will generate a web search query, gather web search results, summarise the results of web search, reflect on the summary to examine knowledge gaps, generate a new search query to address the gaps, search, and improve the summary for a user-defined number of cycles.
- ユーザがトピックを与える
- 検索クエリを生成
- Web検索(Tavily使用。上位1件)
- Web検索結果を要約
- 要約について知識のギャップを検証(reflection)
- 新しい検索クエリを生成
- Web検索して要約改善を繰り返す(3回)
差分を考えて繰り返し検索することで、researchが深まっていきます!

動かすtips:pyproject.tomlがないPythonプロジェクトをuvに引きずり込みました
pyproject\.toml がなくrequirements\.txt系のPythonプロジェクトではuv sync一発ではうまくいかないが
— nikkie(にっきー) / にっP (@ftnext) 2025年7月13日
uv venv して uv pip install -r requirements\.txt でuvに仮想環境を作らせ、uv run <command>でuvの環境に引きずり込めるという学びを得た
私のやり方では、app/ディレクトリの中に.venv/を作っていて、app.mount()のファイルパス指定を調整しています。
uv run uvicorn main:app --reloadで立ち上げて、 http://localhost:8000/ にアクセスしてdeep researchを動かせます。
宿題事項
- 動作中に何をやっているかをトラックしたい(ブラックボックスすぎる)
- LangChainを使っているので、モデルの切り替えは試せると思います
- DeepSeek-R1、オープンなモデルでここまで調べられるの、すごい
終わりに
AzureでDeepSeek-R1のAPIを立てて、deep researchのハンズオンコードを動かせました。
得た知識も使って繰り返し検索するdeep researchを動かしてみて、個人的には「この方向性なのかな」と感じています2。
また、deep researchが1つ動かせると、『まあ家に帰れば自作deep researchあるしな』3と心に余裕を持てますね。
追記(2025/07/20) 費用感
※「Web検索して要約改善を繰り返す」の回数にもよります。
私は途中で1回にしました
このブログ執筆にあたり11000トークン(何回かdeep researchしたはず)
この日に対応する請求が16円でした。
Azure AI Foundryの従量課金はありがたいですね