17 Techniques for Improving Your LLM-Powered App
This guide walks through 17 techniques for improving LLM-powered applications, deliberately ordered from cheapest to most expensive on what the author calls the Staircase of Complexity Hell. It starts with prompt tweaks — role prompting, XML tags, structured outputs, chain-of-thought, multishot, temperature, and tool calling — before moving to system-level patterns: RAG, chunking, agentic loops, parallelization, evaluator-optimizer, LLM routers, and fine-tuning. The core advice: work down the staircase only after simpler options are exhausted. Concrete evidence includes Claude 4.6 returning 400 on prefilling, parallel processing cutting 10-document analysis from ~10s to 2-3s, routers bypassing the common ~30-tool limit per model, and fine-tuned smaller models beating larger ones on specific tasks. Each section names real trade-offs, such as CoT increasing latency and agentic loops adding decision overhead. Useful as a practical checklist for engineers iterating on LLM systems.