Applying Cognitive Design Patterns to General LLM Agents