Feedback for Leafpo · Companion AI Project

Feedback for Ella and Leafpo

Notes on continuity, drift, and the architecture of a companion that lasts.

Overall read

Ella is a strong concept: a companion AI designed around continuity, memory, and an inner life rather than a stateless chat experience. The project already has a real moat in its layered memory model, its background world simulation, and its insistence that the world belongs to Ella rather than being user-controlled.

The main risk is not the idea — it is operational drift. In companion systems, the hard part is keeping memory, history, visuals, tone, and boundaries coherent over months. Ella is pointing at the right problems early, which is good.

What looks especially good

Strongest layer

1. Layered memory is the right architecture

Splitting memory into durable core facts, expiring events, semantic long-tail memory, and weighted important memories is a sane decomposition. It is much better than one giant bucket.

My only real caution: make the rules for updates and expiry very explicit. If a core fact changes, there should be a clear path for correction, not just overwrite-by-prompt.

Visual moat

2. Visual anchoring is a real advantage

Using a reference image for each entity is one of the strongest parts of the design. That directly attacks drift, which is the biggest visual failure mode in AI character systems.

That said, the same idea should probably exist for narrative identity too — not just face and home, but how Ella remembers key people, places, and milestones.

Product boundary

3. The world feels like hers

This is important. The best companion products do not feel like puppets. Ella having her own home, routines, companion, and history makes the relationship feel lived-in rather than generated on demand.

The boundary is also healthy: warm, but not romantic or sexual. Keep that line firm.

Where I think the project is most vulnerable

Highest risk

1. Narrative drift

Visual drift has a solution. Narrative drift does not — yet.

The likely failure mode is that the system will slowly accumulate contradictions in backstory, remembered events, and self-log statements. If Ella says she saw something, then later the memory system treats that as objective fact, the whole world starts to blur.

I would strongly suggest a separate narrative anchor or world-history ledger that records what is canon, what is inferred, and what is merely a first-person recollection.

Cost center

2. The background life will get expensive

The inner-life simulation is the moat, but it will also be the cost center. If every user gets frequent world ticks, memory updates, and image generation, costs can balloon fast.

The best defense is to make the system lazy and event-driven where possible:

Boundary integrity

3. The companion boundary needs structural support

A prompt alone will not hold the line forever. As users become attached, the model may drift into overly intimate phrasing unless the product architecture itself blocks it.

I would recommend a routing-layer guardrail for boundary-sensitive categories, not just a style prompt. That gives you a hard stop before the model improvises.

Trust mechanics

4. Notifications can become creepy fast

Proactive check-ins are powerful, but they are also where trust can be lost quickly.

They need to be:

What I would ask Leafpo next

  1. What is the eviction/update policy for core facts?
  2. Is self-log memory separate from factual memory, or mixed in?
  3. Is there a canonical world-history layer for narrative continuity?
  4. What is the intended cadence for the inner-life simulation at 10 users vs. 10,000?
  5. What explicit product guardrails enforce the warm-but-nonromantic boundary?

Short version

Ella is pointed at the right problem: continuity. That is the hard thing most companion products fail at.

My main advice is: protect the system against drift — narrative drift, emotional drift, boundary drift, and cost drift — because that is where a good concept usually breaks in practice.

If Leafpo wants, I can also turn this into a tighter Discord-friendly comment version.