CapabilityWire
// event · library

DSPy 3.4.1: structured GEPA InstructionProposer default and RLM sub-agents

library
vendor: stanfordnlppublished: 10h agoconfidence: 0.90id: 87c5eb00-e2b7-4e49-8ead-3806aafb66f3

DSPy 3.4.1 promotes GEPA's structured InstructionProposer to the default (routing reflective examples through dspy.Predict + JSONAdapter so History, tool trajectories, and dspy.Image stay structured) and lets dspy.RLM build DSPy sub-agents (Predict, ChainOfThought, ReActV2, nested RLM) directly from its sandboxed REPL, sharing one max_llm_calls budget. Adds Python 3.15, fixes 3.4.0 import crash.

capability delta

An agent can now use GEPA's structured InstructionProposer by default (preserving images/history/tool trajectories as structured content) and have dspy.RLM spawn DSPy sub-agents (Predict, ChainOfThought, ReActV2, nested RLM) from inside its sandboxed REPL under a shared max_llm_c

// install
pip install --upgrade "dspy==3.4.1"
pypi · dspy @ 3.4.1
// example
python
import dspy
from dspy.teleprompt.gepa import InstructionProposer

optimizer = dspy.GEPA(
    metric=metric,
    reflection_lm=dspy.LM("openai/gpt-5"),
    instruction_proposer=InstructionProposer(
        skills=["./skills/prompt-engineering"],
        additional_instructions="Write instructions in imperative voice.",
        max_chars=1500,
        truncate_history_outputs=True,
    ),
    auto="medium",
)

# RLM that can spawn DSPy sub-agents inside its REPL
rlm = dspy.RLM(
    "logs, question -> answer",
    sub_lm=dspy.LM("openai/gpt-4o-mini"),
    max_llm_calls=30,
)
// links
dspygeparlmsub-agentsoptimizerpythoninstruction-proposerreact
source: github_release · https://github.com/stanfordnlp/dspy/releases/tag/3.4.1