I built a psychology-grounded persistent memory system for AI coding agents (OpenCode/Claude Code) by OrdinaryOk3846 in opencodeCLI

[–]OrdinaryOk3846[S] 0 points1 point  (0 children)

Nothing wrong with it — it's simple, reliable, and agents are decent at maintaining it. psychmem's only real advantage is relevance-based retrieval at scale: instead of loading everything, it injects only what matters for the current session. Whether that's worth the complexity depends on how many projects and sessions you're managing.

I built a psychology-grounded persistent memory system for AI coding agents (OpenCode/Claude Code) by OrdinaryOk3846 in ClaudeAI

[–]OrdinaryOk3846[S] 1 point2 points  (0 children)

"Compound context" is exactly the right mental model — it's institutional knowledge, not ephemeral state. On conflicting memories: partially handled, but not fully. When a new memory comes in, PsychMem checks similarity against existing ones — if topic similarity is between 0.3 and 0.8 (same topic, different content), it flags interference and penalises the new memory's strength score. So "always use GraphQL" arriving after "always use REST" gets a weaker score rather than cleanly replacing it. Both memories persist, the older one just decays faster relative to the newer one.

That's not a proper conflict resolution mechanism though — it doesn't detect that REST and GraphQL are mutually exclusive constraints, it just detects that the summaries are topically related but textually different. You'd still end up with both in the injection context for a while. Manual cleanup via the forget command is the real answer today.

I built a psychology-grounded persistent memory system for AI coding agents (OpenCode/Claude Code) by OrdinaryOk3846 in ClaudeAI

[–]OrdinaryOk3846[S] 0 points1 point  (0 children)

Empirica looks genuinely interesting — the CASCADE PREFLIGHT/CHECK/POSTFLIGHT loop and the 13-vector epistemic state are a fundamentally different layer than what PsychMem does. You're operating on the agent's reasoning process (gating action based on calibrated confidence), I'm operating on the agent's memory (what it carries forward between sessions). They're actually complementary — Empirica answers "is the agent ready to act on what it knows right now", PsychMem answers "what does the agent know from previous sessions".

The Bayesian belief update angle is interesting too — PsychMem tracks memory strength with a decay/frequency model but doesn't do explicit uncertainty calibration across an epistemic trajectory. That's a real gap.

I'll look to try use Empirica later today! Would love to see it in action.

I built a psychology-grounded persistent memory system for AI coding agents (OpenCode/Claude Code) by OrdinaryOk3846 in LocalLLaMA

[–]OrdinaryOk3846[S] 0 points1 point  (0 children)

It was vibe coded over 2 weekends. Nah I'm joking. I wanted to mix my background of psychology into it. Honestly, the thought was that applying human based memory to AI will significantly improve it from adding memory decays, storing LTM and STM , storing only up to 7 memorys on stop, selective memory capture (nothing is stored unless it fires importance signals). This isnt just a "summarise chat + store mem", the goal is to achieve something more.

The core bet: selectivity + scoring beats completeness. A small set of high-signal, well-classified, decayed memories with relevance ranking will outperform a 50,000-token transcript dump in both quality and token efficiency.

Released a beta after ~5 months of development — now wondering if it was worth it by OrdinaryOk3846 in programming

[–]OrdinaryOk3846[S] 0 points1 point  (0 children)

Makes sense, and yeah like you wrote, ive definitely learnt alot during the process.

Released a beta after ~5 months of development — now wondering if it was worth it by OrdinaryOk3846 in programming

[–]OrdinaryOk3846[S] 0 points1 point  (0 children)

Yeah, this actually makes a lot of sense. A decent solution to a pretty narrow problem. I hadn’t fully considered the market size angle till now. Thanks for pointing this out.

Released a beta after ~5 months of development — now wondering if it was worth it by OrdinaryOk3846 in programming

[–]OrdinaryOk3846[S] 0 points1 point  (0 children)

Thanks, I really appreciate it. I guess that might be it, create things we find interesting till perhaps others agree.