コンテンツにスキップ

会話より継続性

README を読んで AsteronIris を「memory 付き Discord bot」だと受け取ったなら、この page が補正です。

conversation は product ではありません。continuity が product です。

conversation は user が runtime と出会う interface です。その interface の向こうで runtime が行っていることは別です。runtime は turn と session をまたいで残る三種類の state を維持します。

  • Relationship state — この companion とこの person の間で何が起きたか。shared context、established tone、交渉された boundaries、user が自分について話したこと、companion が覚えると言ったこと。
  • Persona state — companion 自身の interior。current affect、latent bias の recent drift、直近 N turns からの continuity signals、現在の room / channel への posture。
  • World state — time、channel、recent session activity、active collaborators に関する lightweight grounding。

every turn はこの state から組み立てられ、送信後にこの state へ折り返されます。language model は loop 内の rendering / reasoning component の一つです。companion を時間を通して同じ entity として成立させるのは durable state です。

この framing を受け入れると、いくつかの design decision は arbitrary ではなくなります。

  • Memory は optional ではありません。 default backend は transient buffer ではなく real database です。Markdown は offline / constrained deploy 用の fallback であり、recommended mode ではありません。
  • Prompts は change の locus ではありません。 system prompt を調整すると短期的な shift は作れますが、memory ingestion pipeline や affect topology を調整すると persistent shift を作れます。project は後者へ投資します。
  • Companion turn は一つの pipeline に合流します。 Discord、CLI、gateway、operator surfaces がそれぞれ別の turn-assembly logic を持つと、continuity は surface ごとに静かに分岐します。companion turn を実行するときは same turn pipeline を共有します。
  • Pre-send verification は continuity guard です。 bad turn は task を失敗させるだけではありません。その直後に折り返される state を汚染します。pre-send verifier は、unchecked bad turn が一瞬の UX glitch ではなく load-bearing damage だから存在します。
  • “Anti-thinness” は design rule です。 plausible に返すだけで interior がない character は、時間が経つと thin に見えます。affect、bias、state と utterance の tension が必要です。affect topology と latent bias systems は character に voice だけでなく inside を与えます。

implementation は continuity を具体的に扱います。

  • Recall and writeback は、どの memory が turn に入るか、turn 後に何を保存するかを決めます。
  • Relationship events は、interaction が trust、distance、shared context をどう変えたかを記録します。
  • Persona transition notes は、companion の stance が動いた理由を残します。単に動いた事実だけを残すわけではありません。
  • Exposure rails は public-facing grounding と private grounding を分け、有用な memory が無差別な disclosure にならないようにします。
  • Diagnostics は consolidation、recall、enrichment が動いているかを operator が見られるだけの status を出します。
companion has state
user sends something
state is read (memory recall, persona context, affect appraisal)
response is assembled, verified, sent
state is updated (relationship memory, persona drift, continuity cues)
companion still has state — now slightly different

重要な edge は最初と最後であり、middle ではありません。良い middle を作れても edge を落とす runtime は personality 付き chatbot です。edge を保持する runtime が companion です。

AsteronIris deployment を運用する場合:

  • runtime は時間とともにあなたを知るようになります。 early sessions が later sessions より thin なのは設計上の性質です。
  • memory reset は clean slate ではなく real cost です。 character があなたをどう理解しているかはそこにあります。
  • character consistency は first-class invariant です。 regression は test より先に behavior に現れることがあります。根本的には continuity drift の問題だからです。

Discord channel だけを外から見ていると、この多くは見えません。だからこの site があります。