What is the difference between in-context memory and external memory in an AI agent?