重要なポイント
- MITライセンス——商用利用を含め、無料で利用・改変・セルフホスト可能
- GitHubリポジトリstanfordnlp/dspyは37,900以上のスターと3,300以上のフォークを獲得(2022年12月にStanford NLPで開始)
- PyPIパッケージ
dspy、現行バージョン3.3.1(2026年8月21日)——活発にメンテナンスされている - コア抽象化:Signature(型付き入出力)、Module(Predict、ChainOfThought、ReAct)、Optimizer(BootstrapFewShot、MIPROv2、GEPA)
- カテゴリ:LLMプログラム向けのプロンプト・重み最適化——LangChainやCrewAIのようなマルチエージェント・オーケストレーション・フレームワークではない
- インストール:
pip install dspy、プログラム実行前にLLMプロバイダーの設定が必要
📍 一文で説明
DSPyはStanford NLPによる無料・MITライセンスのPythonフレームワークで、型付きのSignatureとModuleでLLMタスクをプログラムし、手動のプロンプトエンジニアリングの代わりにMIPROv2などのアルゴリズムでプロンプトとFew-Shot例を自動的に最適化する。
💬 簡潔に説明
DSPyでは、LLMにさせたいこと——入力、出力、手順——をコードとして記述すると、自分で推測してプロンプト文を手で編集する代わりに、フレームワークが例に対してオプションをテストして実際に最良のプロンプト文言を探してくれる。
📌補足: DSPyはこのシリーズの他の多くのエージェントフレームワークとは異なる問題を解決するものです——マルチエージェントの会話をオーケストレーションするのではなく、パイプライン内のプロンプトを最適化します。DSPyがエージェント/パイプラインフレームワークの中でどこに位置するかは、Local LLM Software Directoryを参照してください。
Stanford発の研究からプロダクションフレームワークへ
Stanford NLPは2022年12月にDSPyの開発を開始し、stanfordnlp/dspy GitHubリポジトリはこれを「言語モデルをプロンプトするのではなくプログラムするためのフレームワーク」と説明しています。 このプロジェクトは、プロンプト文字列を手で書く代わりに、宣言的なLLMパイプラインをコンパイルするという学術研究から生まれました。
フレームワークは早い段階でSignatureとModuleをコアの抽象化として導入し、その後、最適化アルゴリズムを拡張していきました。Few-Shot例を高速に選択するBootstrapFewShotに続き、ベイズ最適化により指示文とFew-Shot例を同時に探索するMIPROv2が登場し、最近ではドキュメントによれば、例とスコアリング関数から「品質が収束するまで」プロンプトを自動調整するGEPAが加わりました。
本レビュー執筆時点で、DSPyは活発に開発されています。PyPI上のdspyパッケージはバージョン3.3.1(2026年8月21日リリース)でした。プロジェクトのサイトは454人を超えるコントリビューターを報告し、Shopify、Databricks、AWSなどの企業での本番利用を記載しています。
このシリーズの他の複数のフレームワークとは異なり、DSPyはアーカイブされておらず、メンテナンスのみのモードに入ったとも表明されておらず、後継プロジェクトの発表もありません——DSPyは自らが導入したアイデアの、活発に開発が続く正典的な実装です。
Stanford NLPで開発開始
- Date:
- 2022-12
- What it means:
- stanfordnlp/dspyリポジトリと、コアとなるSignature/Module抽象化が誕生
BootstrapFewShotオプティマイザー
- Date:
- 初期リリース
- What it means:
- 高速なベースラインオプティマイザーがトレーニングセットからFew-Shot例をブートストラップ
MIPROv2オプティマイザー
- Date:
- 後期リリース
- What it means:
- ベイズ最適化による指示文とFew-Shot例の同時探索が登場
GEPAオプティマイザー
- Date:
- 最近のリリース
- What it means:
- スコアリング関数に対して自動的にプロンプトを調整する新しいオプティマイザー
PyPIでdspy 3.3.1
- Date:
- 2026-08-21
- What it means:
- 本レビュー時点で検証済みの最新リリース——活発な開発が継続中
📌補足: DSPyのPyPIパッケージ名には知っておく価値のある経緯があります。dspyという名前はもともとPyPIで既に使われていたため、プロジェクトは初期リリースをdspy-aiとして配布していました。現在の正式なパッケージ名はdspyです——現行のインストールにはpip install dspyを使ってください。
DSPyとは何か?
DSPyはStanford NLPが構築したオープンソースのPythonフレームワーク(MITライセンス、活発にメンテナンスされている、github.com/stanfordnlp/dspy)で、言語モデルのタスクを宣言的にプログラムし、その宣言を最適化されたプロンプト——オプションで最適化された重み——にコンパイルするものです。人がプロンプト文をずっと手動で反復調整する代わりに、この仕組みが用いられます。
- Signature:タスクの入力と出力を型付きで定義したもの。短いクラスまたは文字列(例:
"question -> answer")として記述され、異なるLLMやプロンプト戦略の間で移植可能 - Module:Signatureを取り巻く実行戦略を実装するコンポーネント——直接的な補完のための
Predict、段階的推論のためのChainOfThought、ツールを使った推論ループのためのReActなど - Optimizer(以前はteleprompterと呼ばれた):DSPyプログラム内のプロンプトとFew-Shot例を、手動ではなくメトリクスに対して自動的に調整するアルゴリズム——名前付きOptimizerには
BootstrapFewShot、MIPROv2、GEPAがある - プログラムのコンパイル:トレーニングセットとスコアリング関数に対してOptimizerを実行すると、調整済みの指示文と例が組み込まれたコンパイル済みプログラムが生成され、以降は他のDSPyプログラムと同様に実行できる
- モデル非依存:DSPyは組み込みモデルを持たず、設定したLLMプロバイダーに接続する。同じSignature/Moduleのコードを、異なる基盤モデル向けに再最適化することも可能
- マルチエージェント・オーケストレーターではない:DSPyには、CrewAIやAutoGenのような複数のエージェントが通信し合うという組み込みの概念はない。DSPyプログラムは通常、単一のModuleパイプラインであり、
ReActモジュールは推論ループ内でツールを呼び出すことはできる
pip install dspy
# 最小限の例:Signature + Module + Optimizer
import dspy
class AnswerQuestion(dspy.Signature):
"""Answer a question factually."""
question: str = dspy.InputField()
answer: str = dspy.OutputField()
qa = dspy.ChainOfThought(AnswerQuestion)
result = qa(question="What is the capital of France?")
print(result.answer)DSPyの料金はいくらか?
DSPy自体はMITライセンスの下で無料です——サブスクリプションも、有料プランも、Stanfordがホストするサービスもありません。 支払うのは自分自身のコンピュート費用と、設定したLLMプロバイダーのAPI料金だけです。
- DSPy(オープンソースフレームワーク):MITライセンスの下で永久に無料、セルフホスト、利用上限なし、実行にアカウント不要
- ホスト型製品やサブスクリプションはない:DSPyは自分でインポートして実行するライブラリであり、マネージドサービスではない——サブスクライブするものは何もない
- オプションのコスト:クラウドモデルをローカルモデルの代わりに接続する場合、設定したLLMプロバイダーのAPI料金(例:クラウドプロバイダーのトークン単価)がかかる
- オプティマイザーのコストに関する注意:MIPROv2のようなオプティマイザーを実行すると、最良のプロンプト構成を探索するために複数のLLM呼び出しが発生するため、プログラムのコンパイル自体にAPI呼び出しコストがかかり、後でコンパイル済みプログラムを実行するコストに加算される
DSPyのインストールと始め方は?
pip install dspyでPyPIからDSPyをインストールします。 クローンもDockerも別途のCLIバイナリも不要です——DSPyは通常のPythonインポートとして使用します。
- 1パッケージをインストール:
pip install dspy。 - 2LLMプロバイダーを設定する——例えば、ホスト型モデルには
dspy.configure(lm=dspy.LM('openai/gpt-4o-mini', api_key='your-key'))を使うか、ローカルで提供されているOpenAI互換エンドポイントを指す。 - 3タスクの入力と出力を記述するSignatureを定義する。短い文字列(
"question -> answer")として、またはdspy.InputField()/dspy.OutputField()を使った型付きクラスとして。 - 4Signatureをモジュールでラップする——直接呼び出しには
dspy.Predict(...)、段階的推論にはdspy.ChainOfThought(...)を使い、関数のように呼び出す。 - 5オプション:小さなトレーニングセットとスコアリング関数を用意し、
dspy.BootstrapFewShotやdspy.MIPROv2などのオプティマイザーを実行して、調整済みバージョンのプログラムをコンパイルする。 - 6RAGパイプライン、
ReActによるエージェントループ、オプティマイザーの設定を含む完全なチュートリアル一式はDSPyドキュメントを参照。
DSPyの実行にDockerやGPUは必要か?
いいえ。DSPyは設定したLLMプロバイダーを呼び出すPythonライブラリであり、別途ローカルモデルサーバーを実行していない限り、DockerやローカルGPUハードウェアは不要です。
DSPyはローカルモデルで動作するか?
はい。DSPyのLM設定で指す先が、OpenAI互換または他にサポートされているエンドポイント経由で提供されているローカルモデルであれば動作します——DSPy自体は組み込みモデルを持ちません。
DSPyを使うべき人は?
DSPyは、すでにPythonでLLMパイプラインを書いていて、その中のプロンプトを手動の試行錯誤ではなく測定可能な結果に基づいて調整したい開発者に向いています。 マルチエージェントの調整やノーコードのインターフェースを主に必要とするチームには、あまり合いません。
DSPyを使うべきでないのはどんな時か?
タスクの本質が、単一パイプライン内のプロンプト最適化ではなく、複数エージェントの調整やサードパーティ製ツール統合の配線である場合は、DSPyを避けましょう。
- ビジュアルなノーコードのワークフロービルダーが必要なチーム——DSPyはコードファーストで、ドラッグアンドドロップのインターフェースはない
- 本質的にマルチエージェント調整(エージェントが互いにサブタスクを委任し合う)であるプロジェクト——CrewAIやAutoGenのような、そのパターン専用に作られたフレームワークの方が構造的に適している
- 手書きの単一プロンプトですでに十分な性能が出ている単発のスクリプト——SignatureやModule、最適化ループの導入は、測定可能で再現性のあるプロンプト改善が必要な場合にのみ見合うエンジニアリングの手間を追加する
- 正しさをスコアリングする方法がないタスク——DSPyのオプティマイザーはメトリクス関数を必要とするため、ラベル付き例のない純粋に主観的なタスクでは、最適化ステップの恩恵がほとんどない
- パイプライン、メトリクス、トレーニングセットがあり、プロンプトエンジニアリングのステップを自動化・再現可能にしたい場合にこそDSPyを使う
DSPy vs. 代替ツール
DSPyは、ほとんどのエージェント・オーケストレーション・フレームワークとは異なるカテゴリに位置します。複数のエージェントを調整するのではなく、パイプライン内のプロンプトとFew-Shot例を最適化します。最も近い比較対象は、DSPyとは中心的な仕事が異なるものの、LLMパイプラインを構築するための他のPythonフレームワークです。
ツール | 中心的な役割 | ライセンス | ステータス | 最適な用途 |
|---|---|---|---|---|
| DSPy | プロンプト/重みの最適化 | MIT | 活発 | メトリクスに基づくプロンプト調整 |
| LangChain | 汎用LLMパイプライン構築 | MIT | 活発 | 最も広い統合エコシステム |
| LlamaIndex | RAG特化のデータフレームワーク | MIT | 活発 | 検索拡張パイプライン |
| Semantic Kernel | 構造化されたプロンプト/スキル構成 | MIT | 活発(MAFへ収束中) | エンタープライズ.NET/Python/Java SDK |
この表は、マルチエージェント・オーケストレーターではなく、概念的に最も近いPythonパイプラインフレームワークとDSPyを比較しています——DSPyは、エージェント調整を解決するCrewAIやAutoGen(プロンプト最適化ではない)と直接競合するものではありません。
DSPy評価時によくある間違い
これらの間違いは、DSPyをマルチエージェントフレームワークのように扱ったり、フレームワークの本来の目的である最適化ステップを省略したりすることから生じます。
よくある質問
DSPyはまだメンテナンスされているか?
はい。stanfordnlp/dspyリポジトリは活発に開発されています。本レビュー時点で、PyPI上のdspyパッケージはバージョン3.3.1(2026年8月21日リリース)でした。
DSPyは無料で使えるか?
はい。DSPyはMITライセンスであり、商用利用、改変、セルフホストが無料です。サブスクリプションやホスト型製品への支払いはありません。
DSPyとLangChainの違いは?
LangChainは幅広い統合エコシステムを持つLLMパイプライン構築のための汎用フレームワークです。DSPyは、型付きのSignatureとModuleでタスクをプログラムし、その後メトリクスに基づいてプロンプトとFew-Shot例を自動的に最適化することに特化しています。両者は異なる、互いに補完し合う問題を解決します。
DSPyのSignatureとModuleとは何か?
Signatureはタスクの入力と出力の型付き定義(例:"question -> answer")です。Moduleは、Signatureを取り巻く実行戦略を実装します——直接補完のためのPredict、段階的推論のためのChainOfThought、ツールを使う推論ループのためのReAct。
DSPyのオプティマイザーとは何か?
以前はteleprompterと呼ばれたオプティマイザーは、DSPyプログラム内のプロンプトとFew-Shot例を、メトリクスとトレーニングセットに対して自動的に調整するアルゴリズムです——名前付きオプティマイザーにはBootstrapFewShot、MIPROv2、GEPAがあります。
DSPyのインストール方法は?
pip install dspyを実行します。これが現行の正式なPyPIパッケージ名で、古いdspy-aiパッケージがこれに先行していました。
DSPyはCrewAIやAutoGenのようなマルチエージェントフレームワークを置き換えるか?
いいえ。DSPyはパイプライン内のプロンプトを最適化しますが、CrewAIやAutoGenのように複数のエージェントが通信し合うことをオーケストレーションするものではありません。両カテゴリは競合するのではなく、互いに補完し合います。
DSPyはどのライセンスで提供されているか?
商用利用の無料化、改変、セルフホストを許可するMITライセンスです。
DSPyを開発したのは誰か?
DSPyはStanford NLPで開発され、開発は2022年12月に始まりました。プロジェクトは454人を超えるコントリビューターを報告しており、Shopify、Databricks、AWSなどの企業での本番利用が記載されています。
DSPyのGitHubスター数は?
stanfordnlp/dspyリポジトリは、2026年9月時点で37,900を超えるGitHubスターと3,300を超えるフォークを獲得しています。
