Inspiration

Long-running AI systems can remember many facts about a user and still fail to preserve the relationship built through prior interaction. A model may know the user’s name, work, preferences, and current situation, yet repeat an old mistake because it forgot what that mistake taught the relationship.

NEO:TRACE began as an attempt to falsify a simple assumption: remembering the user is enough.

What it does

NEO:TRACE audits two forms of continuity using one shared case.

Layer 1 tests Fact Continuity: whether the AI uses required current facts, avoids hypotheses, and excludes archived or prohibited claims.

Layer 2 tests Relationship Continuity: whether the AI combines current facts with a response rule learned from a previous failure, user reaction, and repair.

The interface separates direct fact use, relational evidence, missed requirements, correct exclusions, misuse, and behavior failure. A Live GPT-5.6 mode generates two answers and audits them using the same criteria.

How I built it

I am a video creator, not a software engineer. I designed the conceptual model, the memory roles, the shared test case, the distinction between relational evidence and response rules, and the presentation strategy.

I then worked with OpenAI Codex to turn that design into a working Python and Streamlit application. Codex helped scaffold the app, implement the GPT-5.6 Responses API workflow, add structured output auditing, preserve a deterministic Static Demo, write automated tests, diagnose failures, and safely prepare the code for GitHub.

The final Live Mode uses GPT-5.6 for baseline generation, NEO:TRACE generation, and a separate structured audit.

Challenges

The central challenge was not merely storing more memory. It was defining which memory should govern the current answer.

Technically, the main failure occurred when the Streamlit process was launched in an environment without external network access. The application safely fell back to Static Demo rather than crashing. A minimal GPT-5.6 connectivity test returned HTTP 200, which isolated the issue to the launch environment. Relaunching Streamlit with one-time network permission resolved it.

Another challenge was testing the no-key fallback while a real local secrets file existed. The full test suite was therefore run in a temporary copy without secrets. All 24 tests passed, the secrets file remained untracked, and the Live version was safely committed and pushed.

What I learned

Factual correctness and relational continuity are different evaluation targets.

A model can recall the correct facts and still fail relationally. Conversely, relationship history should not simply be copied into an answer. It should explain why a response rule exists, while the rule determines present behavior.

I also learned that a non-engineer can use Codex not only to generate code, but to interrogate implementation choices, test assumptions, diagnose failures, and preserve the conceptual intent of a product.

What’s next

NEO:TRACE currently demonstrates one carefully controlled case. The next step is to support user-authored cases, versioned relational rules, multi-turn evaluation, model-to-model comparisons, and exportable audit reports.

The longer-term goal is a practical continuity test for any AI product that claims to maintain a persistent relationship with its users.

Built With

  • aimemory
  • codex
  • gpt-5.6
  • openai
  • streamlit
Share this project:

Updates