All Toolsโ€บRecursive Prompt Optimizer
๐Ÿ”ง Recursive AI ModelsMay 19, 2026โœ… Tests passing

Recursive Prompt Optimizer

This library provides utilities to design and optimize prompts for recursive reasoning models. It includes tools to simulate recursive chains, measure token efficiency, and automatically refine prompts to minimize token usage without compromising reasoning quality.

What It Does

  • Simulate Recursive Chains: Simulate recursive reasoning chains using a prompt template and task configuration.
  • Measure Token Efficiency: Calculate the number of tokens used by a given prompt.
  • Optimize Prompts: Automatically refine prompts to reduce token usage while maintaining reasoning quality.

Installation

Install the required dependencies using pip:

pip install nltk openai tiktoken

Usage

Command Line Interface

Run the script from the command line:

python recursive_prompt_optimizer.py "<prompt_template>" "<task_config_json>" --max_depth <max_depth> --max_iterations <max_iterations>
  • prompt_template: The prompt template to optimize.
  • task_config_json: JSON string of task configuration.
  • --max_depth: Maximum recursion depth for simulation (default: 3).
  • --max_iterations: Maximum iterations for optimization (default: 5).

Example

python recursive_prompt_optimizer.py "What is the result of {input}?" "{\"input\": \"2 + 2\"}" --max_depth 2 --max_iterations 3

Programmatic Usage

Import the library and use its functions in your Python code:

from recursive_prompt_optimizer import simulate_recursive_chain, measure_token_efficiency, optimize_prompt

prompt_template = "What is the result of {input}?"
task_config = {"input": "2 + 2"}

# Simulate recursive chain
simulation_results = simulate_recursive_chain(prompt_template, task_config, max_depth=2)
print(simulation_results)

# Optimize prompt
optimization_results = optimize_prompt(prompt_template, task_config, max_iterations=5)
print(optimization_results)

Source Code

import json
from nltk.tokenize import word_tokenize
import openai
import tiktoken
from typing import Dict, Any

def simulate_recursive_chain(prompt_template: str, task_config: Dict[str, Any], max_depth: int = 3) -> Dict[str, Any]:
    """
    Simulates a recursive reasoning chain based on the provided prompt template and task configuration.

    Args:
        prompt_template (str): The prompt template to use.
        task_config (Dict[str, Any]): Configuration for the recursive reasoning task.
        max_depth (int): Maximum recursion depth.

    Returns:
        Dict[str, Any]: Simulation results including token usage and responses.
    """
    results = []
    try:
        current_prompt = prompt_template.format(**task_config)
    except KeyError as e:
        return {"error": f"Missing key in task_config: {e}"}

    for depth in range(max_depth):
        try:
            response = openai.Completion.create(
                engine="text-davinci-003",
                prompt=current_prompt,
                max_tokens=150
            )
            response_text = response["choices"][0]["text"].strip()
            results.append({"depth": depth, "prompt": current_prompt, "response": response_text})
            current_prompt = prompt_template.format(response=response_text, **task_config)
        except Exception as e:
            results.append({"depth": depth, "error": str(e)})
            break

    return {"results": results, "total_depth": len(results)}

def measure_token_efficiency(prompt: str) -> int:
    """
    Measures the token usage of a given prompt using the tiktoken library.

    Args:
        prompt (str): The input prompt.

    Returns:
        int: The number of tokens used.
    """
    encoding = tiktoken.encoding_for_model("text-davinci-003")
    return len(encoding.encode(prompt))

def optimize_prompt(prompt_template: str, task_config: Dict[str, Any], max_iterations: int = 5) -> Dict[str, Any]:
    """
    Optimizes a prompt template to reduce token usage while maintaining reasoning quality.

    Args:
        prompt_template (str): The initial prompt template.
        task_config (Dict[str, Any]): Configuration for the task.
        max_iterations (int): Maximum number of optimization iterations.

    Returns:
        Dict[str, Any]: The optimized prompt and metrics.
    """
    try:
        optimized_prompt = prompt_template.format(**task_config)
    except KeyError as e:
        return {"error": f"Missing key in task_config: {e}"}

    initial_tokens = measure_token_efficiency(optimized_prompt)

    for _ in range(max_iterations):
        # Simplify the prompt by removing redundant words
        words = word_tokenize(optimized_prompt)
        if len(words) <= 5:  # Avoid over-simplification
            break
        optimized_prompt = " ".join(words[:-1])

        # Measure token usage
        try:
            current_tokens = measure_token_efficiency(optimized_prompt)
        except Exception as e:
            return {"error": f"Error measuring token efficiency: {e}"}

        if current_tokens >= initial_tokens:
            break
        initial_tokens = current_tokens

    return {"optimized_prompt": optimized_prompt, "token_usage": initial_tokens}

if __name__ == "__main__":
    import argparse

    parser = argparse.ArgumentParser(description="Recursive Prompt Optimizer")
    parser.add_argument("prompt_template", type=str, help="The prompt template to optimize.")
    parser.add_argument("task_config", type=str, help="JSON string of task configuration.")
    parser.add_argument("--max_depth", type=int, default=3, help="Maximum recursion depth for simulation.")
    parser.add_argument("--max_iterations", type=int, default=5, help="Maximum iterations for optimization.")

    args = parser.parse_args()

    try:
        task_config = json.loads(args.task_config)
    except json.JSONDecodeError as e:
        print(f"Error parsing task_config: {e}")
        exit(1)

    print("Simulating recursive chain...")
    simulation_results = simulate_recursive_chain(args.prompt_template, task_config, args.max_depth)
    print(json.dumps(simulation_results, indent=2))

    print("Optimizing prompt...")
    optimization_results = optimize_prompt(args.prompt_template, task_config, args.max_iterations)
    print(json.dumps(optimization_results, indent=2))

Community

Downloads

ยทยทยท

Rate this tool

No ratings yet โ€” be the first!

Details

Tool Name
recursive_prompt_optimizer
Category
Recursive AI Models
Generated
May 19, 2026
Tests
Passing โœ…
Fix Loops
5

Quick Install

Clone just this tool:

git clone --depth 1 --filter=blob:none --sparse \
  https://github.com/ptulin/autoaiforge.git
cd autoaiforge
git sparse-checkout set generated_tools/2026-05-19/recursive_prompt_optimizer
cd generated_tools/2026-05-19/recursive_prompt_optimizer
pip install -r requirements.txt 2>/dev/null || true
python recursive_prompt_optimizer.py
Recursive Prompt Optimizer โ€” AI Tools by AutoAIForge