💪

Deepwiki駆動開発 ~ライブラリの最新情報とその利用方法の取得をAIで~

に公開

TL;DR

みんなやってるかなって思ったけど、周囲の人に話してみて、意外に
Deepwikiを忘れているなと思ったので記事にしました。

自分はこの方法で、あらゆるライブラリを使った実装方法に詰まることが、かなり減ったと思う。

というか、ライブラリに限らず、「自分たちが書いたコードのDeepwikiを用意する」のがとても良いと思う。

Devinないなら、Deepwiki-Openがおすすめ。
https://github.com/AsyncFuncAI/deepwiki-open

Deepwiki駆動開発とは

  • Deepwiki.org

https://deepwiki.org/

上記を使った開発方法。

何が便利

ライブラリの更新が激しいとか、どういう風にライブラリを使って実装したらいいかわからない。という疑問がほぼなくなる事。

以下のような時も使える。

  • ライブラリの更新時(この時もかなり便利)
  • ライブラリ自体に不具合があった時

Deepwikiをどう使う

下記は一例。複雑なことはない。

  1. 利用しているフレームワークやライブラリの情報をdeepwikiから検索する。

こんな感じ。

  1. リポジトリを見つけたらクリックして開く。

  2. 実装について質問する

  3. 回答結果をそのままプロンプトにする。(※依頼内容はちゃんと、追記してください。)

実践

よく使ってるAIフレームワークの使い方を質問してみる。
ここで大切になってくるのは

  • できるだけスコープを細分化した質問を行う。
  • 複雑な質問はしない。

Deepwikiは広く浅く回答をくれる

解答例としてはこのような形で、長すぎるので割愛するが、実装方法に関して
広く、多くのパターンを回答してくれます。

こんな情報までくれる。


Deepwikiの解答(要約)

実装に必要な情報は一通りそろっていると思う。

#### 実装方法(4つのアプローチ)
- シングルプロバイダー音声:単一プロバイダーでSTTとTTSの両方を実装
- コンポジット音声:入力(STT)と出力(TTS)に異なるプロバイダーを組み合わせ
- リアルタイム音声対話:WebSocket接続を使用したリアルタイム対話
- AI SDK統合:AI SDKのモデルを直接使用した実装

#### サポートされている音声プロバイダー
- OpenAI:TTS、STT対応
- OpenAI Realtime:リアルタイム音声対話
- ElevenLabs:高品質TTS
- PlayAI:TTS
- Google:TTS、STT対応
- Deepgram:STT
- Azure:TTS、STT対応
- Murf:TTS
- Speechify:TTS
- Sarvam:TTS、STT対応
- Cloudflare:TTS

#### 音声操作の基本機能
- `speak()`メソッド:テキストから音声を生成(TTS)
- `listen()`メソッド:音声からテキストを認識(STT)
- Node.jsストリームとして音声データを扱う
- ファイル保存・読み込みが可能

#### リアルタイム機能
- `connect()`:WebSocket接続の確立
- `send()`:マイクロフォンストリームの送信
- `close()`:接続の終了
- イベントリスナー:`speaking`、`writing`、`error`イベント

#### その他の特徴
- Agentにvoiceプロパティを設定することで音声機能を追加
- 各プロバイダーは異なる設定オプションをサポート
- CompositeVoiceクラスで柔軟な組み合わせが可能
- AI SDKを使用すると追加パッケージなしで幅広いプロバイダーを利用可能

これをそのままClaudeCodeやCodex、Cursorに食わせる

上記の解答を活用します。プロンプトを、Deepwikiがほぼ作ってくれているも同然です。

  1. Deepwikiの解答ごとに、コピーボタンがあるので内容コピーしてください。

  2. 以下のような(一例)形で、情報をCodingAgentに渡す。
    ClaudeCodeだとこんな感じ。

  3. あとは内容をもとに作ってくれる。
    ちゃんと必要なものインポートして始めてくれてるなぁ。

ライブラリ側にサンプルコードがある場合は、より解答が良くなると感じる

  1. 以下のような感じでいくつか実装を上げてくれているとする。

  2. 質問したときにサンプルコードがあるとその内容をもとに教えてくれる。

  3. ここからGithubのリンクにもなって、実装を見に行けるのが良い。

Fastモードがおすすめで、次にCodeMapがおすすめ。DeepReserchは結構遅くなる(帰ってこないこともある)

Fast以外の検索モードだと、解答が全く帰ってこないとかもあるのであんまりお勧めしない。
なので、質問のスコープを絞って聞くのが良いと思う。

CodeMapの使い方

最近追加された新機能で、CodeMapというモードで質問すると、コード内の
処理の実行を階層構造で示して表示してくれます。

  • CodeMapのイメージ

自分はASTGrepでの分析っぽい気もするなと思ったんですが
「コードと設計書の中間みたいな状態」 と思っています。

処理の実行順や設計的な部分を可視化してくれます。

この形を利用して、コードを変更するときに

「現在の実装の実行順やInterfaceを厳守して、実装を修正して」
という指示に加えて、実装内容を伝えれば、安全な修正ができるのではないか?

と考えています。

※まだ活用のサンプルが少ないので、更新予定。

ライブラリの更新時はどんなふうに使う?

Deepwikiにライブラリの更新内容を質問。→ その内容をCodingAgentに伝える。

この時、範囲は指定したほうがいい。「XX時点の更新」とか。
自分はChangelogとかを渡してる。

  • 例:こういうログの内容をコピーして、Deepwikiで質問。
  • 回答例:観点が分かりやすくなる。

あとはこの回答をコピーして、ClaudeCode等にライブラリの更新の影響箇所と、変更内容を伝えてコードベースを検索してもらって、修正してます。

もしこれで解決しなかったら

Deepwikiの情報で解決できなかったら。
→ 状況に応じて、ライブラリのコードを読ませましょう。

過去に会った事例(とあるフロントエンドライブラリを使っていた時)

以下のようなバグが使用したライブラリにあった。

  • プロバイダー内でRuntimeを使うとコンテキストの不整合でエラーが発生する。

Deepwikiに関連ライブラリコードを張り付けて質問

難しい事はなく、いくつか不具合が関連するライブラリコードや自分の一部の実装を張り付けて質問。
以下のようなプロンプトで聞いてる

[コード1] ←張り付けるだけ。
[コード2]
:
----
[質問内容]

こんなイメージ

質問の結果

実行の順序や、根本的な原因まで出してくれるの!!凄すぎる!!

これの内容を、いい感じでまとめてissueにまとめて報告した

issueを立てて報告 → 実際に不具合で、対応してくれた。
https://github.com/assistant-ui/assistant-ui/issues/2548

適切なガード処理を追加してくれる対応。(ありがとうございます)

Deepwiki MCPで質問しないの?

絶対MCPで良いやんと思ったんですが、僕はよくこのMCPがエラーで落ちるので、なぜかわかってなくてすみません。
ちゃんとDeepwikiに対しては、「必要な情報+質問」を考えて渡して、解答をコピーするのが安定するのでそうしてます。

やりたかった事は、「AIウォーターフォール」かもしれない

Deepwikiを使って、実装前にどのような手順で実装するかを、計画しておきます。
Deepwikiが現在のコードベースに基づいているから 、安全に実装しやすいです。

最初の計画をきっちり守らせて、CodingAgentに実装させるようにします。

※ある意味、WaterFall的だから、「AIWaterFallをアジャイルでまわす」 みたいな形だと思ってます。

※こうならないようにしたい

やり方まとめ

ミソなのは、OSSライブラリだけではなく、自分たちのプロダクトに対しても DeepWikiは有効です。

  1. ライブラリのコードまたは、「自分たちが扱っているプロダクトのコード」 に対して、Deepwikiに質問して仕様を確認する。または、実装方法の相談をする。
  2. Deepwikiは、現在のコードベースの秩序に基づいて 実装計画を回答してくれる。
  3. その解答をプロンプトとしてClaudeCodeに渡す。

この順序で行います。

所感

Deepwiki忘れている人は、本当に使ったほうが良いです。
プロンプトを、Deepwikiがほぼ作ってくれているも同然です。

CodeMapも活用すればより安全な修正も出来るのではないかと思っています。

「自分たちが書いたコードのDeepwikiを用意する」のがとても良いと思う。
Devinないなら、Deepwiki-Openがおすすめ。
https://github.com/AsyncFuncAI/deepwiki-open

context7も合わせて使うのがおすすめです。
これもMCP経由で、ライブラリの最新のドキュメント参照できる優れものです。(今は簡単なアカウント登録が必要)
https://github.com/upstash/context7

Discussion