ZH version is available. Content is displayed in original English for accuracy.
I've been working on Polign and built a small prototype around something I've been thinking about with agent memory. I have built a lightweight/stateless vector db + BM25 search which works really well with typed facts and structured queries.
It uses your own S3, or GCS bucket as primary storage, and restarting a node is fairly quick.
Demo + writeup: https://polign.com/blog-edge-agent-memory
Live search demo: https://demo.polign.com
Docs: https://polign.com

Discussion (8 Comments)Read Original on HackerNews
Open-sourcing parts of it isn't off the table. I kept the core closed for now to understand the interest in it.
I'm throwing in a bit of stank in those questions because I don't see anything here that's particularly unique, and keeping this closed and costly is just... absurd. I've vibe coded the same exact thing multiple times. It works, but it's only as useful as the philosophy of the person using it allows it to be.
So why would someone choose your solution? A vector database hosted in S3 is effectively trivial to set up at this point in time. What are you offering that I can't get from prompting a powerful enough model? If the answer to that question isn't the first thing people read when they open this post, then you can just consider all of this worthless and save yourself the hassle.
Hosted db have query costs that grow with the corpus, and self hosted have operational overheads. They do add up over time and I wanted cost flat, which took a while to get it right.
If a vibe-coded version covers your use case, you don't need this. I have added my own experience working and optimizing the storage into this, and Im certain it holds up well for a growing corpus and with simplicity to use it across multiple readers.
Litestream with SQLite would solve some of these use cases, and backing up to S3 or GCS works well.
Here I was focused on more dynamic workloads. For example, larger indexes and corpus that can be accessed by multiple readers. I didn't want to invest in local storage, so the data is made to stay cold until it's actually accessed into warm cache.
Also, one node can serve all of that in one collection while serving typed agent memory in another.
Perhaps I missed something, but storage, memory, and operational overhead is something I wanted to worry less about.