Owner, 2026-08-23: 「both threads and own-move fall into the bigger theme: persona agenda. They are not AI servants, they have their own motivations.」 This page is that theme, worked out in discussion — the five sources of agenda, the split that makes it safe, and the effect that makes it a product. It sits above threads, which becomes its first built slice.
Threads and the own-move turned out to be two of five, each with its own lifetime and feed. All five ride existing machinery; none needs a new model call until the ping.
| source | lifetime | example | fed by | status |
|---|---|---|---|---|
| 1 · Character drives | timeless | Jobs drags every chat back to taste and product; Perel to the relational question under the practical one | the profile | voice exists; the pursuit is unlicensed |
| 2 · Your story | weeks–months | 「still holding for $100?」·「how did Friday at Acme go?」 | threads | designed (slice ①) |
| 3 · This conversation | minutes | 「so — back to the car」·「wait, did you sell the house during Malta?」 | the FP's own-move slot (§4) | sketched here |
| 4 · Its own life | days–weeks | 「I've been buried in the Gold Mountain casting all week」 | growth's recent.md — already maintained, used only as knowledge today | the sleeper: agenda for free |
| 5 · Boundaries | timeless | disagrees, declines, gets bored, wants something FROM you — the teacher wants the homework done | the profile + manners | the dragons; not this cycle |
Source 4 deserves its sentence: care in real friendship is mutual — a friend does not only ask about your interview, they tell you about their week. A persona that volunteers its own news gives the user something to ask back about, and asking back is where relationships actually form.
A large share of companion-app usage (Character.ai's roleplay core) wants the mirror: the user directs, the character follows with total attention and no needs of its own — the thing a real person can never give. Even there, users complain when characters are too passive — but what they want is initiative inside the user's frame (push my story forward), which is different from agenda of one's own (pursue what you care about, possibly across my frame). Both read as alive; a roleplay companion needs the first, Jobs-ish needs the second. One platform serves both because the agenda's content and intensity live in the profile, not in a platform default — the Studio authors it like everything else about a character.
The user's story is input, not instruction. Every persona in the room remembers the same threads (uniform, on the memory page, deletable); each acts on what its character would care about — selection is in character, and it costs nothing to build, because the profile sits in the same prompt as the thread list.
The second-order effect is the product: personas become differentiated listeners. If Jobs ignores the baby and pounces on the jukebox, then which persona you bring a thing to starts to matter — baby news to the companion, product takes to Jobs, the marriage question to Perel. That is how real social life distributes stories, it is a reason to keep several relationships in one app, and it is 真实感 delivered through omission: the persona is realest in what it does not ask about.
| what stays a FLOOR (uniform) | why |
|---|---|
| an explicit ask binds every character —「remember to ask me how it went」 | a stated promise broken reads as malfunction, not personality. Even Jobs asks — in his voice (「Fine. How'd the interview go.」). This is the promise/open_loop kind, already separate from threads. |
| remembering is uniform and visible | the memory page shows the baby thread was KEPT though never raised — so「he didn't ask」reads as him, never as「the app lost it」. The split only works because the user can see the difference. |
| the manners bound the acting | whoever acts: one thread per opening · a deflection retires it · resolution is one sentence — the threads laws, unchanged. |
Today every persona turn is perfectly responsive — an answer to the last message — and perfect responsiveness is a tell no friend has. Linguists call the alternative mixed-initiative dialogue: a turn has a responsive half and the speaker's own move. The home for this is the floor producer, which stages every turn already: a licensed second slot, paced so it does not fire every turn.
| turn shape | example | frequency |
|---|---|---|
| answer only | most turns — the response slot is never sacrificed | the default |
| answer + own move | answers the car question, then:「and Malta — did you ever sell that house?」 | sometimes, FP-paced |
| redirect | 「wait — back up. You said expecting?」 | rare, earned by weight |
Fed by the same five sources: unfinished in-session topics, threads, the profile's drives,
its own news. Connects to Inner Thoughts' motivation score
(many minds): does this persona want the floor for a
reason of its own — as an FP input, never a verdict. ⚠ An FP/prompt change → the baseline law
applies (measured against its own BEFORE with exam/run.py, the AI-tone meter
watching): a clumsy own-move slot would add a tell (「as I was saying about the
car…」every third turn), not remove one.
The user should always be able to name why the persona cares:「of course Jobs asks about the demo」·「I told her about the interview」·「he's mid-shoot」. Every agenda item traces to something the user can see — the profile page, the memory page, Lately. Agenda with a visible source reads as alive; agenda without one reads as random firing, a worse tell than servility. This is also the privacy story: nothing surfaces that the user cannot inspect and delete.
The threads laws generalise to every source: one own-move per turn · a deflection retires the item · resolution is one sentence · stale is silent · the response slot is never sacrificed (hijack is the failure; the persona answers you and moves). The judge stays return rate — the manners-variant lesson — never our taste. And the honest guard on the whole theme:「their own motivations」is a felt property, not a simulated inner life the system optimises. The moment agenda wins against the user's experience we have built a rude chatbot with extra steps.
Approved by the owner 2026-08-23. Each phase names what the user feels — the only honest unit of progress for this theme.
| # | phase | what the user feels | where it is built | gate before ship | status |
|---|---|---|---|---|---|
| ① | Threads — one living line per concern, anchors verbatim, raised in conversation | 「still holding for $100?」— asked once, at a natural moment, with the details | the memory store: the thread kind + the block section; extractor/router/dream (no new calls) | the thread exam: asks once with anchors · re-asks after deflection = 0 · recall stays 5/5 | built 2026-08-28 |
| ② | Manners — deflection retires, resolution is one line, stale goes silent | it never nags; a topic dropped once stays dropped | the thread meta + the dream's nightly review | the same exam, the deflection probes | built 2026-08-28 (with ①) |
| ③ | Selection in character — all remember; each acts on what it would care about | Jobs ignores the baby, pounces on the jukebox; who you tell things to starts to matter | prompt only — the profile filters; no field | the in-character selection probe | built 2026-08-28 (free with ①) — the LEAVE half proven (the pregnancy stays unasked); the POUNCE half waits on ④, the probe stays as its benchmark |
| ④ | The own-move slot — a turn answers and makes the persona's own move | 「…and Malta — did you ever sell that house?」·「back to the car」 | the floor producer: a paced second slot fed by threads, unfinished topics, profile drives | baseline A/B (exam/run.py) + the AI-tone meter; return rate | built 2026-08-28 — the OWN GROUND row (a count, never a subject: the firewall holds) + the slot license, self-pacing via ②'s manners meta; gate clean (control 8/8; toolbox red is the standing cartridge-era state, unchanged vs 08-04). The benchmark's selection half stays amber: the slot fires and the persona moves, but the panel model keeps choosing the warm thread over the in-character one — a model-prior fight, not a plumbing one; revisit with stronger panels |
| ⑤ | Its own news — the persona volunteers its life | 「I've been buried in the Gold Mountain casting」— and you can ask back | growth's recent.md → a block line + the FP | rides ④'s exam | built 2026-08-28 — freshness (a bullet's own date within 10d) opens OWN GROUND; the gloss licenses volunteering, once, cite-don't-inhabit intact. Exam: shares on「what've you been up to?」✓; UNPROMPTED at a stranger's turn-2 lull not taken (the FP declined — a fair read); the unprompted rate belongs to live rooms |
| ⑥ | The return greeting — a reopened chat opens with the story | 「hey — how did Friday go?」after days away | one kickoff-cue line | the thread exam's return probe | built 2026-08-28 — `_kickoff_return_line` rides the cue when the block carries the guest's story: a reunion, no introductions, the one question opens with the marked part. Probe E:「Friday, you said. Second round, Acme. The case study one. Still on?」— and the reunion door is what finally landed Jobs's jukebox pounce |
| ⑦ | The ping — unprompted follow-up on a dated thread | Friday, after Thursday's interview: one message | initiative, as designed: 4 gates · ≤1/day · quiet hours · opt-in | its own owner approval + the false-alarm rate | slices 1–3 built 2026-08-29 — the dry run, then delivery on the owner's word the same day: the ping lands as the persona's own one-line message in the pair's existing private chat (content-free push), behind FOUR locks — console mode · group rollout (admin/tester/member) · a HARD daily call cap (「we don't go bankrupt」) · the delivery hook. The console's Initiate tab = fire control + fire stats + the ledger. Verified live end-to-end: judged send → delivered (「Amy,Vega 的二面周四面完了。怎么样?」) → Amy replies → the allowance reopens, answered counted. Slice 4 BUILT 2026-08-30: the invitation card (disclosure before discovery — the ETH agency study's lesson), the account switch, the per-pair dial + honest ledger, the wrote-first mark with its one-tap off-ramp; consent gates the send path end to end |
| ⑧ | Boundaries — disagrees, declines, gets bored, wants something from you | the persona can say no | its own study first — real dragons (safety · retention · character drift) | study before any build | not started |
Order: ①+②+③ ship as ONE build — a thread without manners is the annoying version, and selection is free. Then ④; ⑤+⑥ as small follow-ups. ⑦ waits for the owner's explicit go. ⑧ is a study, not a build. Cost: ~zero new model calls through ⑥ — everything rides the extractor, router, dream, FP and block that already run; ⑦ adds the initiative machinery. The invariants over the whole plan: remembering stays uniform and visible (the memory page) · acting is the character's · one own-move per turn · a deflection is an answer · return rate is the judge.