Which approach is best?
Combination of 3 approaches:
give agent access to background knowledge which is available & general
allow user to program the agent, especially when the agent is new or drastic changes occur in user’s behavior
agent learns to adapt & suggest changes