内容
<img src="image/img.png" alt="DSPyTools" width="100%">
# DSPyTools — 自我进化的 DSPy CLI
**24 个命令组 · 110+ 子命令 · 105 个源文件 · 17+ 优化器 · 11 篇 arXiv 论文实现**







用于 DSPy 程序管理的生产级、自我进化的 CLI,具备热交换推理、MCP 代理互操作性、生成式反馈环(GFL)管道、技能系统、`llms.txt` 生成和完整的 MLflow 实验跟踪。
**所有子系统均通过 SSOT(单一真相来源)模式集成,具有故障快速导入功能。**
构建于 **DSPy 3.3.0b1**,在 **Qwen3.5-9B** 上运行(通过 llama-cpp-server 进行学生+教师推理),
可选使用 **DeepSeek V4 Flash** 作为重优化的教师 LM。
---
## 架构
```mermaid
graph TD
CLI[DSPyTools CLI<br/>SelfOptimizingCLI + Help]
CLI --> commands
CLI --> core
CLI --> mcp
CLI --> gfl
CLI --> evolve
CLI --> rest[skills<br/>generate<br/>graph<br/>memory]
core --> student[Student: Qwen 7B<br/>llama-cpp :8000]
core --> teacher[Teacher: DeepSeek<br/>API]
```
### 教师-学生架构
```mermaid
graph TD
teacher[Teacher: DeepSeek V4 Flash]
teacher --> gepa[GEPA / MIPROv2 reflection LM]
teacher --> meta[Meta Agent Search archive]
teacher --> godel[Gödel Agent validate-before-deploy]
gepa --> student
meta --> student
godel --> student
student[Student: Qwen3.5-9B]
student --> compiled[Compiled program inference]
student --> hotswap[Hot-swap: LRU cache + JSON registry]
student --> fastapi[FastAPI endpoints<br/>compile → deploy]
```
### 全系统集成(SSOT)
每个子系统都被连接起来 - 没有孤立的岛屿,没有重复的存储:
```mermaid
graph TD
compile[Compile] --> on_compile
subgraph SelfEvolveEngine
on_compile[on_compile]
on_compile --> mem_add[MemoryManager.add]
on_compile --> skill_graph[FalkorDBSkillGraph]
on_compile --> ucb[UCB + Morphology]
suggest[suggest_optimizer]
suggest --> mem_search[MemoryManager.search]
auto[auto_evolve_cycle]
auto --> lse[LSE tree evolution]
auto --> trace[Trace2Skill mining]
auto --> lora[LoRA distillation]
end
subgraph HotSwapManager
infer[.infer]
infer --> sem_cache[SemanticCache]
infer --> drift[DriftMonitor]
infer --> quality[Quality samples]
end
subgraph External
api[FastAPI /infer]
mcp[MCP 65 tools]
end
mem_add --> falkor_mem[FalkorDB: memory]
skill_graph --> falkor_graph[FalkorDB: graph]
mem_search --> falkor_mem
sem_cache --> redis[Redis: cache]
drift --> falkor_state[FalkorDB: state]
quality --> SelfEvolveEngine
on_compile --> HotSwapManager
HotSwapManager --> api
HotSwapManager --> mcp
```
| 子系统 | SSOT | 连接到 |
|-----------|------|------------|
| FalkorDB graph | `FalkorDBSkillGraph` | SelfEvolveEngine, registry, MCP |
| 语义缓存 | `get_semantic_cache()` | `HotSwapManager.infer()` |
| 内存 | `get_memory_manager()` | `on_compile()`, `suggest_optimizer()` |
| 技能图 | FalkorDB(JSON 备用) | SelfEvolveEngine |
| 漂移监控 | `get_drift_monitor()` | `HotSwapManager.infer()` |
| LSE 进化 | `LSESelfEvolveModule` | `auto_evolve_cycle()` |
| Trace2Skill | `SkillConsolidator` | `consolidate_skills()` |
| LoRA | `lora extract` / `distill run` | `auto_evolve_cycle()` |
**故障快速模式:** 没有 try/except 包围导入或 DSPy 模块构造函数。只有运行时操作(Redis 关闭,网络超时)使用宽容降级。
---
## 功能
### CLI — 24 个命令组
| 组 | 子命令 | 描述 |
|-------|-------------|-------------|
| `configure` | 5 | API 密钥、LM 配置、适配器、DSPy 设置、缓存 |
| `signature` | 5 | 创建、列出、显示、编辑、删除 DSPy 签名 |
| `module` | 5 | 创建、列出、调用、显示、删除 DSPy 模块 |
| `run` | 15 | 12 种推理策略 + 列出 + 检索 + knn |
| `compile` | 22 | 20 个优化器 + 提交/状态/列表/取消 |
| `agent` | 4 | 新建、列出、运行、删除 ReActV2 代理 |
| `tool` | 6 | 列出、显示、来自 mcp、检查、python-interpreter、历史 |
| `evaluate`| 2 | 运行评估、列出可用指标 |
| `data` | 3 | 列出、加载、预览数据集 |
| `distill` | 4 | LoRA 蒸馏管道(运行、列表-框架、统计、准备-colab) |
| `inspect` | 7 | 历史、配置、缓存、工具、实验、版本 |
| `lora` | 10 | LoRA 适配器管理(加载、卸载、列表、聊天、测试、健康、发现、提取、评估、训练) |
| `mcp` | 3 | 列出 MCP 工具、服务(stdio/SSE)、配置 |
| `server` | 8 | 启用/禁用、启动/停止/重启、状态、交换、列表 |
| `self` | 7 | 优化、状态、进化、蒸馏、ucb-status、ucb-reset、观察 |
| `gfl` | 10 | 合成、元优化、分解、ab 测试、巩固、旋转、lse、gepa、opsd、状态 |
| `skills` | 10 | 列出、创建、搜索、编译、自动优化、显示、查找、发现、类别、从运行生成 |
| `generate`| 4 | `llms.txt` 生成、批量评估、MCP git 探索、缓存预热 |
| `pipeline`| 3 | 组成、运行、列出多步骤编译管道 |
| `export` | 3 | 程序导出、列出、信息 |
| `compare` | 1 | 两个编译程序的并排比较 |
| `doctor` | 1 | 系统诊断、环境检查、依赖审计 |
| `graph` | 14 | 查询、统计、技能树、血统、迁移、redis、搜索、状态、依赖、添加依赖、记录程序、刷新、基准测试、级联 |
| `memory` | 4 | FalkorDB 原生持久内存(添加、搜索、获取所有、删除) |
### 17+ DSPy 优化器
| 优化器 | 类型 | 描述 |
|-----------|------|-------------|
| `knn` | Few-shot | KNN 基于嵌入的示例选择 |
| `mipro` | Bayesian | MIPROv2 — 指令 + 演示的贝叶斯优化 |
| `gepa` | Evolutionary | GEPA — 具有帕累托采样的反射提示进化 |
| `copro` | Evolutionary | COPRO — 坐标提案优化 |
| `simba` | Iterative | SIMBA — 最小贝叶斯优化 |
| `bootstrap-few-shot` | Few-shot | BootstrapFewShot 带有演示引导 |
| `bootstrap-few-shot-random` | Few-shot | BootstrapFewShotWithRandomSearch |
| `bootstrap-few-shot-optuna` | Few-shot | BootstrapFewShotWithOptuna |
| `labeled-few-shot` | Few-shot | LabeledFewShot 带有 k 个示例 |
| `infer-rules` | Rule | InferRules — 规则归纳 |
| `better-together` | Composition | GEPA 子优化器组成 |
| `ensemble` | Ensemble | 多模块多数投票集成 |
| `finetune` | Fine-tune | BootstrapFinetune — 将提示蒸馏成权重 |
| `grpo` | RL | 组相对策略优化 |
| `avatar` | Iterative | AvatarOptimizer |
| `distill` | Distillation | 教师-学生蒸馏(GEPA → BootstrapFinetune) |
| `gfl` | Pipeline | 4 路比较(BFS → MIPROv2 → GEPA → 顺序) |
### GFL 管道(生成式反馈环)
所有 LLM 驱动的阶段都使用**可编译的 DSPy 模块** - 编译任何论文实现:
`dspytools compile gepa ErrorAnalystModule trainset.json`
| 论文 | 可编译模块 | 编译为 |
|-------|-------------------|------------|
| Trace2Skill (arXiv 2603.25158) | `ErrorAnalystModule`, `SuccessAnalystModule`, `MergeOperatorModule` | `dspytools compile gepa ErrorAnalystModule trainset.json` |
| LSE (arXiv 2603.18620) | `LSESelfEvolveModule` | `dspytools compile mipro LSESelfEvolveModule trainset.json` |
| SPIN (arXiv 2401.01335) | `SpinDiscriminateModule` | `dspytools compile gfl --halving SpinDiscriminateModule trainset.json` |
| Purified OPSD (arXiv 2607.02234) | `PurifiedOPSDModule` | `dspytools compile gepa PurifiedOPSDModule trainset.json` |
```mermaid
graph TD
bfs[BootstrapFewShot] --> tracker
mipro[MIPROv2<br/>Bayesian] --> tracker
gepa[GEPA<br/>Evolutionary] --> tracker
seq[Sequential<br/>BetterTogether] --> tracker
tracker[LSE Tracker<br/>Δ improvement tracking]
tracker --> holdout[Hold-out Gate<br/>CI gate: min 2% Δ<br/>p < 0.05]
holdout --> deploy[Auto-Deploy<br/>hot-swap winner]
deploy --> trace[Trace2Skill<br/>arXiv 2603.25158<br/>rollout → analyze → consolidate]
subgraph Extended Pipeline
spin[SPIN<br/>Self-Play] --> metasp[MetaSPO<br/>Bilevel Meta-Learn]
metasp --> rzero[R-Zero Challenger<br/>Solver Co-Evolution]
rzero --> t2s[Trace2Skill<br/>Rollout → Analyze → Consolidate]
end
```
### 自我进化引擎
```mermaid
graph TD
subgraph SelfEvolveEngine
morph[Morphology Tracker] --> ucb[UCB Explorer<br/>exploration vs exploitation]
transfer[Knowledge Transfer<br/>cross-task sharing] --> ucb
ucb --> skill[Skill Graph<br/>transitive improvement dependencies]
skill --> godel[Gödel Agent<br/>arXiv 2410.04444<br/>validate-before-deploy<br/>p < 0.05]
godel --> meta[Meta Agent Search<br/>arXiv 2408.08435<br/>archive-based program discovery]
end
```
### 热交换推理
```mermaid
graph LR
compile[Compile] --> registry[JSON Registry]
registry --> cache[LRU Cache]
cache --> api[FastAPI /infer]
compile -.-> |swap run-id| api
```
- **零停机部署**:编译 → 部署生命周期
- **线程安全引用计数**:并发 `infer()` 调用由 `threading.Lock` 保护,`swap(wait_for_drain=True)` 阻止直到飞行请求完成
- **温交换**:`POST /swap/{id}?warm=true` — 加载、验证通过测试推理,然后交换(签名感知测试输入构造)
- **LRU 缓存**:编译程序缓存以进行快速推理(最多 16 个加载)
- **JSON 注册表**:持久元数据存储
- **FastAPI 端点**:`POST /infer`,`POST /swap/{run_id}?warm=true`,`GET /programs`
### MCP 服务器 — 代理互操作性
65 个工具通过 MCP(模型上下文协议)暴露给 AI 助手 — 每个都带有注释(readOnlyHint、destructiveHint、idempotentHint、openWorldHint)和描述性模式:
| 类别 | 工具 |
|----------|-------|
| **程序** | `list_programs`,`swap_program`,`infer`,`get_program_metadata`,`stream_infer` |
| **注册表** | `list_signatures`,`list_modules`,`list_compiled_runs`,`list_optimizers`,`compile_stats` |
| **编译** | `compile_optimizer`,`compile_cost`,`holdout_status` |
| **技能** | `skills_list`,`skills_search`,`skills_external_search` |
| **漂移** | `drift_status`,`drift_history` |
| **自我** | `self_status` |
| **MLflow** | `mlflow_status` |
| **DSPy** | `inspect_history` |
| **评估** | `evaluate` |
| **GFL** | `gfl_synthesize`,`gfl_run_halving`,`challenger_solver`,`meta_prompt_learn`,`opsd_purify` |
| **验证** | `validate_deploy`,`archive_search` |
| **Sandbox** | `sandbox_execute`,`sandbox_stats` |
| **Trace2Skill** | `trace2skill_evolve` |
| **论文优化器** | `spin_optimize`,`lse_explore`,`gepa_frontier`,`opsd_purify` |
| **诊断** | `doctor` |
| **缓存** | `cache_stats`,`cache_invalidate` |
| **代理** | `agent_run` |
| **生成** | `generate_llms_txt` |
| **LoRA** | `lora_list_adapters`,`lora_load_adapter`,`lora_unload_adapter` |
兼容 **OpenCode**,**Claude Desktop**,**Codex**,以及任何 MCP 客户端。
### 技能系统
- **BM25 + 嵌入混合搜索** — 关键词 + 语义检索
- **自动生成** — 编译程序 → 代理技能格式
- **全生命周期** — 创建、编译、自动优化、搜索、删除
- **代理技能兼容** — 标准 SKILL.md + program.json 格式
### `llms.txt` 生成
- **存储库分析器** (5 阶段管道) — 分析存储库结构,读取 README,探索包,生成文档
- **批量评估** — 质量指标针对地面实况示例
- **MCP git 探索** — 通过 ReActV2 代理进行深度存储库分析,使用 git-mcp 工具
- **BAML 适配器支持** — 可选 BAML 集成
### 自我优化 `--help`
CLI 的帮助系统本身就是一个编译的 DSPy 程序:
```mermaid
graph LR
A[CLI Introspection] --> B[Build Trainset]
B --> C[Compile<br/>GEPA / LabeledFewShot]
D[Local llama-cpp<br/>inference] -.-> C
C --> E[(help_compiled.json<br/>cache)]
E -.-> F["--help calls<br/>use compiled program"]
```
- 首次运行:`dspytools self optimize` 编译帮助模块
- 随后的 `--help` 调用使用编译后的程序
- 缓存位于 `~/.config/dspytools/help_compiled.json`
- 强制重新编译,使用 `dspytools self optimize --force`
---
## 新功能
### 成本跟踪
每次编译和推理调用的令牌计数和成本估算。按模型、运行或管道步骤跟踪 LM 使用情况。
### 漂移检测
监测编译程序随时间的质量下降。当分数低于基线阈值时,收到警报。
### 保留门
程序化执行不变式 5 — 保留数据在任何编译调用之前被分割,从未被优化器看到。所有 GFL、编译和评估命令强制执行此门。
### SPRT 后编译验证
GFL 管道选择最佳优化器后,它在保留的保留集上运行顺序概率比测试(SPRT,α=0.05,β=0.20)。如果 SPRT 拒绝候选,则管道回退到基线 — 从不部署回归器。
### 漂移观察守护进程
连续质量监控,带有 webhook 警报:
```bash
# 单次检查
dspytools self watch --once
# 连续监控,带有 webhook
dspytools self watch --interval 3600 --alert-url https://hooks.example.com/drift
```
### 图表基准和级联
基准 FalkorDB 查询延迟(p50/p95/p99)并跟踪下游重新优化级联:
```bash
dspytools graph benchmark --queries 10 --warmup 3
dspytools graph cascade <skill> --depth 2 --no-dry-run
```
### 缓存预热
预先计算本地存储库的真实复合缓存键,以消除冷启动延迟:
```bash
dspytools generate warmup /home/user/repos/numpy /home/user/repos/pandas
```
### 基于 AST 的缓存
分析缓存(`generate/cache.py`)缓存存储库分析结果,按文件依赖哈希键控。消除跨 `generate`、`explore` 和 `pipeline` 命令的冗余重新计算。
### FalkorDB 图形数据库
O(1) 图遍历用于技能依赖和程序血统。小于 140 毫秒 p99 延迟(比 Neo4j 快 335 倍),<100MB 内存占用。
- **技能依赖图** — 跟踪哪些技能依赖于哪些技能,级联改进
- **程序血统跟踪** — 从编译开始的完整祖先链
- **Cypher 查询** — 完整的 FalkorDB/Cypher 支持复杂图查询
- **迁移工具** — 将现有 JSON 数据导入 FalkorDB
### 语义缓存(RedisVL)
缓存 LLM 响应,通过语义相似性减少 API 成本 ~70%。
- **余弦相似性匹配** — 查找语义相似的提示
- **可配置阈值** — 调整精度与召回率
- **TTL 过期** — 自动使过时条目失效
- **缓存统计** — 跟踪命中率和内存使用情况
### FalkorDB 原生持久内存
FalkorDB 原生内存层,具有自动实体提取、重复数据消除、语义搜索和基于图的关联。无需 mem0 依赖 — 直接使用 FalkorDB 图 + Redis 向量嵌入。
- **自动实体提取** — 内存由实体索引,标记,带有图关联
- **重复数据消除** — 内容哈希防止重复内存
- **冲突解决** — 通过实体协调合并矛盾信息
- **语义搜索** — 两级:FalkorDB 原生向量索引(O(log N))+ 图遍历
- **多租户** — user_id、agent_id、run_id 隔离
- **集成到 SelfEvolveEngine** — `on_compile()` 存储经验教训,`suggest_optimizer()` 搜索记忆
### Redis 堆栈基础设施
单个 Docker 容器,带有所有数据基础设施:
- **FalkorDB** — 图形数据库(Cypher 查询 + 原生向量索引,通过 `db.idx.vector.queryNodes`)
- **Redis** — 核心数据结构(缓存,精确匹配查找,发布/订阅)
```bash
# 启动 Redis 堆栈
docker compose -f docker-compose.redis.yml up -d
# 迁移现有数据
dspytools graph migrate --target all
# 检查状态
dspytools graph status
```
---
## 快速入门
```bash
# 1. 安装
git clone <repo>
cd dspytools
uv sync
cp .env.example .env # 设置 DEEPSEEK_API_KEY
# 2. 配置学生 + 教师模型
dspytools configure lm set "unsloth/Qwen3.5-9B-GGUF" \
--api-base http://localhost:11434/v1 --role student
dspytools configure lm set "deepseek/deepseek-v4-flash" --role teacher
# 3. 创建模块
dspytools module new TweetGenerator "topic: str -> tweet: str"
# 4. 编译程序
dspytools compile mipro TweetGenerator trainset.json
# 5. 运行推理
dspytools run predict "topic: str -> tweet: str" -i topic="DSPy frameworks"
# 6. 生成 llms.txt
dspytools generate llms-txt . --local
# 7. 运行诊断
dspytools doctor
# 8. 比较两个编译程序
dspytools compare <run-a> <run-b>
# 9. 运行多步骤管道
dspytools pipeline compose pipeline.json --run
# 10. 导出编译程序
dspytools export program <run-id> --format json
# 11. 运行 MCP 服务器(用于 AI 助手集成)
dspytools mcp serve --transport stdio
# 12. 管理 LoRA 适配器
dspytools lora list
dspytools lora load super ~/.config/dspytools/adapters/super
dspytools lora test super
dspytools lora health
```
# 13. 运行蒸馏流程(为LoRA创建训练数据)
dspytools distill list-frameworks
dspytools distill run --dry-run
dspytools distill stats
# 14. 为Colab LoRA训练准备文件
dspytools distill prepare-colab --adapter super --rank 64
---
## 命令参考
### 配置与设置 (`configure`)
```bash
dspytools configure key set <提供商> <密钥> # 设置API密钥
dspytools configure key list # 列出已配置的密钥
dspytools configure lm set <模型> [--角色] # 设置LM(学生/教师)
dspytools configure lm list # 列出已配置的LM
dspytools configure adapter set <名称> <类型> # 设置适配器
dspytools configure cache enable/disable/clear # 管理DSPy缓存
dspytools configure dspy set/show <设置> # 配置DSPy后端
dspytools configure dspy optimize # 自动优化DSPy设置
```
### 签名与模块
```bash
dspytools signature new <名称> <签名> # 创建签名
dspytools signature list # 列出所有签名
dspytools signature show <名称> # 显示签名
dspytools signature manipulate <名称> # 编辑签名
dspytools module new <名称> <签名> # 创建模块
dspytools module list # 列出模块
dspytools module call <名称> [输入] # 直接调用模块
dspytools module delete <名称> # 删除模块
```
### 推理 (`run`)
```bash
dspytools run predict <签名> -i <键>=<值> # 标准预测
dspytools run cot <签名> -i <键>=<值> # 思维链
dspytools run react <签名> -i <键>=<值> # ReAct代理
dspytools run react-v2 <签名> -i <键>=<值> # ReActV2代理
dspytools run pot <签名> -i <键>=<值> # 程序思维
dspytools run code-act <签名> -i <键>=<值> # CodeAct代理
dspytools run rlm <签名> -i <键>=<值> # ReRank LM
dspytools run best-of-n <签名> -i <键>=<值> # 最佳N采样
dspytools run refine <签名> -i <键>=<值> # 进步精炼
dspytools run multi-chain <签名> -i <键>=<值> # 多链推理
dspytools run parallel <签名> -i <键>=<值> # 并行执行
dspytools run retrieve <签名> -i <键>=<值> # 检索增强
dspytools run list # 列出可用运行类型
```
### 编译 (`compile`)
```bash
# 简单优化器(同步)
dspytools compile knn <模块> <训练集> --k 2
dspytools compile mipro <模块> <训练集>
dspytools compile gepa <模块> <训练集>
dspytools compile copro <模块> <训练集>
dspytools compile simba <模块> <训练集>
dspytools compile labeled-few-shot <模块> <训练集>
dspytools compile bootstrap-few-shot <模块> <训练集>
dspytools compile bootstrap-few-shot-random <模块> <训练集>
dspytools compile bootstrap-few-shot-optuna <模块> <训练集>
dspytools compile infer-rules <模块> <训练集>
# 高级优化器
dspytools compile better-together <模块> <训练集>
dspytools compile ensemble -m module1 -m module2
dspytools compile finetune <模块> <训练集>
# 基于强化学习的优化器
dspytools compile grpo <模块> <训练集>
# 基于代理的优化器
dspytools compile avatar <模块> <训练集>
# 蒸馏(教师 → 学生)
dspytools compile distill <模块> <训练集>
# GFL流水线(4向比较)
dspytools compile gfl <模块> <训练集>
dspytools compile gfl <模块> <训练集> --single mipro
# 异步作业管理
dspytools compile submit <优化器> <模块> <训练集>
dspytools compile status <作业ID>
dspytools compile list
dspytools compile cancel <作业ID>
```
### 代理 (`agent`)
```bash
dspytools agent new <名称> <签名> # 创建ReActV2代理
dspytools agent list # 列出代理
dspytools agent run <名称> # 运行代理
dspytools agent delete <名称> # 删除代理
```
### 工具 (`tool`)
```bash
dspytools tool list # 列出DSPy工具
dspytools tool show <名称> # 显示工具详情
dspytools tool from-mcp <服务器> <工具> # 导入MCP工具
dspytools tool inspect <名称> # 检查工具内部
dspytools tool python-interpreter # 启动Python沙盒
```
### 评估 (`evaluate`)
```bash
dspytools evaluate run <模块> <开发集> # 评估模块
dspytools evaluate list-metrics # 列出可用指标
```
### 数据集管理 (`data`)
```bash
dspytools data load <数据集.json> # 加载数据集
dspytools data preview <数据集.json> # 预览数据集内容
dspytools data list # 列出可用数据集
```
### GFL流水线 (`gfl`)
```bash
dspytools gfl synthesize <种子.json> --target 30 # 生成合成数据
dspytools gfl meta-optimize <程序> # 元学习最佳优化器
dspytools gfl decompose <任务> # 分解复杂任务
dspytools gfl ab-test <运行A> <运行B> --trials 20 # A/B测试程序
dspytools gfl spin <模块> # SPIN自我博弈优化(arXiv 2401.01335)
dspytools gfl lse <模块> # LSE树引导进化(arXiv 2603.18620)
dspytools gfl gepa <模块> # GEPA帕累托前沿(arXiv 2507.19457)
dspytools gfl opsd <模块> # 纯化OPSD(arXiv 2607.02234)
dspytools gfl consolidate <程序ID> # Trace2Skill进化(arXiv 2603.25158)
```
### 诊断 (`doctor`)
```bash
dspytools doctor # 全系统健康检查
dspytools doctor --check-llm # 检查LLM服务器连接性
dspytools doctor --check-gpu # GPU/cuda诊断
dspytools doctor --check-config # 验证配置文件
```
### 程序比较 (`compare`)
```bash
dspytools compare programs <运行A> <运行B> # 并排程序比较
```
### 流水线编排 (`pipeline`)
```bash
dspytools pipeline compose <流水线.json> # 编排多步骤流水线
dspytools pipeline run <流水线ID> # 执行流水线
dspytools pipeline list # 列出已编排的流水线
```
### 程序导出 (`export`)
```bash
dspytools export package <运行ID> --format json # 导出到JSON
dspytools export package <运行ID> --format onnx # 导出到ONNX
dspytools export package <运行ID> --format python # 导出独立Python
dspytools export list # 列出已导出的程序
dspytools export info <运行ID> # 显示导出信息
```
### 热交换服务器 (`server`)
```bash
dspytools server start --api # 启动FastAPI服务器
dspytools server stop # 停止服务器
dspytools server restart # 重启服务器
dspytools server status # 检查状态
dspytools server swap <运行ID> # 交换活动程序
dspytools server list # 列出已加载的程序
dspytools server enable/disable # 切换热交换
```
### 自我进化 (`self`)
```bash
dspytools self optimize # 编译自我帮助模块
dspytools self status # 检查缓存状态
dspytools self evolve --question "..." # 通过路由器代理路由查询
dspytools self evolve --check # 检查是否需要重新优化
dspytools self distill <运行ID> # 将编译程序蒸馏成LoRA适配器
```
### 技能 (`skills`)
```bash
dspytools skills create <名称> <描述> --签名 <签名>
dspytools skills list
dspytools skills search <查询>
dspytools skills compile <名称> [--优化器]
dspytools skills auto-optimize <名称>
dspytools skills show <名称>
dspytools skills generate-from-run <运行ID>
```
### 生成 (`generate`)
```bash
dspytools generate llms-txt <仓库> # 生成llms.txt
dspytools generate llms-txt . --local # 本地仓库
dspytools generate batch # 批量评估
dspytools generate explore <仓库路径> # MCP git探索
```
### 检查 (`inspect`)
```bash
dspytools inspect history [n] # 显示LM调用历史
dspytools inspect config # 显示已加载的配置
dspytools inspect cache # 显示缓存统计
dspytools inspect tools # 列出可用工具
dspytools inspect version # 显示版本信息
```
### MCP服务器 (`mcp`)
```bash
dspytools mcp serve --transport stdio # 本地代理
dspytools mcp serve --transport sse --port 8002 # 远程代理
dspytools mcp tools # 列出公开的MCP工具
dspytools mcp config # 显示MCP配置
```
---
## 11 arXiv论文实现
该项目跟踪和重现最近文献中的最先进优化模式:
| # | 论文 | 会议 | 代码 | 组件 |
|---|-------|-------|------|-----------|
| 1 | **GEPA** (2507.19457) | arXiv | `dspy.GEPA` | 反射提示演化与帕累托前沿采样 |
| 2 | **TextGrad** (2406.07496) | arXiv | `dspy.TextGrad` | 通过LLM输出的文本反向传播 |
| 3 | **MIPROv2** (2406.11695) | arXiv | `dspy.MIPROv2` | 指令+演示的贝叶斯优化 |
| 4 | **Meta Agent Search** (2408.08435) | arXiv | `SelfEvolveEngine.archive_search()` | 元代理档案发现代理在代码中 |
| 5 | **Gödel Agent** (2410.04444) | arXiv | `SelfEvolveEngine.validate_and_deploy()` | 自我参照递归自我改进与留出验证 |
| 6 | **SOAR** (2507.14172) | arXiv | `GFLPipeline` | 进化搜索与事后学习 |
| 7 | **SPIN** (2401.01335) | NeurIPS | `SPINOptimizer` | 自我博弈判别引导的提示优化 |
| 8 | **R-Zero** (2508.05004) | arXiv | Challenger-Solver | 零数据提示候选的共进化 |
| 9 | **MetaSPO** (2505.09666) | arXiv | `MetaPromptOptimizer` | 任务间系统提示的双层元学习 |
| 10 | **SEAL** (2506.10943) | arXiv | Two-loop RL | 自我编辑生成与强化学习反馈 |
| 11 | **Purified OPSD** (2607.02234) | arXiv | `PurifiedOPSDOptimizer` | PMI精炼的在线策略蒸馏 |
### 附加验证模式
| 模式 | 来源 | 组件 |
|---------|--------|-----------|
| **LSE** (2603.18620) | arXiv | `LSETreeExplorer` — 树引导进化与UCB |
| **GRAO** | TPGO | `GRAOMetaOptimizer` — 历史优化经验的元学习 |
| **Purified OPSD** (2607.02234) | arXiv | `PurifiedOPSDOptimizer` — PMI目标精炼,封装任意优化器 |
| **BootstrapFewShot** | DSPy | 带标签+自举演示选择 |
| **BootstrapFewShotWithRandomSearch** | DSPy | 候选程序的随机搜索 |
| **BootstrapFewShotWithOptuna** | DSPy | Optuna超参数优化 |
| **BetterTogether** | DSPy | GEPA子优化器组合 |
---
## MLflow集成
通过MLflow 3.5.1+进行完整实验跟踪:
### 配置
```bash
# 默认:http://localhost:5000
# 通过环境变量覆盖:
export MLFLOW_TRACKING_URI=http://your-mlflow-server:5000
# 或使用本地文件存储(自动回落)
# ~/.config/dspytools/mlruns/
```
### 自动跟踪
每次`dspytools compile`运行都会自动记录:
- **参数**:优化器名称、模块名称、自动模式、k、策略
- **指标**:分数、基线、改进增量
- **GFL比较**:每优化器得分、最佳优化器、总改进
### MCP可访问
```bash
# 通过MCP工具查询MLflow状态(来自任何AI助手)
dspytools mcp tools # 显示mlflow_status工具
```
```json
// mlflow_status工具的响应:
{
"enabled": true,
"tracking_uri": "http://localhost:5000",
"experiment": "dspytools"
}
```
### 手动使用
```python
from dspytools.core.mlflow_tracker import get_tracker
tracker = get_tracker()
tracker.log_compile(
optimizer="mipro",
module="TweetGenerator",
score=0.85,
params={"auto": "light"},
)
```
---
## 开发
### 项目结构
```
dspytools/
├── src/dspytools/ ← 100+ 源文件
│ ├── main.py ← CLI入口点(SelfOptimizingCLI)
│ ├── commands/ (24) ← CLI子命令组(包括图)
│ ├── core/ (20) ← 引擎:热交换、注册、设置、调度器、输出、mlflow、漂移、留出、重试、成本、加载器、指标、错误、_embedder、_io、_dspy、mojo_bridge、sprt_mojo_bridge、logging_config、dspy_modules
│ ├── mcp/ (3) ← MCP服务器、工具、加载器(65个工具)
│ ├── gfl/ (12) ← GFL:流水线、预算、跟踪器、合成、元学习、反馈、分解、ab_test、grpo、paper_optimizers、consolidation
│ ├── evolve/ (8) ← 自我进化:引擎、路由器、指标 + 层(动作、合约、轨迹、__init__)
│ ├── skills/ (5) ← 技能:加载器(BM25+embeddings)、管理器、发现、__init__
│ ├── generate/ (5) ← llms.txt:缓存、数据、探索器、模块、__init__
│ ├── generators/ (3) ← DSPy原生代码生成器(SignatureGeneratorDSPy、ModuleGeneratorDSPy)
│ ├── graph/ (8) ← FalkorDB:客户端、skill_graph、缓存、迁移、redis_cache、benchmark、cache_mojo_bridge、__init__
│ ├── memory/ (2) ← FalkorDB原生:管理器、__init__
│ ├── help/ (4) ← 自我优化帮助:模块、上下文、优化、__init__
│ ├── api/ (1) ← FastAPI热交换服务器
│ ├── config/ (2) ← 配置:设置(热加载、环境变量覆盖)、env
│ └── cli/ (3) ← Rich输出实用程序(llm_help、output、rich_config)
├── tests/ (24 files) ← 360个烟雾测试(无LLM依赖)
├── docker-compose.redis.yml ← Redis Stack + FalkorDB容器
├── AGENTS.md ← DOX框架根目录
├── src/dspytools/commands/AGENTS.md
├── src/dspytools/core/AGENTS.md
├── src/dspytools/mcp/AGENTS.md
├── src/dspytools/gfl/AGENTS.md
├── src/dspytools/evolve/AGENTS.md
├── src/dspytools/skills/AGENTS.md
├── src/dspytools/generate/AGENTS.md
├── src/dspytools/generators/AGENTS.md
├── src/dspytools/graph/AGENTS.md
├── src/dspytools/memory/AGENTS.md
├── src/dspytools/help/AGENTS.md
├── src/dspytools/api/AGENTS.md
└── src/dspytools/config/AGENTS.md
```
### 代码质量
- **Ruff**:零错误
```bash
ruff check src/dspytools/ # pass
ruff format --check src/ # pass
```
- **Pyright**:已配置为`reportUnusedParameter: false`在`.pyrightconfig.json`
### 测试
```bash
# 运行烟雾测试(无需实时LLM)
pytest tests/ -v
# 测试类别:
├── test_registry.py # JSON注册表读写
├── test_gfl_pipeline.py # GFL流水线4向比较
├── test_compile_factory.py # 优化器工厂注册
└── test_module_imports.py # 所有模块导入解析
```
### DOX文档树
13个子`AGENTS.md`文件 + 根目录(包括`generators/`):
```
AGENTS.md(根目录)
├── src/dspytools/commands/AGENTS.md
├── src/dspytools/core/AGENTS.md
├── src/dspytools/mcp/AGENTS.md
├── src/dspytools/gfl/AGENTS.md
├── src/dspytools/evolve/AGENTS.md
├── src/dspytools/skills/AGENTS.md
├── src/dspytools/generate/AGENTS.md
├── src/dspytools/generators/AGENTS.md
├── src/dspytools/graph/AGENTS.md
├── src/dspytools/memory/AGENTS.md
├── src/dspytools/help/AGENTS.md
├── src/dspytools/api/AGENTS.md
└── src/dspytools/config/AGENTS.md
```
### 需求
- **Python** 3.12+
- **llama-cpp-server** (Qwen3.5-9B在端口8080)
- **Embeddings** (embeddinggemma在端口8001,可选)
- **DeepSeek API密钥** (用于教师LM优化)
- **Deno** (用于ProgramOfThought / PythonInterpreter沙盒)
- **MLflow** 3.5.1+ (可选,自动回落到本地文件存储)
- **Redis Stack** (用于FalkorDB图 + 语义缓存 + 持久内存)
- `docker compose -f docker-compose.redis.yml up -d`
- 或使用现有的Redis与FalkorDB模块
---
## 许可证
MIT
```
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器