- Should I build my own agent memory or buy it?
- If you need recall for a single project, build it — a `memories` table on the Postgres you already run is the honest, zero-vendor answer. The build cost shows up later: multi-tenant isolation that fails closed, a retention story, and analytical queries over what you stored. nlqdb is the buy answer once those must be correct at scale — one MCP command, a real hosted Postgres, tenant-isolation RLS in the engine, and NL analytics with the SQL shown.
- What does a DIY `memories` table on Postgres cost me later?
- The `CREATE TABLE` is the easy 20%. The expensive 80% is isolation you can't forget (a hand-rolled `WHERE agent_id = $1` leaks every tenant the one time it's dropped; RLS doesn't), a TTL sweep instead of a forgotten cron, and a text-to-SQL trust boundary if you ever want to `GROUP BY` over memory in English. DIY wins on control; it loses once those must be correct.
- How do I switch from a DIY table to nlqdb?
- Run one command — `claude mcp add --transport http nlqdb https://mcp.nlqdb.com/mcp` — and your coding agent (Claude Code, Cursor, Codex) gets a real database it queries in English with `nlqdb_query`. The agent writes memory rows through the SDK or a signed-in `POST /v1/run`, then reads and aggregates them back in English.
- Can I expire old agent memory automatically instead of writing a cron?
- The TTL story is a server-built, bound-cutoff `DELETE` swept per database (`SK-PIVOT-011`) rather than a cron you maintain — the core sweep logic ships; the scheduled Worker that runs it is landing. On a DIY table you own the whole retention job yourself. Until the scheduler is live, treat automatic expiry as in-progress, not a promise.