So, it seems like this works fine. Calling `agent_mode.cache_images()` accesses the `cache_images()` method, whereas `agent_mode['cache_images']()` accesses whatever you set using dictionary assignment. You can set them to the same or different values.

So my question is, does this violate the obviousness principle? If its not obvious what this is doing, we shouldn't do it.