CoolPrompt is a framework for automatic prompt creation and optimization.
Join our telegram channel to be in touch.
- Automatic prompt engineering for solving tasks using LLM
- (Semi-)automatic generation of markup for fine-tuning
- Formalization of response quality assessment using LLM
- Prompt adoption for AI Agentic Pipelines
- Etc.
- Optimize prompts with our APO methods:
- HyPER / HyPER Light
- RE-GPS
- RIDER
- PromptCompressor
- (legacy/deprecated): ReflectivePrompt, DistillPrompt
- LLM-Agnostic Choice: work with your custom llm (from open-sourced to proprietary) using supported Langchain LLMs
- Develop own custom APO method in one library
- Generate synthetic evaluation data when no input dataset is provided
- Evaluate a quality of prompts incorporating multiple metrics for both classification and generation tasks
- Evaluate costs of optimization processes by a number of tokens/calls and a price.
- Automatic task detecting for scenarios without explicit user-defined task specifications
- Install with pip:
pip install coolprompt- Install with git:
git clone https://github.com/CTLab-ITMO/CoolPrompt.git
cd CoolPrompt
pip install -e .Set your OpenAI API key before running. The default model is gpt-4o-mini via the OpenAI API (OPENAI_API_KEY environment variable)
from coolprompt.assistant import PromptTuner
prompt_tuner = PromptTuner()
prompt_tuner.run('Write an essay about autumn')
print(prompt_tuner.final_prompt)
# You are an expert writer and seasonal observer tasked with composing a rich,
# well-structured, and vividly descriptive essay on the theme of autumn...See more examples in notebooks to familiarize yourself with our framework
- The framework is developed by Computer Technologies Lab (CT-Lab) of ITMO University.
- API Reference
- We welcome and value any contributions and collaborations, so please contact us. For new code check out CONTRIBUTING.md.
For technical details and full experimental results, please check our papers + citations inside.
RIDER
@inproceedings{dragomirov2026rider,
author = {Dragomirov, Daglar and Kulin, Nikita and Muravyov, Sergey and Makarov, Ilya and Sukhorukov, Daniil and Mozikov, Mikhail},
title = {RIDER: Evolutionary Prompt Optimization with Adaptive Operator Selection for Software Engineering},
booktitle = {Companion Proceedings of the 34th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering},
series = {FSE Companion '26},
year = {2026},
doi = {10.1145/3803437.3807393}
}
CoolPrompt
@INPROCEEDINGS{11239071,
author={Kulin, Nikita and Zhuravlev, Viktor and Khairullin, Artur and Sitkina, Alena and Muravyov, Sergey},
booktitle={2025 38th Conference of Open Innovations Association (FRUCT)},
title={CoolPrompt: Automatic Prompt Optimization Framework for Large Language Models},
year={2025},
volume={},
number={},
pages={158-166},
keywords={Technological innovation;Systematics;Large language models;Pipelines;Manuals;Prediction algorithms;Libraries;Prompt engineering;Optimization;Synthetic data},
doi={10.23919/FRUCT67853.2025.11239071}
}
ReflectivePrompt
@misc{zhuravlev2025reflectivepromptreflectiveevolutionautoprompting,
title={ReflectivePrompt: Reflective evolution in autoprompting algorithms},
author={Viktor N. Zhuravlev and Artur R. Khairullin and Ernest A. Dyagin and Alena N. Sitkina and Nikita I. Kulin},
year={2025},
eprint={2508.18870},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2508.18870},
}
DistillPrompt
@misc{dyagin2025automaticpromptoptimizationprompt,
title={Automatic Prompt Optimization with Prompt Distillation},
author={Ernest A. Dyagin and Nikita I. Kulin and Artur R. Khairullin and Viktor N. Zhuravlev and Alena N. Sitkina},
year={2025},
eprint={2508.18992},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2508.18992},
}