К основному содержанию
скилл CX Codex

dspy-better-together — скилл для Claude Code

Скилл помогает собрать цепочку из промпт- и весовых оптимизаторов DSPy, сравнить промежуточные программы и вернуть лучшую.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add OmidZamani/dspy-skills --skill dspy-better-together -a claude-code
Открыть на GitHub

Что делает dspy-better-together

Скилл объясняет, как работать с dspy.BetterTogether: он запускает оптимизаторы по очереди, оценивает промежуточные программы и возвращает лучшего кандидата. Стратегия задаётся строкой вида "p -> w -> p", где p — промпт-оптимизатор, а w — весовой. Имена для цепочки берутся из именованных аргументов конструктора: если передать mipro=... и gepa=..., строка "mipro -> gepa" станет допустимой.

Внутри — примеры кода и таблица выбора стратегии. Для простого прохода хватит "p -> w", для повторной оптимизации промптов после файнтюнинга — "p -> w -> p", а "w -> p" берут, когда данные для файнтюнинга уже хороши. Аргументы конкретного оптимизатора передаются через optimizer_compile_args; student туда класть не нужно, потому что текущей программой управляет сам BetterTogether.

Нужен DSPy 3.2.1 или новее из стабильной ветки 3.2.x. LM придётся назначить каждому предиктору вручную через student.set_lm(lm) — без этого шага цепочка не соберётся как задумано. Валидационный набор держите отдельно или разрешите BetterTogether отложить часть trainset. Если в цепочку входит BootstrapFinetune, сначала проверьте, что провайдер модели вообще поддерживает файнтюнинг. После компиляции у программы есть candidate_programs со счётом и стратегией каждого кандидата и флаг flag_compilation_error_occurred, который показывает, упал ли какой-то шаг.

Какие задачи решает

  • собрать цепочку из промпт- и весовых оптимизаторов DSPy
  • сравнить промежуточные программы по метрике и выбрать лучшую
  • переоптимизировать промпты после файнтюнинга весов
  • передать отдельные аргументы компиляции одному оптимизатору в цепочке
  • узнать, упал ли шаг компиляции до её завершения

Примеры запросов агенту

  • Собери цепочку p -> w -> p для моей программы на DSPy и покажи лучшего кандидата
  • Добавь в компиляцию optimizer_compile_args с max_metric_calls 150 для шага p
  • Проверь, поддерживает ли провайдер файнтюнинг, прежде чем включать BootstrapFinetune

Как установить dspy-better-together

1Через Skills CLI (Vercel)

npx skills add OmidZamani/dspy-skills --skill dspy-better-together -a claude-code

2Вручную: положить файлы

~/.claude/skills/dspy-better-together/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/dspy-better-together/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о dspy-better-together

Как установить dspy-better-together в Claude Code?

Выполните npx skills add OmidZamani/dspy-skills --skill dspy-better-together -a claude-code, после чего скилл окажется в ~/.claude/skills/dspy-better-together/SKILL.md.

Что делает dspy-better-together?

Показывает, как через dspy.BetterTogether выстроить последовательность оптимизаторов, оценить промежуточные программы и вернуть лучшую из них.

Какие стратегии цепочек поддерживаются?

"p -> w", "p -> w -> p" и "w -> p", а также свои цепочки — например, "mipro -> gepa", если так названы аргументы конструктора.

Исходный текст

SKILL.md · MIT
---
name: dspy-better-together
version: "1.0.0"
dspy-compatibility: "3.2.1"
tags: ["optimizer"]
requires-extras: []
description: Use for BetterTogether, prompt plus weight optimization, fine-tuning sequences, and strategy chains like p -> w -> p.
allowed-tools:
  - Read
  - Write
  - Glob
  - Grep
---

# DSPy BetterTogether

## Goal

Sequence prompt and weight optimizers, evaluate intermediate programs, and return the best candidate.

## Prerequisites

- Use DSPy `3.2.1` or later in the stable `3.2.x` series.
- Assign an LM directly to every predictor with `student.set_lm(lm)`.
- Keep a validation set, or allow `BetterTogether` to hold out part of the trainset.
- Confirm the LM provider supports fine-tuning before including `BootstrapFinetune`.

## Basic Pattern

```python
import dspy

lm = dspy.LM("openai/gpt-4o-mini")
dspy.configure(lm=lm)

student = dspy.ChainOfThought("question -> answer")
student.set_lm(lm)

def metric(example, pred, trace=None):
    return float(example.answer.lower() == pred.answer.lower())

optimizer = dspy.BetterTogether(
    metric=metric,
    p=dspy.GEPA(
        metric=lambda gold, pred, trace=None, pred_name=None, pred_trace=None:
            dspy.Prediction(score=metric(gold, pred), feedback="Check answer correctness."),
        reflection_lm=dspy.LM("openai/gpt-4o"),
        auto="light",
    ),
    w=dspy.BootstrapFinetune(metric=metric),
)

compiled = optimizer.compile(
    student,
    trainset=trainset,
    valset=valset,
    strategy="p -> w -> p",
)
```

## Strategy Choices

| Strategy | Use it when |
|----------|-------------|
| `"p -> w"` | Start with a simple prompt-then-weight pass |
| `"p -> w -> p"` | Re-optimize prompts after fine-tuning |
| `"w -> p"` | Fine-tuning data is already strong |
| Custom chains | Comparing prompt optimizers or conducting controlled experiments |

Optimizer names come from constructor keyword arguments. For example, `mipro=...` and `gepa=...` make `"mipro -> gepa"` valid.

## Per-Optimizer Compile Arguments

Pass optimizer-specific arguments through `optimizer_compile_args`:

```python
compiled = optimizer.compile(
    student,
    trainset=trainset,
    valset=valset,
    strategy="p -> w",
    optimizer_compile_args={
        "p": {"max_metric_calls": 150},
    },
)
```

Do not pass `student` inside `optimizer_compile_args`; `BetterTogether` manages the current program.

## Inspect Results

The returned program exposes:

- `candidate_programs`: evaluated candidates with score and strategy
- `flag_compilation_error_occurred`: whether a step failed before completion

## Related Skills

- Pick optimizers: [dspy-optimizer-selection](../dspy-optimizer-selection/SKILL.md)
- Fine-tune weights: [dspy-finetune-bootstrap](../dspy-finetune-bootstrap/SKILL.md)
- Reflect with GEPA: [dspy-gepa-reflective](../dspy-gepa-reflective/SKILL.md)

## Official Documentation

- **BetterTogether API**: https://dspy.ai/api/optimizers/BetterTogether/
- **Optimizer guide**: https://dspy.ai/learn/optimization/optimizers/

© OmidZamani · MIT · OmidZamani/dspy-skills

Похожие скиллы

Все скиллы по теме «ИИ и ML» →
skill-creator официальный anthropics Помогает создать новый скилл, доработать существующий и проверить результат через тестовые промпты и оценки. 414 180установок writing-for-agents Matt Pocock Помогает писать скиллы и документы с инструкциями для агентов. Пригодится при правках AGENTS.md, CLAUDE.md и связанных справочных файлов. 466 719установок media-use heygen-com Находит и генерирует ассеты для видео в HyperFrames — музыку, дикторский голос, аватары и эффекты. Сохраняет всё локально в assets. CX Codex +1 1 100 000установок mcp-builder официальный anthropics Скилл проводит через создание MCP-сервера на TypeScript или Python: от изучения протокола до тестов и оценки качества. 130 949установок subagent-driven-development Jesse Vincent Скилл выполняет план через отдельных субагентов для каждой задачи и проверяет результат после каждого шага. Подходит для независимых задач в одной сессии. CX Codex 237 746установок orchestration stablyai Координирует воркеров Orca через DAG задач, циклы супервизора и цепочки сообщений. Пригодится для распределения сложной работы между агентами. CX Codex +1 350 300установок

Из того же набора7

dspy-signature-designer Помогает описать входы и выходы модуля DSPy через типизированные сигнатуры. Пригодится, когда ответ модели нужно загнать в строгую схему. CX Codex +1 ★ 124звёзд репо dspy-rag-pipeline Строит пайплайны retrieval-augmented generation с ColBERTv2, которые можно систематически улучшать. Пригодится, если вопросы требуют поиска по собственному корпусу документов и факт-чекирования ответов. CX Codex +1 ★ 124звёзд репо dspy-optimizer-selection Помогает выбрать оптимизатор DSPy под данные и бюджет: от LabeledFewShot до GEPA и BetterTogether. Пригодится, когда неясно, с чего начать компиляцию программы. CX Codex +1 ★ 124звёзд репо dspy-mcp-tool-integration Скилл показывает, как подключить MCP-сервер к DSPy: конвертировать его инструменты в dspy.Tool и вызывать их из async-агента. CX Codex +1 ★ 124звёзд репо dspy-finetune-bootstrap Дистиллирует работающую DSPy-программу в веса меньшей модели через BootstrapFinetune, чтобы снизить стоимость инференса и ускорить ответы. CX Codex +1 ★ 124звёзд репо dspy-debugging-observability Скилл для отладки и мониторинга программ на DSPy: история вызовов, трассировка через MLflow, свои колбэки для учёта цены и ошибок. CX Codex +1 ★ 124звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой