Conversations and history
Status
Stable
A conversation in BOS is one thread of back-and-forth with a single agent. Each agent maintains its own conversation memory; the Finance agent does not see what you asked the Sales agent.
What lives in a conversation
| Item | Stored | Visible to |
|---|---|---|
| Your messages | Redis (sliding 24h TTL) | You and admins of your workspace |
| Agent responses | Redis (same TTL) | Same |
| Tool calls made | Execution log (30d) | Same |
| Pinned context | Conversation memory | The agent within this conversation |
A conversation is private to you. Workspace admins can read conversation history for audit (via Settings → Audit), but rank-and-file team members cannot see each other's chats.
How memory works
The agent sees the last ~20 turns of the current conversation. After that, older turns drop off — the agent will not remember what you asked at the start of a 50-turn chat.
This is by design:
- Keeps the context window small so latency stays low
- Forces fresh questions to be self-contained
- Avoids carrying stale information into later answers
If you need context from earlier, paste the relevant bit into a new message.
Starting a new conversation
Click + New conversation at the top of the Chat panel. The current conversation is preserved (you can switch back to it from the conversation list), and the agent starts fresh.
When to start a new conversation:
- You're switching topics
- The agent seems to be carrying baggage from a prior question
- You want to share a focused chat log with a teammate (cleaner export)
Switching between conversations
The left edge of the Chat panel shows recent conversations:
┌───────────────────────────┐
│ ▼ Finance │
│ · Today │
│ Why is cash low? │ ← current
│ Overdue invoices │
│ · Yesterday │
│ Bank reconciliation │
│ · Last week │
│ Q1 cashflow summary │
├───────────────────────────┤
│ ▶ Warehouse │
│ ▶ Marketing │
│ ▶ Sales │
└───────────────────────────┘Click a conversation to reload it. Conversations from the last 24 hours are immediately available; older ones may take a moment to fetch.
Conversation retention
| Period | What happens |
|---|---|
| Active (you visited it recently) | Lives in Redis, instant load |
| 1–7 days old | Still in Redis but not pinned; may need a re-fetch |
| 7–30 days old | Indexed in PostgreSQL, fetchable in 1–2 seconds |
| > 30 days old | Aged out; the chat content is gone but the tool calls remain in the Execution log for 90 days |
The TTL is per-conversation, not per-message. If you keep visiting a conversation, it stays warm.
Stopping an answer mid-stream
While an agent is streaming a response, a ■ Stop button appears. Click it to cancel — the agent stops generating immediately, no further tool calls are made, and the partial answer remains in the chat as-is.
Useful when:
- You see the agent going wrong direction
- You realised you asked the wrong agent
- You want to interrupt with a refinement
You can continue the conversation right after stopping; the agent treats the cancelled answer as the current state.
Sharing a conversation
Today, sharing is copy-paste. Click the ⋯ menu on a message and pick Copy as Markdown — the message and the previous turns copy as a tidy markdown block you can paste into Matrix, email, or a ticket.
A future "Share link" feature is on the roadmap (per-conversation URL visible to other workspace members with proper RBAC).
Pinning context
Sometimes you want to keep one fact in the agent's working memory across many turns — for example "we are looking at the Sofia branch only". Type the fact prefixed with pin::
You: pin: focus only on the Sofia branch's data unless I say otherwise
Sales: 📌 Pinned: "focus only on the Sofia branch's data..."
OK — I'll restrict all future queries in this conversation to
the Sofia branch.The pinned context is shown above the chat input. Click the × on a pin to remove it.
Multi-line input
Use Shift + Enter for a new line within a message. Enter alone sends the message. Markdown-style formatting (lists, code blocks) is preserved.
What is recorded vs not
| Recorded permanently | Recorded temporarily | Not recorded |
|---|---|---|
| Tool calls (90d in audit log) | Conversation text (up to 30d) | Drafts you typed but didn't send |
| Tool arguments | Pin commands | Browser-side scroll position |
| Tool results | Agent intermediate reasoning |
The 30-day chat retention is a hard limit. If you need a permanent record of an answer, copy it as Markdown into a Document.
Where to read more
- How agents work
- Safety and limits
- Execution log — the permanent audit
- Settings → Workspace — chat retention policy