Home / Council and Characters / Characters and Visual Identity
Updated Jul 10, 2026 · Affirmology_OracleDiscovery_Profile_History_Proposal_v1.md
Written 2026-07-10 by the DATA/engine chat, from Jeff's direction. This is a decision doc to react to, not something built yet. Jeff: "the oracle chatbot needs a dimension of discovery, active questioning to learn more about the user; store and update a profile of these conversations; the user will want to access the history; cost-effectiveness is a concern, something to talk about and consider ways to do it."
Why this matters: the Guide chat is the star of the Founding Preview and the data flywheel. Every conversation should make the person feel known AND make their future audios better. Today it is largely passive Q&A. This proposal turns it into active discovery that feeds a durable, growing profile.
context_store and a learned-info
store, and the design is APPEND on new learnings, never recompute (12-field schema in
Affirmology_FlagshipReading_Proposal_v1.md). This is the natural home for conversation learnings.POST /api/profile-understanding {person, understanding} (and the newer
/api/build-understanding). Learnings can be appended to the stored profile per person.So the gap is three concrete additions: (A) active discovery behavior, (B) write conversation learnings back to the profile, (C) durable, user-viewable history, all done cost-consciously.
Give the oracle a discovery agenda: a short, prioritized list of high-value unknowns that make the audios better, e.g. current season of life, what they most want to change, a live struggle, a relationship or role that matters, what "success" feels like to them, what they resist.
Behavior rules (system-prompt level, no new infra): - Lead with value, then get curious. Answer their question / reflect them first; then weave in ONE gentle, specific question when it is natural. Never an interrogation, never a form. - One open loop at a time. Ask, listen, integrate, then maybe ask the next. It should feel like a wise friend who is genuinely interested, not a survey. - Prioritize by audio-impact. Ask what would most change the next affirmation, not trivia. - Never re-ask what the profile already knows. Inject the person's current learned-info so the oracle builds on it instead of repeating.
Cost: this is a PROMPT change to the existing chat call. Near-zero added cost.
Every conversation should deposit durable learnings onto the person's Understanding.
Mechanism (recommended): a cheap distillation pass, not real-time heavy writes.
- After each session (or every N messages, e.g. 6), run ONE small model call (Haiku, or cheap Sonnet)
that reads the recent turns + the current learned-info and outputs "new, durable facts learned about
this person" as a short structured delta.
- Append that delta to profile.understanding.learned_info / context_store via the existing write path.
Append only, never touch the chart or overwrite prior learnings.
- The NEXT audio/reading generation already reads profile.understanding, so the flywheel closes for free.
Why a distillation pass and not "save every message as context": see cost, below. We store the raw transcript for the USER, but the MODEL consumes a compact distilled profile, not the whole history.
The storage is trivial. The cost lever is how much context each LLM call carries, and the trap is feeding the entire growing transcript into every message (cost grows quadratically with conversation length). Keep it flat with four moves:
Rough envelope (needs a real measurement pass): with compact context, a chat message is a few thousand tokens in / a few hundred out = well under a cent to low cents each; a per-session distillation ~1-2 cents. A chatty user might be ~$0.10-0.30/month of model IF we never feed raw history per turn. The naive "whole transcript every message" approach could be 10-50x that and grow without bound. So the architecture choice, not the feature, is what controls cost.
None of this blocks tonight's Founding Preview build; it is the next layer once the app is in hands.
Greenlight: build the full Oracle Discovery + Profile Learning + History system. "Our chatbot is our one main feature, make it solid and make it gather us info. Roll out as much of this as we can."
SEQUENCING (Jeff wants as much as possible now): ship the prompt-level discovery behavior + inject the existing learned-info WITH or right after the Founding Preview (cheapest, biggest feel change, near-zero cost). Then transcript persistence + history screen, then the per-session distillation write-back, then model tiering + a real cost-measurement pass to tune the dial.