NOVA - AI Memory
- 6 Devlogs
- 41 Total hours
AI memory provider for all 6 memory types.
AI memory provider for all 6 memory types.
This is what I call a perception producer. Every agentic framework has input and output. Input represents what an AI perceives in the world. This could be text, images, sounds, and more.
This first one is a basic system time daemon. Because with every agentic framework I’ve used (Hermes, Openclaw, more), the AI doesn’t know what time it is! This solution is so ridiculously simple, I don’t know why people overlook it.
Every minute, the context payload that goes into an API call gets updated with the new time. And yes, I made it prompt caching safe. (by ordering context blocks very specifically.)
The loop is technically complete. A developer could just attach more input sources (like user messages, reminders, etc) and output tools, to turn this into a useful system.
But I have to refactor some code, and update documentation.
Two Major Milestones…
Context system is done! There’s a lot of data flow, async operations, and flexibility involved.
Model calling is also done. LiteLLM is very powerful… But it requires a lot of error checking with configs and model preferences.
The world model is being built… And it’s feeling more like a separate project itself. A ridiculous amount of data flow is involved here… More than context. And even more logic. Considering that with AI memory, accuracy and precision drops mostly in the retrieval part. Not the storage.
But, slowly, I’m making progress! Writing down my thoughts has helped a lot.
Thought about prompt caching and the OpenAI API. As long as the system prompt stays the same… It doesn’t matter what’s included in ‘user’ or ‘assistant’. You’ll still be able to use prompt caching!
Also cleaned up code and added many edge cases/logic improvements.
Lots of refactoring… But /nova can now take input from multiple endpoints, and have context ready, when an AI API needs it.
Learned a lot about classes and asyncio logic!
Messy, messy code.
I was 95% there to getting a clean response…
But, after 30 minutes of debugging, I’m able to get a response from Ollama Cloud! Next step is to clean up my code, and see if I can split it.
(Shoving everything into ‘File1.py’ gets messy)
Spent time creating a way to take inputs from a program, assemble it into a python dict, and convert that into a JSON block. Will use later with LiteLLM!