Agent Memory
Memory is what separates a stateless chatbot from a useful agent. Horizon’s memory system lets agents retain context across conversation turns and even across separate conversations, building up knowledge about your business over time.
Memory layers
Section titled “Memory layers”Horizon agents have three distinct memory layers, each serving a different purpose.
Working memory is the agent’s short-term scratchpad. It holds information relevant to the current task within the active conversation.
- Scope: current conversation turn and the immediately preceding turns.
- Lifetime: cleared when the conversation ends (unless promoted to episodic memory).
- Use case: holding intermediate results, tracking multi-step tasks, remembering what the user just said.
Working memory is automatic — you do not need to configure it. The model’s context window effectively defines its capacity.
Example: A user asks “What are the outstanding invoices for Acme Corp?” The agent queries QuickBooks, receives 15 invoices, and holds them in working memory so it can answer follow-up questions like “Which of those are overdue?” without querying again.
Episodic memory stores conversation-level context — the key facts and outcomes from each conversation the agent has.
- Scope: per-conversation summaries and key data points.
- Lifetime: persists across conversations within the configured retention period.
- Use case: recalling previous interactions (“Last week you asked about Q3 revenue — here’s the update”), maintaining continuity.
Episodic memory is automatically generated at the end of each conversation. Horizon summarizes the conversation into a compact record that includes:
- Topics discussed
- Decisions made
- Skills invoked and their results
- Open items or follow-ups
Example: A user had a conversation last Tuesday about reconciling Q3 invoices. When they return a week later and say “How did the reconciliation go?”, the agent retrieves the episodic memory to recall the context.
Semantic memory is the agent’s long-term knowledge base. It stores facts, preferences, and patterns learned over time — independent of any single conversation.
- Scope: cross-conversation knowledge about users, processes, and business context.
- Lifetime: persistent until explicitly cleared or updated.
- Use case: learning user preferences, remembering business rules, building up domain knowledge.
Semantic memories are extracted from conversations and stored with a confidence score (see below).
Example: Over several conversations, the agent learns that “When the CFO asks for a P&L, she always wants accrual-based accounting and a quarterly comparison.” This preference is stored as a semantic memory and applied to future requests automatically.
Session vs persistent scope
Section titled “Session vs persistent scope”Each memory entry has a scope that controls its lifetime:
| Scope | Lifetime | Cleared when |
|---|---|---|
| Session | Active conversation only | Conversation ends |
| Persistent | Across conversations | Manually cleared, retention period expires, or agent is deleted |
- Working memory is always session-scoped.
- Episodic memory is always persistent (but subject to retention settings).
- Semantic memory is always persistent.
Configuring retention
Section titled “Configuring retention”Navigate to the agent’s Memory tab to configure:
- Episodic retention period — how long conversation summaries are kept. Default: 90 days.
- Semantic memory limit — maximum number of semantic memories stored. Default: 500.
- Auto-summarization — whether to compress older episodic memories to save tokens. Default: enabled.
Confidence scores
Section titled “Confidence scores”Every semantic memory entry is assigned a confidence score between 0.0 and 1.0 that reflects how reliable the platform considers that memory to be.
| Score range | Meaning | Example |
|---|---|---|
| 0.9 - 1.0 | High confidence — explicitly stated by a user or confirmed multiple times | ”Our fiscal year starts April 1” (stated directly by the CFO) |
| 0.7 - 0.89 | Medium confidence — inferred from consistent behavior | The user always asks for accrual-based reports |
| 0.5 - 0.69 | Low confidence — inferred from limited data | A single mention of a preferred report format |
| Below 0.5 | Uncertain — may be outdated or contradicted | A preference from 6 months ago that has not been reconfirmed |
Confidence scores affect how the agent uses memories:
- High-confidence memories are applied automatically without asking the user.
- Medium-confidence memories are applied but the agent may mention its assumption (“I’m using accrual-based accounting as usual — let me know if you’d prefer cash basis”).
- Low-confidence memories prompt the agent to ask for confirmation before applying them.
- Uncertain memories are available but not proactively used.
Viewing and managing memory
Section titled “Viewing and managing memory”From the agent’s Memory tab, you can:
- Browse all memories — see episodic and semantic memories with their confidence scores and timestamps.
- Search memories — find specific memories by keyword.
- Edit memories — correct inaccurate memories or update outdated information.
- Delete memories — remove memories that are no longer relevant.
- Export memories — download the agent’s memory as JSON for backup or migration.
Best practices
Section titled “Best practices”- Let memory build naturally — resist the urge to pre-load hundreds of semantic memories. Agents learn best from real conversations.
- Review memories periodically — check the Memory tab monthly to remove outdated or incorrect entries.
- Use confidence scores — if an agent keeps making wrong assumptions, check whether it has low-confidence memories that need to be corrected or removed.
- Set appropriate retention — for compliance-sensitive environments, configure episodic retention to match your data retention policies.
- Monitor memory token cost — each retrieved memory consumes tokens. If an agent has hundreds of semantic memories, it may be retrieving too many per turn. Tune the retrieval settings to limit the number of memories injected per turn.