Coding agents use three core components: tool calls, memory, and repo context. Tool calls let the model invoke APIs like GitHub or Docker, while memory stores recent interactions. Repo context feeds the agent with file trees and code snippets, enabling accurate refactoring. By combining these, developers can build code generators that stay consistent and adapt to project changes.