First of all, there's no reason that an agent has to do the *greedy action*; Agents can *explore* or they can follow *options*. This is not what separates on-policy from off-policy learning. The reason that Q-learning is off-policy is that it updates its Q-values using the Q-value of the next state $s'$ and the *greedy action* $a'$. In other words, it estimates the *return* (total discounted future reward) for state-action pairs assuming a greedy policy. The reason that SARSA is on-policy is that it updates its Q-values using the Q-value of the next state $s'$ and the *current policy's* action $a''$. It estimates the return for state-action pairs assuming the current policy. The distinction disappears if the current policy is a greedy policy. Such a learner would be both off-policy and on-policy. However, such an agent would not be good since it never explores. Have you looked at the book available for free online? Sutton, Richard S., and Andrew G. Barto. Reinforcement learning: An introduction. Vol. 1. No. 1. Cambridge: MIT press, 1998.