An LLM API is a probabilistic dependency inside a deterministic software system. A robust request contract defines the task, permitted context, output schema, tool surface, latency budget, token budget, retry policy, and failure behavior. Prompt text alone is not that contract.
The input context is assembled from instructions, conversation state, retrieved evidence, tool definitions, and the current user request. Each part competes for a finite token window. More context can increase cost and distract the model, so context selection should be evaluated as carefully as model selection.
Version prompts and schemas like code. Record the model identifier, decoding parameters, prompt version, tool versions, and input hashes for every trace. That lineage makes regressions reproducible and allows an evaluator to distinguish model drift from application changes.