Agent memory without extra LLM calls