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:
| Source | Weight | Description |
|---|---|---|
user_explicit | 1.0 | User directly stated in DM |
user_group | 0.5 | User said in group chat (less reliable context) |
agent_inferred | 0.3 | AI agent derived from conversation |
third_party | 0.4 | Someone else mentioned about the user |
system | 0.9 | System-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 → CANDIDATEOwner Privileges
The owner (configured via ownerId) gets special treatment:
- Claims are always
user_explicitregardless 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_demoteto override tiers