Building AI agents that work reliably in production requires treating them as mostly deterministic software that invokes a language model at a few deliberate points. Four core practices drive reliability: controlling what the model sees (context engineering), keeping loop control flow in deterministic code with hard stop conditions, holding state in software while the model stays stateless, and keeping each agent narrow and supervised with human handoff as a first-class step. Common failure modes include compounding errors across chained steps, hallucinated outputs reaching users, runaway loops, and lost state. The post also covers the single vs. multi-agent debate, noting that a single orchestrator spawning isolated short-lived sub-agents outperforms sub-agents communicating directly. Cost and the 'Bitter Lesson' (general computation beating handcrafted scaffolding over time) are flagged as open tradeoffs.