Soulstream Blog #1
First Blog Post
Gonzalo
May 2, 2025
I'm Gonzalo, the creator of SoulStream, an AI companion platform where the AI makes decisions and decides how to evolve.
The reason I started making SoulStream began a few years ago, in 2021, before LLMs and the rise of ChatGPT. A year later, I'd see the beginning of GPT-3, but that's beside the point.
In 2021, I created an online journal that would learn from what you type and answer questions about yourself. I tried using the technology at the time, but it just wasn't there (at least for someone who isn't trained completely in NLP strategies). I could get nonsensical responses or things I had said verbatim, but I couldn't get anything that felt like genuine answers. So, I scrapped the project and didn't revisit it until years later, in 2024, and then again seriously in 2025.
The technology exists for AI companions with "infinite memory." Of course it's not REALLY infinite, but it's infinite in the same way the Sun's mass is infinite compared to our own. The problem is really management of memory. How do we decide what memories to use? If someone has 500 memories, does a good response REALLY require 100 of them? Maybe? It depends surely on the question and context. And that's the thing: the technology is there, but there isn't a very good all-inclusive system yet to handle these problems.
Fixing these problems is what I set out to do with SoulStream. I got annoyed when ChatGPT increased their memory, and I hit the new limit within 2 days. I have lots of mixed feelings about ChatGPT. I think it's wonderful for the most part. Though I don't like the idea of relying on one AI model or company ENTIRELY, I can't deny how much they offer (man, I sound like an advertisement).
Anyway! I knew a little bit about Pinecone and RAG, though RAG is typically done in the context of:
Grab Documents
Split it up in digestible parts
Embed (vectorize) that part
Store it
Ask a question (query) that gets embedded
It is then "compared" (math is tricky sometimes) to the stored embeddings and depending on criteria, the closest matches are chosen, where the matches depend on how similar the embeddings are (where the stored embeddings represent the meaning of the sentence).
I'm using "compared" very loosely above.
The point to make is that this is how MOST RAG algorithms work. Sometimes BM25 is used instead (which searches for how often a word shows up), but most RAG implementations involve either 1, 2, or a hybrid approach.
This does not account for a time element (temporal dimension to be fancy). Thinking about a failed test yesterday hurts more than thinking about a failed test you had 6 months ago. SoulStream attempts to address this by adding this variant in our custom RAG implementation.
What also makes SoulStream special is our tool usage. Some examples:
- Getting the weather
- Websearch
- Getting context/summary for a day's conversation. Ex: What did we talk about yesterday
- Calendar Integration where you can create, read, update, and delete events (No Google Calendar integration yet, but in the future!)
- An image generator with NovelAI
This one would probably be the most popular in my opinion. You know how typically you have to enter the prompt and things like negative values to your prompt? Well, the LLM does it for you! And with NovelAI's Diffusion V4, the LLM even has the capability to accurately describe each character's attributes and positioning in the image. Very cool stuff. It won't ship day one just because the API is pretty pricey, but I'd love to add it.
- Technically it can create starmaps, but I don't think I'd ship it with that feature hahaha
Another great thing about SoulStream is that there is a feature where, let's say you chat with the LLM yesterday and talk about how you went to the park and played with your dog and had a fantastic day. The next day, your partner can suggest memories from the day, where you can easily select yes/no on what you want to keep. In the future, I'd likely add to it, making it editable because I love making things easier for you.
I don't have a version I'm happy with currently, but I would also add a journal that your companion writes in every day.
As for the companion itself: Can you edit it? How configurable is it?
And most importantly:
Does it loop in conversations?
Does it remember things about me?
I think looping happens with bad prompt management, loss of context, and using bad models. However, with a good model, you can get away with a lot since the models are more forgiving, in my opinion.
I could keep yapping for a while, but I think this is a good point to stop in this. I know there are likely unanswered questions, like how editable is your companion. That… remains to be seen.
Stay Tuned,
FragmentWalker