Skip to content

automl/promptolution

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

237 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Coverage CI Docs PyPI version Code Style Python Versions Getting Started

promptolution

lmu_logo mcml ellis_logo uni_freiburg_color tum_logo

πŸš€ What is Promptolution?

Promptolution is a unified, modular framework for prompt optimization built for researchers and advanced practitioners who want full control over their experimental setup. Unlike end-to-end application frameworks with high abstraction, promptolution focuses exclusively on the optimization stage, providing a clean, transparent, and extensible API. It allows for simple prompt optimization for one task up to large-scale reproducible benchmark experiments.

promptolution_framework

Key Features

  • Implementation of many current prompt optimizers out of the box.
  • Unified LLM backend supporting API-based models, Local LLMs, and vLLM clusters.
  • Built-in response caching to save costs and parallelized inference for speed.
  • Detailed logging and token usage tracking for granular post-hoc analysis.

Have a look at our Release Notes for the latest updates to promptolution.

πŸ“š Scientific Publications Powered by Promptolution

  • CANTANTE: Optimizing Agentic Systems via Contrastive Credit Attribution β€” Zehle, 2026. arXiv
  • MO-CAPO: Multi-Objective Cost-Aware Prompt Optimization β€” BΓΌssing et al., 2026. arXiv
  • promptolution: A Unified, Modular Framework for Prompt Optimization β€” Zehle et al., 2026. EACL 2026
  • Can Calibration of Positional Encodings Enhance Long Context Utilization? β€” Zehle & Aßenmacher, 2026. EACL 2026
  • Disambiguation-Centric Finetuning Makes Enterprise Tool-Calling LLMs More Realistic and Less Risky β€” Hathidara et al., 2025. arXiv
  • CAPO: Cost-Aware Prompt Optimization β€” Zehle et al., 2025. AutoML 2025

πŸ”§ Installation and Quickstart

pip install promptolution[api]

For local inference, add [transformers] (HuggingFace) or [vllm] (vLLM serving), or both.

import pandas as pd
from promptolution.utils import ExperimentConfig
from promptolution.helpers import run_experiment

# DataFrame with columns "x" (input) and "y" (label)
df = pd.read_csv("your_data.csv")

config = ExperimentConfig(
    optimizer="capo",
    task_description="Classify each sentence as subjective or objective.",
    prompts=["Classify the text as objective or subjective."],
    n_steps=10,
    api_url="https://api.openai.com/v1",
    model_id="gpt-4o-mini",
    api_key="YOUR_API_KEY",
)

best_prompts = run_experiment(df, config)
print(best_prompts)

Full tutorial: Getting Started notebook Β· Docs

🧠 Featured Optimizers

Name Paper Init prompts Exploration Costs Parallelizable Few-shot
CAPO Zehle et al., 2025 required πŸ‘ πŸ’² βœ… βœ…
EvoPromptDE Guo et al., 2023 required πŸ‘ πŸ’²πŸ’² βœ… ❌
EvoPromptGA Guo et al., 2023 required πŸ‘ πŸ’²πŸ’² βœ… ❌
OPRO Yang et al., 2023 optional πŸ‘Ž πŸ’²πŸ’² ❌ ❌

πŸ— Components

  • Task – Manages the dataset, evaluation metrics, and subsampling.
  • Predictor – Defines how to extract the answer from the model's response.
  • LLM – A unified interface handling inference, token counting, and concurrency.
  • Optimizer – The core component that implements the algorithms that refine prompts.
  • ExperimentConfig – A configuration abstraction to streamline and parametrize large-scale scientific experiments.

🀝 Contributing

Contributions are welcome! See CONTRIBUTING.md for the workflow, code quality guidelines, and how to run tests.

πŸ“„ Citation

If you use Promptolution in your research, please cite:

@inproceedings{zehle2026promptolution,
  title={promptolution: A unified, modular framework for prompt optimization},
  author={Zehle, Tom and Hei{\ss}, Timo and Schlager, Moritz and A{\ss}enmacher, Matthias and Feurer, Matthias},
  booktitle={Proceedings of the 19th Conference of the European Chapter of the Association for Computational Linguistics (Volume 3: System Demonstrations)},
  pages={282--296},
  year={2026}
}

Developed by Timo Heiß, Moritz Schlager, Tom Zehle, and Henri Oberpaur (LMU Munich, MCML, ELLIS, TUM, Uni Freiburg).