Trust & Channels

Not all information sources are equal. The trust system weights claims based on who said it and where.

Source Weights

Every claim has a source that affects its initial confidence score:

SourceWeightDescription
user_explicit1.0User directly stated in DM
user_group0.5User said in group chat (less reliable context)
agent_inferred0.3AI agent derived from conversation
third_party0.4Someone else mentioned about the user
system0.9System-generated facts (e.g., from API data)

Channel Context

The channel where a claim originates provides additional context:

  • DM (Direct Message) — highest trust. User is speaking directly to the bot.
  • Group Chat — reduced trust. Context is noisy, user may be joking or speaking about others.
  • Agent Channel — lowest trust for inferences. Agent observations are cautious.

Channel Isolation

When channelIsolation: true (default), memories are tagged with their origin channel. This prevents:

  • Group chat facts leaking into DM conversations
  • Agent-inferred facts from one channel contaminating another
  • Cross-channel context confusion

The owner can override isolation — owner memories are always available across all channels.

Trust in Scoring

Source weight feeds directly into the L2 confidence scorer as the dominant factor (α = 0.4):

// Same claim, different sources:
"I love sushi"

user_explicit (DM):  σ(0.4×1.0 + ...) → conf ≈ 0.741  → WORKING
user_group:          σ(0.4×0.5 + ...) → conf ≈ 0.562  → WORKING
agent_inferred:      σ(0.4×0.3 + ...) → conf ≈ 0.448  → CANDIDATE

Owner Privileges

The owner (configured via ownerId) gets special treatment:

  • Claims are always user_explicit regardless of channel
  • Owner aliases (Zalo, Discord, etc.) are unified to the same identity
  • Owner memories bypass channel isolation restrictions on recall
  • Owner can use epistemic_promote / epistemic_demote to override tiers