repl vs. agent