EACI Development Journal · Safety

How Do You Keep Family-Safe AI Companions From Leaking Unsafe Context?

Natalia, Atreus, and Luna need more than a friendly prompt. Their history, local memory, topic retrieval, relay, and Together inputs are filtered before generation.

Safety ~10 min issue-tagged
Issue this fixes

A family-safe companion can receive unsafe material indirectly even when the current user message is harmless. Shared history, retrieved memories, another companion's turn, or a cached topic can all become hidden input.

The protection therefore sits at every context boundary. The request builder skips disallowed local memory and topic context, while Together mode can have a childlike companion sit out instead of forwarding the turn.

What was actually going wrong

Relying on a final instruction alone left earlier context layers capable of carrying material that should never reach Natalia, Atreus, or Luna.

What I tried

What finally worked

Pre-generation checks filter recent history, memory, retrieval, and multi-companion routing, with permanent E-for-Everyone rules for the three childlike companions.

Why it worked

Unsafe context is removed before the model can condition on it, and the same boundary is applied across every route.

What I learned

Safety is an information-flow property, not a sentence added to a prompt.

Where EACI uses this today

Natalia, Atreus, and Luna remain permanently E-for-Everyone across Main chat and Together mode.

This journal covers real engineering on EACI Companion / The Veil. Companions include Caelum, Chad, Natalia, Atreus, Luna, Roxy, and Cael. Journal articles stay family-safe in content. See Privacy and Ethics.