Skip to main content
skill CX Codex

dspy-reasoning-modules — Claude Code skill: features and setup

Guides configuration of DSPy 3.2.1 reasoning modules including RLM, ProgramOfThought, CodeAct, and Parallel. Useful for sandboxed code and long documents.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add OmidZamani/dspy-skills --skill dspy-reasoning-modules -a claude-code
Open on GitHub

What dspy-reasoning-modules does

This skill guides module selection across DSPy reasoning architectures. It outlines patterns for dspy.RLM to inspect massive documents iteratively in a REPL without packing the full text into model prompts. For code generation and host tool calling, it configures dspy.ProgramOfThought and dspy.CodeAct. Concurrent batch processing runs through dspy.Parallel with explicit thread counts and exception tracking.

Execution safety relies on Deno and Pyodide inside dspy.PythonInterpreter. The sandbox denies filesystem, network, and environment variable access by default. Specific read paths and remote domains must be allowed explicitly before running tasks. Without Deno installed on your system, code execution modules like RLM and CodeAct will fail immediately.

What it helps with

  • inspect long documents using iterative sub-LM calls in dspy.RLM
  • bind custom Python functions to agents using dspy.CodeAct
  • restrict sandbox network and file access within dspy.PythonInterpreter
  • execute prompt-module batches concurrently with dspy.Parallel

Example prompts for the agent

  • Configure a dspy.RLM instance to inspect a long document with max_iterations set to 12
  • Create a dspy.CodeAct agent that uses the lookup_rate tool inside a restricted sandbox
  • Run a list of question examples concurrently across 8 threads with dspy.Parallel

How to install dspy-reasoning-modules

1Skills CLI (Vercel)

npx skills add OmidZamani/dspy-skills --skill dspy-reasoning-modules -a claude-code

2Manually: put the files in place

~/.claude/skills/dspy-reasoning-modules/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/dspy-reasoning-modules/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about dspy-reasoning-modules

How to install dspy-reasoning-modules in Claude Code?

Run npx skills add OmidZamani/dspy-skills --skill dspy-reasoning-modules -a claude-code.

What is the purpose of dspy-reasoning-modules?

It instructs your agent on implementing DSPy reasoning modules, managing iteration limits, and securing sandboxed code execution.

What external runtime is required for sandboxed execution?

Modules like RLM, ProgramOfThought, and CodeAct require Deno by default to run Python via Pyodide in an isolated environment.

Source text

SKILL.md · MIT
---
name: dspy-reasoning-modules
version: "1.0.0"
dspy-compatibility: "3.2.1"
tags: ["reasoning"]
requires-extras: []
description: Use for DSPy reasoning modules including RLM, ProgramOfThought, CodeAct, Parallel, sandboxed execution, and long-context workflows.
allowed-tools:
  - Read
  - Write
  - Glob
  - Grep
---

# DSPy Reasoning Modules

## Goal

Choose the appropriate DSPy reasoning module for long-context exploration, code-assisted reasoning, or parallel execution.

## Module Selection

| Module | Use it for | Important constraint |
|--------|------------|----------------------|
| `dspy.RLM` | Exploring very large contexts with iterative REPL code and recursive sub-LM calls | Experimental; requires Deno by default |
| `dspy.ProgramOfThought` | Solving tasks by generating and executing Python | Requires Deno by default |
| `dspy.CodeAct` | Combining generated Python with predefined tool functions | Functions only; requires Deno |
| `dspy.Parallel` | Running `(module, example)` pairs concurrently | Tune threads and error handling |

## RLM for Large Contexts

`RLM` treats long inputs as external data in a sandbox rather than placing the full context in each LM prompt.

```python
import dspy

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

rlm = dspy.RLM(
    "document, question -> answer",
    max_iterations=12,
    max_llm_calls=30,
    sub_lm=dspy.LM("openai/gpt-4o-mini"),
)

result = rlm(
    document=very_long_document,
    question="What were the main revenue drivers?",
)
print(result.answer)
```

Use `max_iterations`, `max_llm_calls`, and `max_output_chars` as explicit cost and output bounds.

## Sandboxed Execution

The default `dspy.PythonInterpreter` uses Deno and Pyodide. It denies host filesystem, environment, and network access unless explicitly enabled.

```python
from pathlib import Path
import dspy

with dspy.PythonInterpreter(
    enable_read_paths=[Path("./inputs")],
    enable_network_access=["api.example.com"],
) as interpreter:
    print(interpreter.execute("print('ready')"))
```

Grant only the minimum paths, environment variables, and network hosts needed by the task.

## ProgramOfThought and CodeAct

```python
import dspy

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

math = dspy.ProgramOfThought("question -> answer")
print(math(question="What is the sum of the first 100 integers?").answer)
```

Use `CodeAct` when generated code also needs curated host-side tools:

```python
def lookup_rate(currency: str) -> float:
    """Return a trusted exchange rate from the application service."""
    return rates[currency]

agent = dspy.CodeAct("amount, currency -> converted", tools=[lookup_rate])
```

## Parallel Execution

```python
parallel = dspy.Parallel(num_threads=8, return_failed_examples=True)
results, failed_examples, exceptions = parallel(
    [(program, {"question": question}) for question in questions]
)
```

## Best Practices

1. Prefer `Predict` or `ChainOfThought` until code execution or long-context exploration is justified.
2. Treat `RLM` as experimental and load-test before production deployment.
3. Bound loops and sub-LM calls.
4. Keep sandbox permissions narrow.
5. Create separate interpreters for concurrent custom-interpreter use.

## Official Documentation

- **RLM API**: https://dspy.ai/api/modules/RLM/
- **ProgramOfThought API**: https://dspy.ai/api/modules/ProgramOfThought/
- **CodeAct API**: https://dspy.ai/api/modules/CodeAct/
- **Parallel API**: https://dspy.ai/api/modules/Parallel/

© OmidZamani · MIT · OmidZamani/dspy-skills

Similar skills

All skills for AI and ML →

From the same set23

skill-perfection Audits and patches skill markdown files in a single pass against official documentation. Useful when preparing an agent skill for release. CX Codex +1 ★ 124repo stars dspy-simba-optimizer This skill guides SIMBA optimization for DSPy programs, using numeric scores to refine prompts and demonstrations. Use it when you can measure task quality with a metric. CX Codex +1 ★ 124repo stars dspy-signature-designer Turns a task description into a typed DSPy signature with declared inputs and outputs. Useful when model replies must fit a fixed schema. CX Codex +1 ★ 124repo stars dspy-react-agent-builder This skill guides you through building DSPy ReAct agents that call tools to handle multi-step tasks. Use it for workflows involving retrieval, calculations, or answers based on external data. CX Codex +1 ★ 124repo stars dspy-rag-pipeline Builds retrieval-augmented generation pipelines powered by ColBERTv2 that can be systematically optimized. Use when questions require searching across your own document corpus and grounding answers in retrieved facts. CX Codex +1 ★ 124repo stars dspy-production-deployment Prepares DSPy 3.2.1 pipelines for production by configuring safe caching, state-only JSON persistence, async calls, and output streaming. CX Codex +1 ★ 124repo stars dspy-output-refinement-constraints This skill shows how to validate DSPy outputs, refine them with dspy.Refine, and choose among candidates with dspy.BestOfN. Use it when generated results must meet format or content rules. CX Codex +1 ★ 124repo stars dspy-optimizer-selection Helps you pick a DSPy optimizer that fits your data and budget, from LabeledFewShot up to GEPA and BetterTogether. Useful when you don't know where to start compiling. CX Codex +1 ★ 124repo stars

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor