Understanding Agent Frameworks, Runtimes, and Harnesses in AI Development