DSPy: The framework for programming—not prompting—language models
DSPy: The framework for programming—not prompting—language models
## DSPy: _Programming_—not prompting—Foundation Models **Documentation:** [DSPy Docs](https://dspy.ai/) ---- DSPy is the framework for _programming—rather than prompting—language models_. It allows you to iterate fast on **building modular AI systems** and offers algorithms for **optimizing their prompts and weights**, whether you're building simple classifiers, sophisticated RAG pipelines, or Agent loops. DSPy stands for Declarative Self-improving Python. Instead of brittle prompts, you write compositional _Python code_ and use DSPy to **teach your LM to deliver high-quality outputs**. Learn more via our [official documentation site](https://dspy.ai/) or meet the community, seek help, or start contributing via this GitHub repo and our [Discord server](https://discord.gg/XCGy2WDCQB). ## Documentation: [dspy.ai](https://dspy.ai) **Please go to the [DSPy Docs at dspy.ai](https://dspy.ai)** ## Installation ```bash pip install dspy ``` To install the very latest from `main`: ```bash pip install git+https://github.com/stanfordnlp/dspy.git ``` ## 📜 Citation & Reading More If you're looking to understand the framework, please go to the [DSPy Docs at dspy.ai](https://dspy.ai). If you're looking to understand the underlying research, this is a set of our papers: **[Jul'25] [GEPA: Reflective Prompt Evolution Can Outperform Reinforcement Learning](https://arxiv.org/abs/2507.19457)** **[Jun'24] [Optimizing Instructions and Demonstrations for Multi-Stage Language Model Programs](https://arxiv.org/abs/2406.11695)** **[Oct'23] [DSPy: Compiling Declarative Language Model Calls into Self-Improving Pipelines](https://arxiv.org/abs/2310.03714)** [Jul'24] [Fine-Tuning and Prompt Optimization: Two Great Steps that Work Better Together](https://arxiv.org/abs/2407.10930) [Jun'24] [Prompts as Auto-Optimized Training Hyperparameters](https://arxiv.org/abs/2406.11706) [Feb'24] [Assisting in Writing Wikipedia-like Articles From Scratch with Large Language Models](https://arxiv.org/abs/2402.14207) [Jan'24] [In-Context Learning for Extreme Multi-Label Classification](https://arxiv.org/abs/2401.12178) [Dec'23] [DSPy Assertions: Computational Constraints for Self-Refining Language Model Pipelines](https://arxiv.org/abs/2312.13382) [Dec'22] [Demonstrate-Search-Predict: Composing Retrieval & Language Models for Knowledge-Intensive NLP](https://arxiv.org/abs/2212.14024.pdf) To stay up to date or learn more, follow [@DSPyOSS](https://twitter.com/DSPyOSS) on Twitter or the DSPy page on LinkedIn. The **DSPy** logo is designed by **Chuyi Zhang**. If you use DSPy or DSP in a research paper, please cite our work as follows: ``` … ```
[Bug] Evaluate(save_as_csv=...) raises UnicodeEncodeError on Windows when outputs contain non-ASCII
[Bug] Abandoning a partially consumed sync streamify stream silently consumes the whole upstream in a background thread
[Feature] Copy to Clipboard on Tutorials
[Bug] Closing a partially consumed streamify async stream raises BaseExceptionGroup[GeneratorExit]
[Bug] Ollama requests fail when including an Image
[Bug] JSONAdapter schema mutation causes repeated cache misses with optional output fields (OpenAI/LiteLLM)
[Bug] `dspy.LM(stream=True)` caches LiteLLM's live stream before rejecting it
[Bug] Cache shares mutable results with callers and stores values it cannot read back
[Bug] syncify and Tool use inconsistent running-event-loop policies
Define a DSPy result contract for mixed MCP content blocks