Composing and refining the input given to a language model to improve the quality of what it returns.