Minimal but runnable: the core loop is visible at a glance.
v1 sync loop: smallest while-loop agent for learning the basics.
v2 async: task decoupling + step state machine to avoid blocking requests.
Safety guardrails: dangerous-command blocks, timeouts, output truncation.