[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-stanfordnlp--dspy":3,"tool-stanfordnlp--dspy":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",151918,2,"2026-04-12T11:33:05",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":76,"owner_twitter":72,"owner_website":77,"owner_url":78,"languages":79,"stars":88,"forks":89,"last_commit_at":90,"license":91,"difficulty_score":92,"env_os":93,"env_gpu":93,"env_ram":93,"env_deps":94,"category_tags":97,"github_topics":76,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":98,"updated_at":99,"faqs":100,"releases":130},6926,"stanfordnlp\u002Fdspy","dspy","DSPy: The framework for programming—not prompting—language models","DSPy 是一个专为大语言模型设计的编程框架，旨在帮助开发者从“手动调试提示词”转向“系统化编程构建”。传统开发中，依赖人工反复修改提示词（Prompt）往往效率低下且不稳定，而 DSPy 允许用户通过编写模块化的 Python 代码来定义 AI 系统逻辑，无论是简单的分类任务、复杂的检索增强生成（RAG）流水线，还是智能体循环，都能轻松应对。\n\n该工具的核心价值在于其“自优化”能力。用户只需声明期望的任务目标和约束条件，DSPy 内置的算法便会自动迭代优化模型的提示词甚至权重，从而教会模型输出更高质量的结果。这种将声明式编程与编译优化相结合的方法，显著降低了构建高可靠性 AI 应用的门槛。\n\nDSPy 特别适合 AI 应用开发者、研究人员以及希望构建可维护、可扩展大模型系统的技术团队。对于不再满足于碎片化提示词技巧，而是追求工程化落地和系统性能极致优化的专业人士来说，DSPy 提供了强有力的支持。它让构建 AI 系统变得像编写普通软件一样清晰、高效且可控，是推动大模型应用从实验走向生产的关键利器。","\u003Cp align=\"center\">\n  \u003Cimg align=\"center\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fstanfordnlp_dspy_readme_7ed2700a75c5.png\" width=\"460px\" \u002F>\n\u003C\u002Fp>\n\u003Cp align=\"left\">\n\n\n## DSPy: _Programming_—not prompting—Foundation Models\n\n**Documentation:** [DSPy Docs](https:\u002F\u002Fdspy.ai\u002F)\n\n[![PyPI Downloads](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fstanfordnlp_dspy_readme_990788e894f1.png)](https:\u002F\u002Fpepy.tech\u002Fprojects\u002Fdspy)\n\n\n----\n\nDSPy 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.\n\nDSPy 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:\u002F\u002Fdspy.ai\u002F) or meet the community, seek help, or start contributing via this GitHub repo and our [Discord server](https:\u002F\u002Fdiscord.gg\u002FXCGy2WDCQB).\n\n\n## Documentation: [dspy.ai](https:\u002F\u002Fdspy.ai)\n\n\n**Please go to the [DSPy Docs at dspy.ai](https:\u002F\u002Fdspy.ai)**\n\n\n## Installation\n\n\n```bash\npip install dspy\n```\n\nTo install the very latest from `main`:\n\n```bash\npip install git+https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy.git\n````\n\n\n\n\n## 📜 Citation & Reading More\n\nIf you're looking to understand the framework, please go to the [DSPy Docs at dspy.ai](https:\u002F\u002Fdspy.ai).\n\nIf you're looking to understand the underlying research, this is a set of our papers:\n\n**[Jul'25] [GEPA: Reflective Prompt Evolution Can Outperform Reinforcement Learning](https:\u002F\u002Farxiv.org\u002Fabs\u002F2507.19457)**       \n**[Jun'24] [Optimizing Instructions and Demonstrations for Multi-Stage Language Model Programs](https:\u002F\u002Farxiv.org\u002Fabs\u002F2406.11695)**       \n**[Oct'23] [DSPy: Compiling Declarative Language Model Calls into Self-Improving Pipelines](https:\u002F\u002Farxiv.org\u002Fabs\u002F2310.03714)**     \n[Jul'24] [Fine-Tuning and Prompt Optimization: Two Great Steps that Work Better Together](https:\u002F\u002Farxiv.org\u002Fabs\u002F2407.10930)     \n[Jun'24] [Prompts as Auto-Optimized Training Hyperparameters](https:\u002F\u002Farxiv.org\u002Fabs\u002F2406.11706)    \n[Feb'24] [Assisting in Writing Wikipedia-like Articles From Scratch with Large Language Models](https:\u002F\u002Farxiv.org\u002Fabs\u002F2402.14207)         \n[Jan'24] [In-Context Learning for Extreme Multi-Label Classification](https:\u002F\u002Farxiv.org\u002Fabs\u002F2401.12178)       \n[Dec'23] [DSPy Assertions: Computational Constraints for Self-Refining Language Model Pipelines](https:\u002F\u002Farxiv.org\u002Fabs\u002F2312.13382)   \n[Dec'22] [Demonstrate-Search-Predict: Composing Retrieval & Language Models for Knowledge-Intensive NLP](https:\u002F\u002Farxiv.org\u002Fabs\u002F2212.14024.pdf)\n\nTo stay up to date or learn more, follow [@DSPyOSS](https:\u002F\u002Ftwitter.com\u002FDSPyOSS) on Twitter or the DSPy page on LinkedIn.\n\nThe **DSPy** logo is designed by **Chuyi Zhang**.\n\nIf you use DSPy or DSP in a research paper, please cite our work as follows:\n\n```\n@inproceedings{khattab2024dspy,\n  title={DSPy: Compiling Declarative Language Model Calls into Self-Improving Pipelines},\n  author={Khattab, Omar and Singhvi, Arnav and Maheshwari, Paridhi and Zhang, Zhiyuan and Santhanam, Keshav and Vardhamanan, Sri and Haq, Saiful and Sharma, Ashutosh and Joshi, Thomas T. and Moazam, Hanna and Miller, Heather and Zaharia, Matei and Potts, Christopher},\n  journal={The Twelfth International Conference on Learning Representations},\n  year={2024}\n}\n@article{khattab2022demonstrate,\n  title={Demonstrate-Search-Predict: Composing Retrieval and Language Models for Knowledge-Intensive {NLP}},\n  author={Khattab, Omar and Santhanam, Keshav and Li, Xiang Lisa and Hall, David and Liang, Percy and Potts, Christopher and Zaharia, Matei},\n  journal={arXiv preprint arXiv:2212.14024},\n  year={2022}\n}\n```\n\n\u003C!-- You can also read more about the evolution of the framework from Demonstrate-Search-Predict to DSPy:\n\n* [**DSPy Assertions: Computational Constraints for Self-Refining Language Model Pipelines**](https:\u002F\u002Farxiv.org\u002Fabs\u002F2312.13382)   (Academic Paper, Dec 2023) \n* [**DSPy: Compiling Declarative Language Model Calls into Self-Improving Pipelines**](https:\u002F\u002Farxiv.org\u002Fabs\u002F2310.03714) (Academic Paper, Oct 2023) \n* [**Releasing DSPy, the latest iteration of the framework**](https:\u002F\u002Ftwitter.com\u002Flateinteraction\u002Fstatus\u002F1694748401374490946) (Twitter Thread, Aug 2023)\n* [**Releasing the DSP Compiler (v0.1)**](https:\u002F\u002Ftwitter.com\u002Flateinteraction\u002Fstatus\u002F1625231662849073160)  (Twitter Thread, Feb 2023)\n* [**Introducing DSP**](https:\u002F\u002Ftwitter.com\u002Flateinteraction\u002Fstatus\u002F1617953413576425472)  (Twitter Thread, Jan 2023)\n* [**Demonstrate-Search-Predict: Composing retrieval and language models for knowledge-intensive NLP**](https:\u002F\u002Farxiv.org\u002Fabs\u002F2212.14024.pdf) (Academic Paper, Dec 2022) -->\n\n","\u003Cp align=\"center\">\n  \u003Cimg align=\"center\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fstanfordnlp_dspy_readme_7ed2700a75c5.png\" width=\"460px\" \u002F>\n\u003C\u002Fp>\n\u003Cp align=\"left\">\n\n\n## DSPy：用编程而非提示来驾驭基础模型\n\n**文档：** [DSPy 文档](https:\u002F\u002Fdspy.ai\u002F)\n\n[![PyPI 下载量](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fstanfordnlp_dspy_readme_990788e894f1.png)](https:\u002F\u002Fpepy.tech\u002Fprojects\u002Fdspy)\n\n\n----\n\nDSPy 是一个用于**通过编程而非提示来操控语言模型**的框架。它使你能够快速迭代地**构建模块化 AI 系统**，并提供算法来**优化其提示和权重**，无论你是要构建简单的分类器、复杂的 RAG 流程，还是智能体循环。\n\nDSPy 代表“声明式的自我改进 Python”。与其使用脆弱的提示模板，不如编写组合式的 _Python 代码_，然后利用 DSPy 来 **教会你的语言模型生成高质量的输出**。更多内容请访问我们的[官方文档网站](https:\u002F\u002Fdspy.ai\u002F)，或通过本 GitHub 仓库以及我们的[Discord 社区](https:\u002F\u002Fdiscord.gg\u002FXCGy2WDCQB)与社区交流、寻求帮助或参与贡献。\n\n\n## 文档：[dspy.ai](https:\u002F\u002Fdspy.ai)\n\n\n**请前往 [dspy.ai 上的 DSPy 文档](https:\u002F\u002Fdspy.ai)**\n\n\n## 安装\n\n\n```bash\npip install dspy\n```\n\n若需安装 `main` 分支上的最新版本：\n\n```bash\npip install git+https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy.git\n````\n\n\n\n\n## 📜 引用与进一步阅读\n\n如果你想深入了解该框架，请访问 [dspy.ai 上的 DSPy 文档](https:\u002F\u002Fdspy.ai)。\n\n如果你希望了解其背后的科研工作，以下是我们发表的相关论文：\n\n**[2025年7月] [GEPA：反思式提示进化可超越强化学习](https:\u002F\u002Farxiv.org\u002Fabs\u002F2507.19457)**       \n**[2024年6月] [为多阶段语言模型程序优化指令与示范](https:\u002F\u002Farxiv.org\u002Fabs\u002F2406.11695)**       \n**[2023年10月] [DSPy：将声明式语言模型调用编译为自改进流水线](https:\u002F\u002Farxiv.org\u002Fabs\u002F2310.03714)**     \n[2024年7月] [微调与提示优化：两项相辅相成的绝佳实践](https:\u002F\u002Farxiv.org\u002Fabs\u002F2407.10930)     \n[2024年6月] [提示作为自动优化的训练超参数](https:\u002F\u002Farxiv.org\u002Fabs\u002F2406.11706)    \n[2024年2月] [利用大型语言模型从零开始撰写维基百科式文章](https:\u002F\u002Farxiv.org\u002Fabs\u002F2402.14207)         \n[2024年1月] [面向极端多标签分类的上下文学习](https:\u002F\u002Farxiv.org\u002Fabs\u002F2401.12178)       \n[2023年12月] [DSPy 断言：用于自精炼语言模型流水线的计算约束](https:\u002F\u002Farxiv.org\u002Fabs\u002F2312.13382)   \n[2022年12月] [演示-搜索-预测：为知识密集型 NLP 组合检索与语言模型](https:\u002F\u002Farxiv.org\u002Fabs\u002F2212.14024.pdf)\n\n如需保持更新或了解更多，请在 Twitter 上关注 [@DSPyOSS](https:\u002F\u002Ftwitter.com\u002FDSPyOSS)，或在 LinkedIn 上关注 DSPy 页面。\n\n**DSPy** 的标志由 **Chuyi Zhang** 设计。\n\n如果你在研究论文中使用了 DSPy 或 DSP，请按以下方式引用我们的工作：\n\n```\n@inproceedings{khattab2024dspy,\n  title={DSPy：将声明式语言模型调用编译为自改进流水线},\n  author={Khattab, Omar and Singhvi, Arnav and Maheshwari, Paridhi and Zhang, Zhiyuan and Santhanam, Keshav and Vardhamanan, Sri and Haq, Saiful and Sharma, Ashutosh and Joshi, Thomas T. and Moazam, Hanna and Miller, Heather and Zaharia, Matei and Potts, Christopher},\n  journal={第十二届国际学习表征会议},\n  year={2024}\n}\n@article{khattab2022demonstrate,\n  title={演示-搜索-预测：为知识密集型 {NLP} 组合检索与语言模型},\n  author={Khattab, Omar and Santhanam, Keshav and Li, Xiang Lisa and Hall, David and Liang, Percy and Potts, Christopher and Zaharia, Matei},\n  journal={arXiv 预印本 arXiv:2212.14024},\n  year={2022}\n}\n```\n\n\u003C!-- 你也可以阅读框架从“演示-搜索-预测”演进到 DSPy 的历程：\n\n* [**DSPy 断言：用于自精炼语言模型流水线的计算约束**](https:\u002F\u002Farxiv.org\u002Fabs\u002F2312.13382)   （学术论文，2023年12月） \n* [**DSPy：将声明式语言模型调用编译为自改进流水线**](https:\u002F\u002Farxiv.org\u002Fabs\u002F2310.03714) （学术论文，2023年10月） \n* [**发布 DSPy，框架的最新迭代**](https:\u002F\u002Ftwitter.com\u002Flateinteraction\u002Fstatus\u002F1694748401374490946) （推特长文，2023年8月）\n* [**发布 DSP 编译器（v0.1）**](https:\u002F\u002Ftwitter.com\u002Flateinteraction\u002Fstatus\u002F1625231662849073160)  （推特长文，2023年2月）\n* [**推出 DSP**](https:\u002F\u002Ftwitter.com\u002Flateinteraction\u002Fstatus\u002F1617953413576425472)  （推特长文，2023年1月）\n* [**演示-搜索-预测：为知识密集型 NLP 组合检索与语言模型**](https:\u002F\u002Farxiv.org\u002Fabs\u002F2212.14024.pdf) （学术论文，2022年12月） -->","# DSPy 快速上手指南\n\nDSPy 是一个用于**编程而非提示词工程**的大语言模型框架。它允许开发者通过编写模块化的 Python 代码来构建 AI 系统，并提供算法自动优化提示词（Prompts）和模型权重，适用于分类器、RAG 管道及智能体（Agent）循环等场景。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux, macOS 或 Windows\n*   **Python 版本**：建议 Python 3.8 或更高版本\n*   **前置依赖**：\n    *   `pip` 包管理工具\n    *   有效的 LLM API 密钥（如 OpenAI, Anthropic 等，用于实际运行模型）\n\n## 安装步骤\n\n### 方式一：安装稳定版（推荐）\n\n使用 pip 直接安装官方发布的稳定版本：\n\n```bash\npip install dspy\n```\n\n> **国内加速建议**：如果遇到下载速度慢的问题，可以使用国内镜像源（如清华源）进行安装：\n> ```bash\n> pip install dspy -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n### 方式二：安装最新开发版\n\n如果您需要体验 `main` 分支的最新功能：\n\n```bash\npip install git+https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy.git\n```\n\n## 基本使用\n\nDSPy 的核心理念是将提示词定义为 Python 代码中的模块（Signature），并通过编译器（Compiler）自动优化这些模块。以下是一个最简单的文本分类示例流程：\n\n### 1. 定义签名与模块\n首先，声明输入和输出的格式（Signature），然后将其包装为一个 LM 模块。\n\n```python\nimport dspy\n\n# 1. 定义任务签名：输入是问题，输出是答案（是\u002F否）\nclass AnswerQuestion(dspy.Signature):\n    \"\"\"Answer the question with a yes or no.\"\"\"\n    question = dspy.InputField()\n    answer = dspy.OutputField(desc=\"Yes or No\")\n\n# 2. 将签名封装为预测模块\ngenerate_answer = dspy.Predict(AnswerQuestion)\n```\n\n### 2. 配置语言模型\n在使用前，需要初始化并配置您想要使用的底层大语言模型（例如 OpenAI 的 GPT-3.5）。\n\n```python\n# 配置 LM (请替换为您的真实 API Key)\nlm = dspy.OpenAI(model='gpt-3.5-turbo', api_key='YOUR_OPENAI_API_KEY')\ndspy.configure(lm=lm)\n```\n\n### 3. 执行预测\n直接调用模块即可获取结果。在未优化前，它表现为标准的提示词调用；后续可结合 DSPy 的优化器（如 `BootstrapFewShot`）进行自动微调。\n\n```python\n# 执行预测\nprediction = generate_answer(question=\"Is the sky blue?\")\n\nprint(f\"Question: {prediction.question}\")\nprint(f\"Answer: {prediction.answer}\")\n```\n\n---\n**更多资源**：\n*   官方文档：[dspy.ai](https:\u002F\u002Fdspy.ai\u002F)\n*   社区交流：[Discord](https:\u002F\u002Fdiscord.gg\u002FXCGy2WDCQB)","某电商公司的算法团队正在构建一个智能客服系统，需要让大模型根据实时检索到的商品知识库，准确回答用户关于退货政策和库存状态的复杂咨询。\n\n### 没有 dspy 时\n- 工程师花费大量时间手动编写和调试冗长的 Prompt 模板，每次调整业务逻辑都需要重新构思提示词结构。\n- 检索增强生成（RAG）流程不稳定，模型经常忽略检索到的关键文档，产生“幻觉”或回答与事实不符。\n- 缺乏系统的优化手段，面对效果波动只能凭经验微调少量示例（Few-shot），难以量化提升效果。\n- 代码与提示词高度耦合，导致系统模块复用性差，新增一个咨询类别往往需要重构整个推理链路。\n\n### 使用 dspy 后\n- 开发者只需定义声明式的 Python 模块来描述任务逻辑，dspy 自动编译并生成最优的指令和示例，大幅减少人工调参。\n- 内置的自我改进算法能自动训练模型更好地利用检索内容，显著降低幻觉率，确保回答严格基于知识库事实。\n- 提供自动化的提示词和权重优化流程，只需提供少量验证数据，dspy 即可迭代出性能更强的推理策略。\n- 实现了真正的模块化编程，不同的推理阶段可像乐高积木一样自由组合，快速适配新的客服场景而无需推倒重来。\n\ndspy 将不可控的“提示词工程”转化为可迭代、可优化的“编程范式”，让构建高可靠性的 AI 应用变得高效且确定。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fstanfordnlp_dspy_7ed2700a.png","stanfordnlp","Stanford NLP","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fstanfordnlp_d4449e42.png","",null,"nlp.stanford.edu","https:\u002F\u002Fgithub.com\u002Fstanfordnlp",[80,84],{"name":81,"color":82,"percentage":83},"Python","#3572A5",99.3,{"name":85,"color":86,"percentage":87},"JavaScript","#f1e05a",0.7,33619,2781,"2026-04-12T13:58:12","MIT",1,"未说明",{"notes":95,"python":93,"dependencies":96},"README 中仅提供了通过 pip 安装的基本命令（pip install dspy），未明确列出具体的操作系统、GPU、内存、Python 版本及依赖库要求。该工具主要用于编排和优化大语言模型调用，实际运行环境需求通常取决于所连接的具体大模型后端（如本地部署的模型或云端 API）以及是否启用本地微调功能。建议参考官方文档 (dspy.ai) 获取最新详细配置信息。",[],[35,14,13],"2026-03-27T02:49:30.150509","2026-04-13T04:24:37.989612",[101,106,111,116,121,125],{"id":102,"question_zh":103,"answer_zh":104,"source_url":105},31208,"DSPy 是否支持聊天模式（Chat Mode）以更好地利用针对对话训练的模型？","是的，该问题已在 DSPy 2.5 版本中解决。新的 `dspy.LM` 和底层的 `dspy.ChatAdapter` 能够正确处理聊天模式的格式，避免模型输出多余的引导语或重复模板。用户只需参考迁移指南（https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fblob\u002Fmain\u002Fexamples\u002Fmigration.ipynb），通常只需 2-3 分钟修改 LM 定义即可生效。此外，对于需要结构化输出的场景，建议使用 `TypedPredictor` 并在 Schema 中包含名为 'reasoning' 的字段来显式要求思维链（CoT），而不是依赖非结构化的提示混合。","https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fissues\u002F662",{"id":107,"question_zh":108,"answer_zh":109,"source_url":110},31209,"如何升级 DSPy 以兼容最新版本的 OpenAI Python 库（v1.x）？","DSPy 已更新以支持最新的 OpenAI Python 库（v1.6.1+），相关修复已发布到 PyPI。如果您仍在使用旧版缓存的 Notebook 或环境，可能需要显式指定 `openai~=0.28.1` 才能正常工作。建议检查您的依赖项配置，确保安装了最新版的 DSPy 以获得对 OpenAI v1 API 的原生支持。","https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fissues\u002F258",{"id":112,"question_zh":113,"answer_zh":114,"source_url":115},31210,"除了问答（QA）任务外，是否有其他实用的 DSPy 应用案例（如邮件分类与信息提取）？","是的，DSPy 不仅限于 QA 任务。目前仓库的 `examples\u002F` 目录以及官方 Discord 和 Twitter 上已经提供了大量非 QA 示例。对于复杂的管道任务（如：长文本摘要 -> 分类 -> 基于类别的信息提取），用户可以参考这些现有示例来构建自己的流程。社区也建议寻找基于检索的少样本学习（ICL）分类示例，这类示例通常使用简单的 sentence-transformers 检索器而无需复杂的 ColBERT 安装。","https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fissues\u002F164",{"id":117,"question_zh":118,"answer_zh":119,"source_url":120},31211,"如何在 DSPy 中使用 LiteLLM Proxy 进行嵌入（Embedding）操作？","虽然 DSPy 推出了 `MultiOpenAI` 以支持 LiteLLM Proxy，但原生的向量器类可能尚未直接覆盖所有 LiteLLM 嵌入场景。社区用户已提交 PR（#1240）添加了 `LiteLLMVectorizer`（后更名为 `MultiOpenAIVectorizer` 以遵循新的 API 规范）。该方案允许在 DSPy 的检索模块（RM）中使用通用的 OpenAI API 格式（包括 LiteLLM Proxy），从而实现预测和嵌入功能的统一支持。您可以参考该 PR 的代码实现或直接使用更新后的 `MultiOpenAIVectorizer` 类。","https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fissues\u002F390",{"id":122,"question_zh":123,"answer_zh":124,"source_url":120},31212,"DSPy 的重大重构计划（Refactor Roadmap）目前进展如何？","关于清理 LM 抽象、签名（Signature）抽象、模块和优化器的重大重构工作正在进行中。相关的代码开发主要集中在 `backend-refactor` 分支（https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Ftree\u002Fbackend-refactor）。该重构旨在简化架构，明确边界，并引入更清晰的后端抽象和不可变签名。如果您关注此进度，可以查看该分支的最新提交。",{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},31213,"在使用 Azure OpenAI GPT-4 时遇到 500 内部错误，而直接使用 LiteLLM 或其他客户端正常，可能的原因是什么？","此类问题通常与消息格式的细微差异有关。虽然 DSPy 的 Azure 客户端和 LiteLLM 都发送包含 'role' 和 'content' 的消息，但 DSPy 可能在处理特定签名（Signature）或模块（Module）输出格式时与 Azure 的某些部署配置不兼容。建议检查：1. 确保使用的 DSPy 版本已修复了 Azure 相关的格式化问题；2. 对比 DSPy 实际发送的完整 JSON payload 与 LiteLLM 成功发送的 payload，查找是否有额外的字段或缺失的系统消息（system message）；3. 尝试显式定义 `dspy.Signature` 中的输入输出字段类型，避免模型生成不符合预期的格式导致 Azure 端解析失败返回 500 错误。","https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fissues\u002F686",[131,136,141,146,151,156,161,166,171,176,181,186,191,196,201,206,211,216,221,226],{"id":132,"version":133,"summary_zh":134,"released_at":135},230893,"3.1.3","## 变更内容\n\nRLMs\n* 修复（解释器）：由 @missing-piece 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9256 中修复了多文件情况下 `enable_read_paths` 的问题。\n* 修复：由 @darinkishore 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9219 中处理了推理模型中 RLM 的字典响应。\n* 功能（代码解释器）：由 @isaacbmiller 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9226 中将消息格式转换为 JSON-RPC。\n* 功能（RLMs）：由 @isaacbmiller 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9231 中修复了代码块的解析问题。\n* 修复（RLM）：由 @isaacbmiller 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9233 中修复了大量变量注入的问题。\n* 修复（RLM）：由 @isaacbmiller 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9234 中解决了不再因导入语句而卡住的问题。\n* 修复（RLM）：由 @isaacbmiller 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9247 中重构了工具接口，使其接受列表而非字典，并正确序列化 None\u002Fnull 值。\n\nGEPA\n* 更新 gepa[dspy] 依赖至 0.0.26 版本，增加了 GEPA 中缓存评估的支持，预计可减少指标调用次数、修复 MLFlow 日志记录问题以及若干 bug，由 @LakshyAAAgrawal 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9238 中完成。\n* 将 gepa[dspy] 版本更新至 0.0.25，增加了对 Python 3.14 的支持，由 @LakshyAAAgrawal 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9224 中完成。\n* 暂时移除 GEPA 工具优化文档，由 @chenmoneygithub 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9220 中完成。\n* 修复（gepa）：移除 `enable_tool_optimization` 功能，由 @Ju-usc 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9223 中完成。\n\n维护\n* 通过设置确定性温度来稳定真实 LM 测试，由 @okhat 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9218 中完成。\n* 修复：由 @emmanuel-ferdman 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9227 中处理了来自 ColBERTv2 服务器的错误响应。\n* 修复格式，由 @chenmoneygithub 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9249 中完成。\n* 修复流式模式下的请求头，由 @chenmoneygithub 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9248 中完成。\n* 功能（文档）：由 @isaacbmiller 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9222 中添加了社区端口页面。\n\n推迟到后续版本（在本次发布前被添加后又撤回）：\n* 允许 DSPy 使用模型原生的推理能力，由 @chenmoneygithub 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8822 中提出。\n* 将 ChainOfThought 恢复为 dspy.Reasoning 之前的（#8822）行为，由 @okhat 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9258 中完成。\n\n## 新贡献者\n* @missing-piece 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9256 中完成了首次贡献。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fcompare\u002F3.1.2...3.1.3","2026-02-05T16:18:52",{"id":137,"version":138,"summary_zh":139,"released_at":140},230894,"3.1.2","## 变更内容\n\n维护\n* ci：在发布工作流中安装 Deno，由 @okhat 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9217 中完成\n* 修复 RAG 教程中的下载 bug，由 @togimoto 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9156 中完成\n* 更新 DSpy 设置的保存和加载方法，由 @WeichenXu123 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9215 中完成\n* 在 Parallel 中公开 timeout 和 straggler_limit 参数，由 @halfprice06 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9199 中完成\n* 修复 JSON 解析：移除初始的正则表达式提取，由 @blightzero 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9182 中完成\n\n## 新贡献者\n* @halfprice06 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9199 中完成了首次贡献\n* @blightzero 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9182 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fcompare\u002F3.1.1...3.1.2","2026-01-19T14:16:35",{"id":142,"version":143,"summary_zh":144,"released_at":145},230895,"3.1.1","## 变更内容\n\nRLM\n* 功能（rlm）：添加 RLM 模块，并由 @isaacbmiller 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9193 中改进 PythonInterpreter\n* 在 `dspy.Code` 字段的系统指令中使用 `language`，由 @mariusarvinte 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9106 中完成\n* 更新 dspy.RLM 以提高可靠性并避免 pydantic 警告，由 @okhat 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9210 中完成\n* 修复（RLM）：将 FinalAnswerResult 更改为 FinalOutput，并移除 RLM 的 __call__ 方法，由 @isaacbmiller 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9212 中完成\n\n\nGEPA\n* 修复 GEPAFeedbackMetric 协议缺少 'self' 参数的问题，由 Copilot 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9111 中完成\n* 功能（gepa）：为多智能体系统添加工具描述优化，由 @Ju-usc 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8928 中完成\n* 更新 pyproject.toml，将 gepa 从 0.0.22 更新至 0.0.24，由 @LakshyAAAgrawal 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9161 中完成\n* 修补 `dspy.gepa`，使其能够处理来自 `dspy.LM` 的 `list[dict]` 输出，由 @mariusarvinte 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9169 中完成\n\n\n适配器\n* 升级 json_repair，以修复下划线风格浮点数的解析问题，由 @chenmoneygithub 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9088 中完成\n* 正确地在流式传输中生成最后一个数据块，由 @chenmoneygithub 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9089 中完成\n* 避免在同步上下文中运行异步工具时出现不必要的异常链，由 @stevapple 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9092 中完成\n* 增强 StreamListener，支持输出的泛型类型注解，由 @TomeHirata 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9112 中完成\n* 修复：streamify 曾直接将 StatusStreamingCallback 追加到共享 settings.callbacks 列表中，由 @glesperance 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9073 中完成\n* 修复（BAMLAdapter）：使用文档字符串描述 BaseModel，由 @BenMcH 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9125 中完成\n* 修复 Responses API 的结构化输出，由 @Olocool17 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9130 中完成\n\n\n维护\n* 修复 UsageTracker 在使用 ParallelExecutor 与 dspy.context 时出现的 AttributeError，由 Copilot 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9095 中完成\n* 将 uv.lock dspy 版本更新为与最新版本一致，由 @chenmoneygithub 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9067 中完成\n* 【文档】为 dspy\u002Fadapters\u002Fchat_adapter.py 中的 ChatAdapter 类添加 Google 风格的文档字符串 #9063，由 @azai91 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9072 中完成\n* 修复 React 循环中重试 3 次后出现的 ContextWindowExceededError，由 Copilot 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9110 中完成\n* 修复：当两个用量条目的值均为 None 时，跳过合并操作，由 @chizukicn 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9121 中完成\n* 修复：强制要求内存缓存的 `memory_max_entries` 为正数，由 @mshr-h 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9128 中完成\n* 为 `dspy.datasets.dataset` 添加类型注解，由 @max-muoto 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9143 中完成\n* 提高 dspy.ReAct 的 max_iters 值，由 @chenmoneygi","2026-01-19T02:30:49",{"id":147,"version":148,"summary_zh":149,"released_at":150},230896,"3.1.0","## 变更内容\n\n这是 3.1.0 正式版。我们现将测试版 3.1.0beta1 正式发布。\n\n### 优化器与评估\n\n* 添加由 @ZachParent 编写的使用 GEPA 的 dspy-trusted-monitor 教程，详见 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8938\n* 将 gepa[dspy] 依赖版本更新至 0.0.18，由 @LakshyAAAgrawal 完成，详见 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8969\n* 修复 (MIPROv2): 在判断程序是否为零样本时，未考虑 .compile 参数的影响，此问题由 @isaacbmiller 修复，详见 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8909\n* 将 gepa[dspy] 依赖版本更新至 0.0.22，由 @LakshyAAAgrawal 完成，详见 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9042\n* 【文档】添加 GEPA 的 gepa_kwargs 文档说明，由 @GabrielLoiseau 完成，详见 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8998\n* 更新优化器概览，加入对 SIMBA 的介绍，由 @TomeHirata 完成，详见 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9026\n* 仅在 GEPA 的完整评估中启用回调日志记录，由 @TomeHirata 完成，详见 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9050\n* 更新 Arbor 教程，由 @Ziems 完成，详见 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9007\n* 更新 RL 教程，由 @Ziems 完成，详见 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9008\n\n### 功能与增强\n\n* 在 ChatAdapter 中添加禁用回退选项，由 @Ziems 完成，详见 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8984\n* 添加基于适配器和签名提取系统消息的方法，由 @chenmoneygithub 完成，详见 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9006\n* 新增文件类型处理功能，用于处理文件数据，由 @TomeHirata 完成，详见 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9014\n* 允许流监听器适用于任何类型的数据，由 @chenmoneygithub 完成，详见 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8833\n* 修复音频格式问题：将 'x-wav' 格式归一化为 'wav'，由 @akshatvishu 完成，详见 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9017\n* 支持 Python 3.14，由 @TomeHirata 完成，详见 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9041\n* 引入 dspy.Reasoning 类，用于捕获推理模型的原生推理过程，由 @chenmoneygithub 完成，详见 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8986\n\n### 安全性与序列化\n\n* 添加防止加载 pkl 文件的防护措施，由 @isaacbmiller 完成，详见 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9048\n* 添加 load_memory_cache 参数，以阻止未经明确许可加载 pkl 文件，由 @isaacbmiller 完成，详见 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9055\n\n### 错误修复与类型处理\n\n* 修复在使用 Anthropic 模型并返回 Pydantic 对象时，跟踪使用情况时出现的 TypeError，由 @Copilot 完成，详见 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8978\n* 更新旧版 Anthropic 模型名称，由 @TomeHirata 完成，详见 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8992\n* 修复 XMLAdapter：实现用户消息格式化功能，由 @BenMcH 完成，详见 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9003\n* 修复 OpenAI Responses API 的内容输入转换问题，由 @Copilot 完成，详见 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8993\n* 重构：更新适配器和 LM 方法的类型提示，由 @TomeHirata 完成，详见 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9025\n* 修复 (dspy)","2026-01-06T18:48:05",{"id":152,"version":153,"summary_zh":154,"released_at":155},230897,"3.1.0b1","## 变更内容\n\n这是 3.1.0 的预发布版本。\n\n### 优化器与评估\n\n* 添加由 @ZachParent 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8938 中编写的使用 GEPA 的 dspy-trusted-monitor 教程。\n* 将 gepa[dspy] 依赖版本更新至 0.0.18，由 @LakshyAAAgrawal 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8969 中完成。\n* 修复 (MIPROv2)：在确定程序是否为零样本之前，未将 .compile 参数考虑在内，此问题由 @isaacbmiller 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8909 中修复。\n* 将 gepa[dspy] 依赖版本更新至 0.0.22，由 @LakshyAAAgrawal 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9042 中完成。\n* 【文档】添加 GEPA 的 gepa_kwargs 文档，由 @GabrielLoiseau 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8998 中完成。\n* 更新优化器概览，加入对 SIMBA 的描述，由 @TomeHirata 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9026 中完成。\n* 仅在 GEPA 的完整评估中启用回调日志记录，由 @TomeHirata 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9050 中实现。\n* 更新 Arbor 教程，由 @Ziems 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9007 中完成。\n* 更新 RL 教程，由 @Ziems 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9008 中完成。\n\n### 功能与增强\n\n* 在 ChatAdapter 中添加禁用回退选项，由 @Ziems 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8984 中完成。\n* 添加基于适配器和签名提取系统消息的方法，由 @chenmoneygithub 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9006 中完成。\n* 新增功能 (文件)：添加用于处理文件数据的 File 类型，由 @TomeHirata 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9014 中完成。\n* 允许流监听器适用于任何类型，由 @chenmoneygithub 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8833 中完成。\n* 修复 (音频)：将 'x-wav' 音频格式归一化为 'wav'，由 @akshatvishu 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9017 中完成。\n* 支持 Python 3.14，由 @TomeHirata 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9041 中完成。\n* 引入 dspy.Reasoning，以捕获推理模型中的原生推理过程，由 @chenmoneygithub 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8986 中完成。\n\n### 安全性与序列化\n\n* 添加防止加载 pkl 文件的防护措施，由 @isaacbmiller 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9048 中完成。\n* 添加 load_memory_cache 参数，以阻止在未明确指定的情况下加载 pkl 文件，由 @isaacbmiller 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9055 中完成。\n\n### 错误修复与类型处理\n\n* 修复在使用返回 Pydantic 对象的 Anthropic 模型进行用量跟踪时出现的 TypeError，由 @Copilot 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8978 中完成。\n* 更新旧版 Anthropic 模型名称，由 @TomeHirata 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8992 中完成。\n* 修复 (XMLAdapter)：实现用户消息格式化，由 @BenMcH 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9003 中完成。\n* 修复 OpenAI Responses API 的内容输入转换问题，由 @Copilot 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8993 中完成。\n* 重构：更新适配器和 LM 方法的类型提示，由 @TomeHirata 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F9025 中完成。\n* 修复 (dspy)：将 gpt-5-chat 排除在推理模型分类之外。","2025-11-18T00:26:51",{"id":157,"version":158,"summary_zh":159,"released_at":160},230898,"3.0.4","3.0.4b2 已经运行了一段时间，未发现任何问题，因此我们将其正式发布为 3.0.4 版本。\n\n发行说明结合了 3.0.4b1 和 3.0.4b2 的内容。\n\n\n## 变更内容\n\n### 优化器\n\n- 由 @smec-cgint 在 #8739 中修复了 GEPA 在处理元组输出时的使用情况跟踪问题。\n- 由 @andressrg 在 #8737 中为 GEPA 添加了自定义 instruction_proposer 支持，并支持多模态（dspy.Image）处理。\n- 由 @LakshyAAAgrawal 在 #8770 中增强了 GEPA 中验证集使用情况的日志记录。\n- [新功能] GEPA：由 @andressrg 在 #8765 中添加了自定义组件选择逻辑支持。\n- 由 @TomeHirata 在 #8763 中增加了 MLFLow 与 GEPA 的兼容性支持。\n- 由 @LakshyAAAgrawal 在 #8792 中更新了优化概览，并加入了数据拆分指导。\n- 文档：由 @andressrg 在 #8775 中为 GEPA 添加了全面的 instruction_proposer 文档和示例。\n- 由 @LakshyAAAgrawal 在 #8850 中引入了 gepa_kwargs，用于向 gepa.optimize 传递自定义关键字参数。\n- 由 @TomeHirata 在 #8835 中实现了在 GEPA 小批量评估过程中传播回调元数据的功能。\n- 由 @TomeHirata 在 #8840 中修复了 GEPA 警告中的拼写错误。\n- 更新 gepa[dspy] 依赖版本至 0.0.17；由 @LakshyAAAgrawal 在 #8859 中提出，这可能是解决 GEPA 中从状态加载功能失效问题的潜在方案。\n- SIMBA 改进：由 @klopsahlong 在 #8766 中完成。\n\n### 功能与增强\n\n- 由 @TomeHirata 在 #8721 中添加了对 Anthropic Citation API 的支持。\n- 由 @TomeHirata 在 #8801 中添加了引用和文档的 API 参考。\n- 由 @TomeHirata 在 #8778 中允许自定义类型进行流式传输，并使用原生响应。\n- 由 @TomeHirata 在 #8868 中修复了引用相关的示例代码。\n- 添加 `ToolCall.execute` 方法，以实现更流畅的工具执行（#8825，@TomeHirata）。\n- 添加 DSPy User-Agent 头部信息（#8887，@TomeHirata）。\n- 根据指定条件更新头部信息（#8893，@TomeHirata）。\n- Arbor GRPO 同步更新（#8939，@Ziems）。\n- 废弃 Image from_* 辅助函数，转而使用灵活的构造函数（#8771，@isaacbmiller）。\n- 缓存 Image.format 以提高吞吐量（#8842，@TomeHirata）。\n- 测试 (dspy.Image)：由 @isaacbmiller 在 #8855 中添加了一个包含 Image 工具的 ReAct 测试用例。\n\n### 错误修复与类型处理\n\n- 修复 #8703——模块与反馈不匹配的问题（#8777，@Lucas-Fernandes-Martins）。\n- 由 @chenmoneygithub 在 #8774 中修复了值解析问题，并添加了相关测试。\n- 由 @TomeHirata 在 #8814 中实现了对 json.parse 中双重编码基本类型的解析。\n- 由 @sontanon 在 #8805 中修复了当字符串中包含方括号或大括号时，Optional[str] 字段被意外解析的问题。\n- 由 @TomeHirata 在 #8826 中使用 mcp.ClientSession 进行类型提示。\n- 由 @TomeHirata 在 #8827 中修复了 callpreprocess 的类型提示问题。\n- 修复：允许 DummyLM 答案字典中的值为任意类型，以便更好地兼容各种签名（#8803，@BenMcH）。\n- 由 @TomeHirata 在 #8831 中修复了在启用用量跟踪且输出非预测结果时出现的崩溃问题。\n- 当磁盘不可用时，回退到内存缓存（#8718，@TomeHirata）。\n- 错误 (lm)：避免不必要的缓存键计算（#8862，@isaacbmiller）。\n- 由 @TomeHirata 在 #8817 中实现在评估表格中显示 metric=0。\n- 由 @TomeHirata 在 #8818 中为 Embeddings 添加了保存和加载功能。\n- 修复 lon 中的块丢失问题","2025-11-10T17:41:17",{"id":162,"version":163,"summary_zh":164,"released_at":165},230899,"3.0.4b2","## 变更内容\n\n### 功能与增强\n\n* **工具链 \u002F API**\n\n  * 添加 `ToolCall.execute`，以实现更流畅的工具执行 (#8825, @TomeHirata)\n* **网络 \u002F 请求头**\n\n  * 添加 DSPy User-Agent 头 (#8887, @TomeHirata)\n  * 在指定情况下更新请求头 (#8893, @TomeHirata)\n* **Arbor \u002F 强化学习**\n\n  * Arbor GRPO 同步更新 (#8939, @Ziems)\n\n### 错误修复与可靠性\n\n* **流式传输 \u002F 缓冲区**\n\n  * 修复使用原生响应字段进行长时间流式传输时的数据块丢失问题 (#8881, @TomeHirata)\n  * 使缓冲区条件更加精确 (#8907, @TomeHirata)\n  * 修复：在流式传输过程中缺少结束标记时添加回退机制 (#8890, @enitrat)\n* **适配器**\n\n  * 修复 (JSONAdapter)：在启用 JSON 模式但无结构化输出时的转义逻辑 (#8871, @isaacbmiller)\n  * 修复：XML 适配器标记 (#8876, @enitrat)\n  * 修复 `test_xml_adapter_full_prompt` 测试 (#8904, @TomeHirata)\n* **响应 \u002F API**\n\n  * 修复响应 API (#8880, @chenmoneygithub)\n  * 修复响应 API 中 `response_format` 的处理问题 (#8911, @TomeHirata)\n* **核心 \u002F 语言模型**\n\n  * 修复 dspy 并行中的错误处理 (#8860, @TomeHirata)\n  * 修复 (LM)：将 `temperature` 和 `max_tokens` 的默认值设置为 `None` (#8908, @isaacbmiller)\n* **MIPRO**\n\n  * 修复 (MIPROv2)：在 `task_model` 和 `prompt_model` 之间进行选择 (#8877, @isaacbmiller)\n\n### 安全与隐私\n\n* 从保存的程序中排除 API 密钥 (#8941, @Copilot)\n\n### 重构与维护\n\n* 重构 `ArborReinforceJob` 中的 URL 构建方式，使用 `urljoin` (#8951, @Ziems)\n* 更新 `ClientSession` 的类型提示 (#8894, @TomeHirata)\n* 函数签名中的长行（样式）(#8914, @chenmoneygithub)\n* 修复 LM 的代码风格检查问题 (#8884, @chenmoneygithub)\n\n### 文档\n\n* 添加 Learn MCP 页面 (#8903, @TomeHirata)\n* 修复 RAG 教程中 MIPRO 论文链接 (#8937, @TomeHirata)\n* 【文档字符串】为 Adapter 添加文档字符串 (#8915, @chenmoneygithub)\n* 【文档】为 `dspy\u002Fprimitives\u002Fexample` 示例类添加 Google 风格的文档字符串 (#8949, @Davshiv20)\n* 【文档】为 `Signature.prepend\u002Fappend\u002Finsert\u002Fdelete` 添加 Google 风格的文档字符串 (#8945, @gnetsanet)\n* 改进教程侧边栏——不自动展开所有教程 (#8912, @chenmoneygithub)\n\n### 测试与稳定性\n\n* 解决真实语言模型测试的不稳定问题 (#8924, @chenmoneygithub)\n\n## 新贡献者\n* @enitrat 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8890 中做出了首次贡献\n* @Copilot 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8941 中做出了首次贡献\n* @Davshiv20 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8949 中做出了首次贡献\n* @gnetsanet 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8945 中做出了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fcompare\u002F3.0.4b1...3.0.4b2","2025-10-21T23:30:37",{"id":167,"version":168,"summary_zh":169,"released_at":170},230900,"3.0.4b1","## 变更内容\n\n### GEPA + 其他优化器\n\n- 由 @smec-cgint 在 #8739 中修复了 GEPA 在处理元组输出时的使用情况跟踪问题。\n- 由 @andressrg 在 #8737 中为 GEPA 添加了自定义 instruction_proposer 支持，并支持多模态（dspy.Image）处理。\n- 由 @LakshyAAAgrawal 在 #8770 中增强了 GEPA 中验证集使用情况的日志记录。\n- 【功能】GEPA：由 @andressrg 在 #8765 中添加了自定义组件选择逻辑支持。\n- 由 @TomeHirata 在 #8763 中添加了 MLFLow 和 GEPA 之间的支持。\n- 由 @LakshyAAAgrawal 在 #8792 中更新了优化概览，增加了数据拆分指导。\n- 文档：由 @andressrg 在 #8775 中为 GEPA 添加了全面的 instruction_proposer 文档和示例。\n- 引入 gepa_kwargs，用于向 gepa.optimize 传递自定义关键字参数，由 @LakshyAAAgrawal 在 #8850 中实现。\n- 在 GEPA 的小批量评估过程中传播回调元数据，由 @TomeHirata 在 #8835 中完成。\n- 由 @TomeHirata 在 #8840 中修复了 GEPA 警告中的拼写错误。\n- 更新 gepa[dspy] 依赖版本至 0.0.17；可能修复了 GEPA 中从状态加载无法正常工作的问题，由 @LakshyAAAgrawal 在 #8859 中完成。\n- SIMBA 改进，由 @klopsahlong 在 #8766 中完成。\n\n### 自定义类型\n\n- 由 @TomeHirata 在 #8721 中添加了对 Anthropic Citation API 的支持。\n- 由 @TomeHirata 在 #8801 中添加了引用和文档的 API 参考。\n- 允许自定义类型进行流式传输并使用原生响应，由 @TomeHirata 在 #8778 中实现。\n- 由 @TomeHirata 在 #8868 中修复了引用示例代码中的错误。\n\n### 图像与多模态支持\n\n- 废弃 Image from_* 辅助函数，转而使用灵活的构造函数，由 @isaacbmiller 在 #8771 中完成。\n- 缓存 Image.format 以提高吞吐量，由 @TomeHirata 在 #8842 中实现。\n- 测试（dspy.Image）：由 @isaacbmiller 在 #8855 中添加了一个包含 Image 工具的 ReAct 测试。\n\n### 错误修复与类型处理\n\n- 修复 #8703 - 解决模块和反馈不匹配的问题，由 @Lucas-Fernandes-Martins 在 #8777 中完成。\n- 修复值解析并添加测试，由 @chenmoneygithub 在 #8774 中完成。\n- 在 json.parse 中解析双重编码的基本类型，由 @TomeHirata 在 #8814 中实现。\n- 修复当字符串包含括号或大括号时，Optional[str] 字段意外解析的问题，由 @sontanon 在 #8805 中完成。\n- 使用 mcp.ClientSession 进行类型提示，由 @TomeHirata 在 #8826 中完成。\n- 修复 callpreprocess 的类型提示，由 @TomeHirata 在 #8827 中完成。\n- 修复：允许 DummyLM 答案字典中的值为任意类型，以适应更广泛的签名，由 @BenMcH 在 #8803 中完成。\n- 修复在启用用量跟踪器且输出非预测结果时出现的崩溃问题，由 @TomeHirata 在 #8831 中完成。\n- 当磁盘不可用时回退到内存缓存，由 @TomeHirata 在 #8718 中完成。\n- 错误（lm）：避免不必要的缓存键计算，由 @isaacbmiller 在 #8862 中完成。\n- 在评估表格中显示 metric=0，由 @TomeHirata 在 #8817 中完成。\n- 为 Embeddings 添加保存和加载功能，由 @TomeHirata 在 #8818 中完成。\n\n### 文档与教程\n\n- 由 @Navanit-git 在 #8722 中进行了小幅文档更改。\n- 由 @TomeHirata 在 #8709 中添加了学习 DSPy 中工具使用的文档页面。\n- 由 @TomeHirata 在 #8781 中修复了工具页面的样式问题。\n- 由 @B-Step62 在 #8772 中为新教程添加了追踪横幅。\n- 文档：由 @tomsanbear 在 #8776 中修复了指向 sglang 安装\u002F入门页面的链接。\n- 关于使用原生的指南","2025-09-29T10:48:42",{"id":172,"version":173,"summary_zh":174,"released_at":175},230901,"3.0.3","## 变更内容\n\n\n新增功能\n* 引入 `rollout_id`，以便以命名空间方式绕过 LM 缓存，由 @okhat 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8745 中实现\n* 在进行多次 rollout 时提高温度（否则会发出警告），由 @okhat 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8748 中实现\n\n优化器\n* 升级 gepa 版本：修复依赖项、添加进度条、确保失败的指标不会继续运行，由 @LakshyAAAgrawal 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8701 中完成\n* 修复 dspy.GEPA 教程中的 `__call__` 方法，使其能够正确传递参数，由 @LakshyAAAgrawal 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8719 中完成\n\n维护工作\n* 将 ujson 替换为 orjson，由 @chenmoneygithub 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8655 中完成\n* 修改 `forward` 方法的打补丁方式，以避免在显式调用 `forward` 时出现警告，由 @chenmoneygithub 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8700 中完成\n* 为 SIMBA 添加类型注解并修复文档字符串，由 @TomeHirata 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8707 中完成\n* 从 LM 中移除已弃用的 LiteLLM 缓存功能，由 @okhat 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8742 中完成\n* 修复 Predict 配置合并问题，并记录 rollout_id 的使用方法，由 @okhat 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8746 中完成\n* 降低推理型 LM 的 `max_tokens` 要求，由 @okhat 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8750 中完成\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fcompare\u002F3.0.2...3.0.3","2025-08-31T18:47:21",{"id":177,"version":178,"summary_zh":179,"released_at":180},230902,"3.0.2","## 变更内容\n\n优化器\n* 由 @okhat 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8697 中验证 GEPA 指标签名\n* MIPROv2：由 @TomeHirata 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8635 中对已弃用的 requires_permission_to_run 发出警告\n* 由 @LakshyAAAgrawal 和 @chenmoneygithub 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8691 和 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8696 中修复 mlflow 与 GEPA 的兼容性问题\n\n\n语言模型与适配器\n* 由 @chenmoneygithub 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8679 中允许在流式处理中使用自定义分块类型\n* 由 @TomeHirata 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8692 中支持 OpenAI 的响应 API\n* 由 @chenmoneygithub 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8654 中修复 BAMLAdapter 中的问题\n* 由 @okhat 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8693 中将 gpt-5-nano 视为推理模型进行处理\n\n\n维护\n* 由 @chenmoneygithub 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8680 中添加测试，以确保保存和加载的向后兼容性\n* 由 @jsummerfield 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8681 中为 Module.__call__ 和 Module.acall 添加类型提示，使其返回 Prediction 对象\n* 杂项：修复错误信息：将 gpt-5o 更改为 gpt-5，由 @Shangyint 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8686 中完成\n\n\n## 新贡献者\n* @RevanthGundala 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8669 中完成了首次贡献\n* @jsummerfield 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8681 中完成了首次贡献\n* @bikash119 在 https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8684 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fcompare\u002F3.0.1...3.0.2","2025-08-22T11:14:18",{"id":182,"version":183,"summary_zh":184,"released_at":185},230903,"3.0.1","## What's Changed\r\n\r\nOptimizers\r\n* Fix Evaluate call bug in GEPA by @LakshyAAAgrawal in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8647\r\n* Lazy import of gepa package by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8638\r\n\r\nLMs & Adapters\r\n* Use pydantic's `ConfigDict` for config; filter litellm warnings by @kurtmckee in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8659\r\n* Remove hardcoded model list from OpenAIProvider file by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8649\r\n* Raise explicit error on not meeting reasoning model's requirement  by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8650\r\n* Flexible handling of `dspy.ToolCalls` parsing by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8563\r\n\r\nMaintenance\r\n* fix(evaluate): Raise TypeError on return_outputs in evaluate kwargs by @isaacbmiller in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8644\r\n* Add type hints for UsageTracker by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8636\r\n\r\n\r\n## New Contributors\r\n* @bogireddytejareddy made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8646\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fcompare\u002F3.0.0...3.0.1","2025-08-14T17:36:58",{"id":187,"version":188,"summary_zh":189,"released_at":190},230904,"3.0.0","# DSPy 3.0.0\r\n\r\nThe work in the run up to **DSPy 3.0** has focused on new powerful optimizers (RL: dspy.GRPO via our new Arbor library; and reflective prompt evolution: dspy.GEPA and dspy.SIMBA), extensibility (dspy.Adapter & dspy.Type), reliability\u002Fobservability for production (tight integration with MLflow 3.0), and more. Much of this work incubated during late 2.6 and matured in 3.0.\r\n\r\n## ✨ Highlights across 2.6 → 3.0\r\n\r\n### Adapters & Types (extensibility without prompt plumbing)\r\n\r\n* **Adapters**: built-in `dspy.ChatAdapter`, `dspy.JSONAdapter`, `dspy.XMLAdapter`, `dspy.BAMLAdapter`, token\u002Fstatus streaming, async paths, and intelligent fallback to native LLM structured outputs.\r\n* **Types**: multi-modal I\u002FO via `dspy.Image` and `dspy.Audio`; composite types (e.g., `list[dspy.Image]`, Pydantic models); higher-level I\u002FO like `dspy.History` and `dspy.ToolCalls`. Custom types now “just work” with adapters (`dspy.Type`).\r\n* Tooling integrations: **MCP servers** and **LangChain tools** supported out-of-the-box.\r\n\r\n### Modules, Runtime & DX\r\n\r\n* **Better scalability**: `Module.batch` with thread-safe DSPy settings; native DSPy **async**; high-concurrency, configurable caches.\r\n* **Smoother DX**: intermediate **status streaming**, output streaming from any layer, **usage tracking**, per-module history, rich callbacks.\r\n* **Deployment\u002Fportability**: **stable save\u002Fload** (including the program), and you can **export the prompt management layer** via Adapters.\r\n* **New\u002Fupdated modules**: `dspy.CodeAct`, `dspy.Refine`, improved `ReAct`, a more reliable `PythonInterpreter`.\r\n\r\n### Observability & MLOps\r\n\r\n* **Native observability** with **MLflow 3.0**: tracing, optimizer tracking, and improved deployment flows (plus docs\u002Ftutorials).\r\n\r\n### Optimizers\r\n\r\n* **MIPROv2**: substantially more reliable with **automatic hyperparameter selection** and many fixes.\r\n* **GRPO** (RL on DSPy programs): our new **Arbor** library for RL training of compound AI systems.\r\n* **SIMBA**: powerful prompt optimizer that learns from custom feedback (great for agentic\u002Flong-horizon tasks).\r\n* **GEPA (Genetic-Pareto)**: a new optimizer that builds a Pareto tree of prompts, uses NL reflection to extract\u002Fvalidate lessons, and can produce **shorter prompts** while **improving downstream performance**. Early results show **wins over MIPROv2** on several tasks and promising inference-time search behavior (see paper announcement for details).\r\n\r\nSome of the above first landed in late 2.6 (e.g., early streaming, initial adapters\u002Ftypes improvements), and were consolidated\u002Fmatured in 3.0.\r\n\r\n---\r\n\r\n## 💥 Breaking changes \u002F notable removals\r\n\r\n* **Remove community retrievers** (#8073). If you relied on unmaintained retriever integrations, migrate to custom code (or use Tool\u002FMCP integrations).\r\n* **Drop Python 3.9** support. 3.10–3.13 are supported.\r\n* **Alias removed**: `dspy.Program` → remove\u002Freplace (was cleaned up in 3.0 work).\r\n* Various deprecations promised in 2.5 were applied during the 2.6.0 release candidates (e.g., old `functional\u002F`, `dsp\u002F` clients, legacy caches\u002Fexamples\u002Ftests).\r\n\r\n---\r\n\r\n## 🆚 Changes since `3.0.0b4`\r\n\r\n**Optimizers**\r\n\r\n* **Add GEPA (Genetic-Pareto) optimizer** (@LakshyAAAgrawal, #8624, #8628, #8633).\r\n\r\n**Maintenance**\r\n\r\n* Migrate GitHub Actions from `set-output` to `$GITHUB_OUTPUT` (@kurtmckee, #8557).\r\n\r\n**New contributor**\r\n\r\n* @LakshyAAAgrawal (first contribution in #8624).\r\n\r\n**Full Changelog:** `3.0.0b4...3.0.0`\r\n\r\n---\r\n\r\n## 📚 3.0.0 beta highlights (rollup)\r\n\r\n* **b4**: MIPRO reliability fixes; updated **Arbor GRPO** integration; streaming end-marker; faster image JSON parsing; **BAMLAdapter**; mark **gpt-5** as reasoning model; vendor a lighter internal hasher.\r\n  *New contributors:* @weklund, @vakinapalli, @tvdaptible, @jmhb0, @olesyash, @kurtmckee, @prrao87, @danielsparing, @apieum.\r\n* **b3**: `dspy.Code`; PEP 604 unions in signatures; token streaming for XMLAdapter; `dspy.syncify` for running optimizers on async DSPy programs; Windows support for MIPROv2 confirm; real-LLM unit tests.\r\n  *New contributors:* @LukasMurdock, @ken-dwyer, @grisaitis, @vacmar01, @fswair, @nillwyc, @asad-aali, @niklovescoding, @MaximeRivest, @brenorb.\r\n* **b2**: Stream listener reuse; async paths for Chat\u002FJSON adapters; error-message\u002FQoL updates; **drop Python 3.9**; docs\u002Ftutorials; **rename `BaseType` → `Type`**; remove `dspy.Program` alias; many cleanups.\r\n  *New contributors:* @codingDuan, @Hangzhi, @poudro.\r\n* **b1**: 3.0 “heads-up” + **remove unmaintained retrievers** (#8073); XML adapter; standardize\u002Fstyle improvements; async settings merge; MLflow tracing guide.\r\n  *New contributors:* @brishin, @dmavrommatis.\r\n\r\n---\r\n\r\n## 👏 Contributors since 2.6\r\n\r\nThank you to everyone who contributed code, docs, reviews, issues, and testing!\r\n\r\n🎉 = first-time contributor since 2.6.15\r\n\r\n**@AkeemMcLennon**, **@aliirz**, **@amas0**, **@apieum** 🎉, **@arnavsinghvi11**, **@asad-aali** 🎉, **@asparagus**, **@assadyousuf** 🎉, **@BenMcH** 🎉, **@bjsi*","2025-08-12T21:02:50",{"id":192,"version":193,"summary_zh":194,"released_at":195},230905,"3.0.0b4","## What's Changed\r\n\r\nOptimizers\r\n* Fixes for MIPRO: Don't fail silently on bootstrapping! by @okhat in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8548\r\n* skip unhashable module histories for mipro program proposer by @arnavsinghvi11 in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8572\r\n* Update Arbor GRPO Integration by @Ziems in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8609\r\n* Remove user confirmation from MiproV2 by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8552\r\n\r\nAdapters & Tools\r\n* fix(dspy): Fix MCP tool conversion when schema has no input params by @tvdaptible in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8566\r\n* Explicitly mark the end of streaming by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8587\r\n* faster json parsing for images in chatadapter by @jmhb0 in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8596\r\n* Use json mode for serialization by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8605\r\n* Custom BAMLAdapter to improve structured outputs by @prrao87 in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8614\r\n\r\nLMs & Modules\r\n* Mark gpt-5 as reasoning model by @olesyash in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8620\r\n* Fix infinite growing trace and add tests by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8607\r\n* Litellm logging management by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8619\r\n* nit: fix \"poorly-design\" by @danielsparing in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8622\r\n* remove history and callbacks from module saving by @arnavsinghvi11 in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8599\r\n* update deduplicate by @apieum in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8623\r\n\r\nMaintenance\r\n* Increment python version for pre-commit by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8602\r\n* Run the `typos` tool against the codebase by @kurtmckee in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8560\r\n* Fix incorrect `build-system` requirements by @kurtmckee in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8558\r\n* Vendor Hasher class from datasets library in order to remove larger dependency by @BenMcH in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8621\r\n\r\n\r\n## New Contributors\r\n* @weklund made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8554\r\n* @vakinapalli made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8569\r\n* @tvdaptible made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8566\r\n* @jmhb0 made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8596\r\n* @olesyash made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8620\r\n* @kurtmckee made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8560\r\n* @prrao87 made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8614\r\n* @danielsparing made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8622\r\n* @apieum made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8623\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fcompare\u002F3.0.0b3...3.0.0b4","2025-08-11T16:42:24",{"id":197,"version":198,"summary_zh":199,"released_at":200},230906,"3.0.0b3","## What's Changed\r\n\r\nKey bugfix: The removal of `datasets` from the default dependencies in 3.0.0b1 meant that if the user didn't have `datasets` installed, the bootstrapping of MIPROv2 would fail silently, leading to worse optimization. Added `datasets` back in commit [8aa065945](https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fcommit\u002F8aa0659451a1f44c60b213b7321563a1f677db1e).\r\n\r\nSignatures, Adapters, & Types\r\n* add dspy.Code by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8511\r\n* Provide language to dspy.Code by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8519\r\n* Use collections for type hints by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8513\r\n* Add testing for PEP604 union types by @erandeutsch in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8475\r\n* Fix type annotation for ensure_signature by @grisaitis in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8496\r\n* Use model_dump instead of dict by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8493\r\n* Fix native function calling in adapters by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8479\r\n* Rename dspy.BaseType to dspy.Type by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8510\r\n* Resolve \"$def\" for nested tool arg type by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8534\r\n* Add token streaming support for XMLAdapter by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8478\r\n\r\nModules\r\n* Update python_interpreter.py by @nillwyc in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8501\r\n* unwrap pyodide object correctly by @arnavsinghvi11 in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8466\r\n* Provide a `dspy.syncify` so that users can run optimizer on async dspy programs by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8509\r\n* fix UnicodeDecodeError: 'gbk' codec can't decode by @nillwyc in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8522\r\n\r\nOther\r\n* Support MIPROv2 user confirmation in windows by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8485\r\n* Run unit tests with real LLM calls by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8486\r\n\r\n\r\n## New Contributors\r\n* @LukasMurdock made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8477\r\n* @ken-dwyer made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8474\r\n* @grisaitis made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8496\r\n* @vacmar01 made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8499\r\n* @fswair made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8498\r\n* @nillwyc made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8501\r\n* @asad-aali made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8512\r\n* @niklovescoding made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8515\r\n* @MaximeRivest made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8527\r\n* @brenorb made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8542\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fcompare\u002F3.0.0b2...3.0.0b3","2025-07-19T16:52:19",{"id":202,"version":203,"summary_zh":204,"released_at":205},230907,"3.0.0b2","## What's Changed\r\n\r\n\r\nModules & Adapters\r\n* Remove dspy.Program alias by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8392\r\n* Clean up ChainOfThoughtWithHint in DSPy 3.0  by @Hangzhi in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8395\r\n* Change the output interface of evaluate by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8003\r\n* Add format to ToolCalls by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8455\r\n* Allow reusing the stream listener by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8461\r\n\r\n\r\nBug Fixes\r\n* Fix the issue that StreamListener strip out space after the start identifier by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8360\r\n* Fix the streaming test by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8367\r\n* fix bedrock streaming token tracking by @BTripp1986 in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8431\r\n* Allow exception to pass through in JSONAdapter by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8445\r\n* Support async path for ChatAdapter and JSONAdapter by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8419\r\n* Fix PEP 604 union types when using Class Signatures for ChainOfThought by @erandeutsch in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8465\r\n\r\nQoL\r\n* Improve error message on invalid lm setup by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8378\r\n* Show warning if forward is directly called by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8380\r\n\r\nStyle\r\n* Small style fix on forward call warning  by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8381\r\n* Add quote rule to the lint rules by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8383\r\n* Refactor root init file by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8385\r\n* Add missing rule comment by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8398\r\n* Consistently use double quotes in DSPy docsite landing page by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8447\r\n\r\nMaintenance\r\n* Remove pandas and datasets from core dependencies by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8274\r\n* Update dspy version in uv lock by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8384\r\n* Remove Hyperparameter class by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8386\r\n* Remove unused multi-hop state files by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8389\r\n* Remove unused postprocess of param name by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8387\r\n* Remove experimental module by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8391\r\n* Remove commented out assertions file by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8388\r\n* Clean up unnecessary ruff exclude by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8399\r\n* Remove commented out old dotdict by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8401\r\n* Remove branch installation instruction by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8404\r\n* Remove dspy.settings related to dspy.Assertion by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8397\r\n* Remove unnecessary pre-commit exclusion by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8405\r\n* Rename modules to module by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8407\r\n* Move internal_dspy outside dspy module by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8400\r\n* Remove aws extra dep group by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8412\r\n* Move dsp\u002Fmetrics into evaluate\u002Fmetrics by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8402\r\n* Fix signature input type by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8413\r\n* Disable doc-push on forked repo by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8415\r\n* compute cache key once by @poudro in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8394\r\n* Add CLAUDE.local.md to .gitignore by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8420\r\n* Remove datasets installation from the Getting Started I by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8418\r\n* Add gemini to LM provider by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8417\r\n* change the default model to llama-4 for databricks provider by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8414\r\n* Move litellm cache testing under tests\u002Fclient and remove unnecessary tests by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8396\r\n* Fix the error that status message streaming was blocking  by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8432\r\n* Add real world tutorial for email extraction by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8426\r\n* Document comparison operations of dspy.Prediction by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8437\r\n* Drop Python","2025-07-01T02:32:34",{"id":207,"version":208,"summary_zh":209,"released_at":210},230908,"3.0.0b1","## What's Changed\r\n\r\nA cleaner release note to follow. The only breaking change to be aware of in 3.0 is just #8073 for unmaintained retriever integration (should affect almost no one, and easy to migrate to custom code for those affected).\r\n\r\n* Fix Pydantic v2 deprecation warning in json_adapter by @brishin in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8263\r\n* Enable CI testing for all supported python versions by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8321\r\n* Fix the custom type extraction in dspy.BaseType by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8320\r\n* Add global max_errors setting by @okhat in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8319\r\n* Wrap langchain tool code example by asyncio runner by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8322\r\n* add more permission capabilities to PythonInterpreter by @arnavsinghvi11 in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8296\r\n* Fix logging configuration to prevent OpenTelemetry handler conflicts by @dmavrommatis in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8269\r\n* restore audio inspect_history by @arnavsinghvi11 in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8336\r\n* Standardize coding style in DSPy by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F7885\r\n* Fix lint failures by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8337\r\n* Prompt users to run pre-commit when detecting ruff failures by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8338\r\n* refactoring audio_format completely by @arnavsinghvi11 in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8349\r\n* Add docstring for dspy.ReAct by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8334\r\n* Allow tool async to sync conversion by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8332\r\n* Fix missing [[ ## completed ## ]] in history and fewshot example by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8340\r\n* Fix usage tracking when None exists as value by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8339\r\n* Remove unused GRPO endpoint by @Ziems in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8354\r\n* update the MLflow tracing guide by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8353\r\n* Add xml adapter by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8358\r\n* Merge async settings change into main by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8361\r\n* Remove community retrievers by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8073\r\n\r\n## New Contributors\r\n* @brishin made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8263\r\n* @dmavrommatis made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8269\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fcompare\u002F2.6.27...3.0.0b1","2025-06-11T18:32:47",{"id":212,"version":213,"summary_zh":214,"released_at":215},230909,"2.6.27","## What's Changed\r\n\r\n* Fix BaseType annotation parsing by @okhat in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8318\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fcompare\u002F2.6.26...2.6.27","2025-06-03T17:44:29",{"id":217,"version":218,"summary_zh":219,"released_at":220},230910,"2.6.27a1","## What's Changed\r\n* Fix BaseType annotation parsing by @okhat in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8318\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fcompare\u002F2.6.26...2.6.27a1","2025-06-03T17:34:32",{"id":222,"version":223,"summary_zh":224,"released_at":225},230911,"2.6.26","## What's Changed\r\n\r\n* Support `dspy.Tool` as input field type and `dspy.ToolCall` as output field type by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8242\r\n* fix inspect_history function calling issue #8315 by @iPersona in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8316\r\n* Fix lint errors and lock uv dependencies by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8312\r\n* Revert hotpotqa back to original (from #8234) as it's now alive by @okhat in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8317\r\n\r\n## New Contributors\r\n* @iPersona made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8316\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fcompare\u002F2.6.25...2.6.26","2025-06-03T16:56:31",{"id":227,"version":228,"summary_zh":229,"released_at":230},230912,"2.6.25","## What's Changed\r\n\r\nCore\r\n* Provide a standard base class for creating custom Signature field type by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8217\r\n* dspy.Audio by @arnavsinghvi11 in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8214\r\n* Fix audio attr name by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8241\r\n* Fix ReinforceJob LM reference by @okhat in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8249\r\n* Support python 3.13 by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8255\r\n* Avoid importing optuna in dspy import by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8258\r\n* Support custom imported module serialization with cloudpickle by @erandeutsch in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8286\r\n* Support for Service Principal Auth for Databricks Retrieve with DSPy  by @willsmithDB in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8293\r\n* Fix Module history initialization by @okhat in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8307\r\n* Add pytest-asyncio to deps list of testing before pypi by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8308\r\n\r\nModules\r\n* Add CodeAct module by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8222\r\n* Per module lm history by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8199\r\n* Streaming: support models that don't split stream chunks in tokens by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8235\r\n* Support predicted output in DSPy by @chenmoneygithub in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8247\r\n* Bugfix: Ensure keys in both entities are merged  by @estsauver in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8238\r\n* Fixes utf-8 formatting issues in optimization saves by @ItzAmirreza in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8272\r\n* Add langchain tool support by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8292\r\n\r\nMisc\r\n* fix: use forked hotpotqa to bring dataset alive #8233 by @vincentkoc in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8234\r\n* fix(tests): use temp file for dataset by @estsauver in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8237\r\n* feat(dspy): custom type resolution in Signatures by @isaacbmiller in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8232\r\n* Remove dspy\u002F.internal_dspyai\u002Fdist\u002F produced in the pipeline by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8240\r\n* Fix DataLoader input key bug by @okhat in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8248\r\n* Run tests with extra dependencies separately by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8246\r\n* Ensure dspy.Image allows gs:\u002F\u002Fimage_urls from Google Cloud Platform (GCP) by @dimroc in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8267\r\n* Fix the history related error of CodeAct by @TomeHirata in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8300\r\n\r\n## New Contributors\r\n* @vincentkoc made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8234\r\n* @estsauver made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8237\r\n* @jmho made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8229\r\n* @JHMuir made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8168\r\n* @neilbhutada made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8250\r\n* @carsonkahn-external made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8254\r\n* @dimroc made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8267\r\n* @erandeutsch made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8286\r\n* @willsmithDB made their first contribution in https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fpull\u002F8293\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fstanfordnlp\u002Fdspy\u002Fcompare\u002F2.6.24...2.6.25","2025-06-02T21:00:08"]