AI Chat History


Overview

The Chat History feature allows each authenticated user of the F5 Insight AI Assistant to maintain persistent, server-side conversation threads. Your chat history survives page refreshes, tab closes, and session logouts.

Each thread retains full message history up to a configurable limit, with automatic AI-generated summarization when threads grow large. Your conversations expire after 24 hours of inactivity.

Key concepts

Concept Description
Thread A named conversation between one user and the AI Assistant. Isolated per user. No cross-user access.
TTL Rolling 24-hour window from the last message. F5 Insight automatically soft-deletes threads with no activity for 24 hours (hidden from the API). Soft-deleted threads are permanently hard-deleted after 30 additional days.
Message limit 200 messages per thread (hard cap after summarization).
Summarization At 250 messages, the oldest messages are folded into a single AI-generated summary, bringing the thread back to 200. Summarization runs in the background and doesn’t block the current response.
Thread limit 50 active threads per user. When the limit is reached, the oldest thread is evicted silently to make room for the new one.
TTL worker Background job that runs every 24 hours to soft-delete expired conversations.

Role-based access

Chat History endpoints require the chatManagement permission group.

Role Read Write Delete
Viewer No No No
Operator Yes Yes Yes
Admin Yes Yes Yes

Note

The Viewer role has no access to chat history. Both Operator and Admin roles have full access.


Use the web console

The AI Assistant opens with a collapsible conversation sidebar on the left. The sidebar lists all saved conversations for the current user, sorted by most recent activity.

The sidebar header shows a live count (for example, 3/50). The count turns orange (warning) above 40 threads and red (critical) above 45, indicating that F5 Insight evicts the oldest thread when you reach the limit.

The sidebar can be collapsed to a narrow icon strip using the toggle button in the header.

Start a new conversation

Select the New conversation icon (speech bubble with +) in the sidebar header. F5 Insight doesn’t create a thread immediately. It creates one automatically when you send your first message and the title is derived from that message.

Resume a conversation

Select any conversation row in the sidebar. The full message history loads into the chat area.

Note

If a background response is still generating for that thread, a spinner icon appears on the row.

Delete a conversation

Hover over any conversation row and select the delete icon (bin) that appears on the right.

Warning

Deletion is immediate and permanent. You can’t recover the conversation or its messages.

Export as PDF

There are two PDF export options in the UI:

Export an entire conversation

  1. Open the conversation you want to export.
  2. Select the (three-dot menu) icon in the chat header.
  3. Select Export chat as PDF.
  4. The full conversation thread is exported to a PDF file.

Export a single response

  1. Open the conversation containing the response you want to export.
  2. Hover over the assistant message bubble to reveal its action menu.
  3. Select Export response as PDF.
  4. The selected AI response and the user message that preceded it are exported to a PDF file.

Note

  • Both export options are available only when a saved conversation is open (not on the homepage).
  • Both options require the chatManagement.post permission.

Use the REST API

All chat history tasks available in the web console are also available through the F5 Insight REST API, enabling automation and integration with existing tooling.

Authentication

All chat history endpoints require a valid JWT access token:

Authorization: Bearer <token>

Responses use standard HTTP status codes.

List conversations

GET /api/chat/history/conversations

Response (200 OK)

{
  "conversations": [
    {
      "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "user_id": "user123",
      "title": "My investigation",
      "created_at": "2026-07-01T09:00:00Z",
      "last_msg_at": "2026-07-01T11:30:00Z",
      "expires_at": "2026-07-02T11:30:00Z",
      "message_count": 14
    }
  ]
}

Create a conversation

POST /api/chat/history/conversations
Content-Type: application/json

{
  "title": "My investigation"
}

title is optional (max 500 characters). If omitted, the UI derives a title from the first message.

Returns 201 Created with the conversation object.

Get a conversation (with messages)

GET /api/chat/history/conversations/{id}

Response (200 OK)

{
  "conversation": {
    "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "user_id": "user123",
    "title": "My investigation",
    "created_at": "2026-07-01T09:00:00Z",
    "last_msg_at": "2026-07-01T11:30:00Z",
    "expires_at": "2026-07-02T11:30:00Z",
    "message_count": 14
  },
  "messages": [
    {
      "id": "...",
      "conversation_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "user_id": "user123",
      "role": "user",
      "content": "How many virtual servers...",
      "content_metadata": {},
      "created_at": "2026-07-01T09:00:00Z",
      "is_summarized": false
    }
  ],
  "context_summarized": false
}

Response field reference

Field Description
context_summarized: true Indicates the earliest messages have been replaced by an AI-generated summary.
is_summarized: true On an individual message, marks that message as the summary message itself.

Delete a conversation

DELETE /api/chat/history/conversations/{id}

Returns 204 No Content. No response body.

Add a message to a conversation

POST /api/chat/history/conversations/{id}/messages
Content-Type: application/json

{
  "role": "user",
  "content": "How many virtual servers are on device-01?",
  "content_metadata": {}
}

Parameters

Parameter Required Description
role Yes Must be "user" or "assistant"
content Yes Message content. Max 100 KB.
content_metadata No Arbitrary JSON object (for example, chart data)

Returns 201 Created with the saved message.

Export a conversation as PDF

POST /api/chat/export/pdf
Content-Type: application/json

Parameters

Parameter Required Description
type Yes "conversation" - full export; "single" - one assistant response and its preceding user message
conversation_id Yes UUID of the conversation
message_id Only when type="single" UUID of the specific assistant message
session_id No Optional session identifier for audit tracking

Returns a PDF file as an application/pdf download.


Configuration

Variable Default Description
CHAT_MAX_CONVERSATIONS_PER_USER 50 Maximum active threads per user. When reached, the oldest thread is evicted silently.
CHAT_SUMMARIZATION_TRIGGER_COUNT 250 Message count that triggers automatic summarization.

Limits

Limit Value
Max messages kept per thread 200
Summarization trigger 250 messages
Max active threads per user 50 (configurable)
Thread TTL (inactivity) 24 hours rolling; soft-deleted, then hard-deleted after 30 days
Max message content size 100 KB
Max conversation title length 500 characters

Troubleshooting

Thread disappeared after 24 hours

Chat threads are soft-deleted after 24 hours of inactivity and hidden from the API. They are permanently hard-deleted 30 days later.

Note

The TTL worker runs every 24 hours, so a thread might remain visible for up to 24 hours past its expiry time.

Accessing an expired conversation returns 410 Gone

A conversation that has passed its expiry time returns HTTP 410 Gone on any GET or POST messages request. Start a new thread instead.

Summarized context: AI response lacks earlier details

When context_summarized: true is returned, the earliest messages have been condensed into an AI-generated summary. Fine-grained details from very early in the conversation might not be retained.

Start a new thread for a completely fresh context.

Thread limit reached

When the sidebar count reaches 50, the oldest conversation is silently evicted when a new one is created. F5 Insight doesn’t return an error.

The sidebar turns the count:

  • Orange (warning) at 40 threads
  • Red (critical) at 45 threads

Tip

Export important threads via PDF before they are evicted. See Export as PDF for instructions.