So essentially a long running process that responds to events etc. So my understanding is now: when stuff happens, say a database gets updated, or a timer triggers, the agent wrangles the data and passes it to OpenAI for some LLM heavy lifting, then wrangles what is returned somehow. Is that correct?