Chat Agent

Use the AI copilot through natural-language conversations to drive any Praxiom workflow.

Overview

The Praxiom AI chat agent is a conversational interface to the entire product loop. Instead of navigating menus and clicking through multi-step workflows, you can simply ask the agent to synthesize research, generate recommendations, draft documents, search insights, generate execution tickets, or answer questions about your product space — all within a conversation.

How It Works

Conversations

Every chat interaction happens within a conversation, scoped to a workspace and user.

1

Create a conversation

POST /api/chat/conversations

{
  "workspace_id": "your-workspace-uuid",
  "title": "Q2 Onboarding Analysis"
}

If you omit the title, it defaults to "New Conversation".

2

Send messages

Messages are sent through the streaming endpoint. The agent processes your message, calls tools as needed (synthesis, recommendation generation, document drafting, web search), and streams the response back in real time via Server-Sent Events (SSE).

3

View history

GET /api/chat/conversations/{conversation_id}/messages?limit=100

Messages are returned in chronological order. Use the before parameter (ISO datetime) for cursor-based pagination to load older messages.

Conversation Management

OperationEndpointDescription
ListGET /api/chat/conversations?workspace_id={id}Paginated, sorted by last message. Use include_archived=true to see archived ones.
SearchGET /api/chat/conversations/search?workspace_id={id}&q=onboardingFull-text search across all message content and conversation titles
RenamePATCH /api/chat/conversations/{id}Update title or is_archived
ArchivePOST /api/chat/conversations/{id}/archiveSoft-delete — hides from default list
RestorePOST /api/chat/conversations/{id}/restoreUnarchive a conversation
DeleteDELETE /api/chat/conversations/{id}Hard delete — removes conversation and all messages

The search endpoint searches across message content, not just titles. Ask "What did I discuss about pricing?" to find relevant conversations quickly.

What the Agent Can Do

The chat agent has access to the full tool set that powers the structured UI workflows:

  • Synthesize research — "Analyze my latest 5 interview uploads"
  • Search insights — "What are the top pain points around checkout?"
  • Generate recommendations — "Generate recommendations from the high-severity insights"
  • Draft documents — "Write a PRD for the search improvement recommendation"
  • Generate tickets — "Create execution tickets from my onboarding PRD"
  • Search the web — "What are best practices for onboarding flows in SaaS?"
  • Google Drive — "Find the competitive analysis doc in our Drive"
  • Answer questions — "How many users mentioned mobile issues in our research?"
  • Workspace context — The agent automatically loads your product context, existing insights, and recommendation history to give grounded answers

Slash Commands

Quick shortcuts for common workflows:

CommandAction
/synthesizeSynthesize research sources
/recommendGenerate recommendations
/pipelineFull pipeline (synthesize → recommend → draft PRD)
/draftDraft a document
/researchLaunch deep research with depth selector and cost estimate
/insightsView insights board
/documentsView documents
/resetClear conversation

Deep Research

The /research command opens a Deep Research confirmation dialog before executing. This lets you choose a research depth and see the estimated cost upfront.

Depth options:

DepthTarget SourcesEstimated Duration
Quick~5 sources~2 minutes
Standard~8 sources~4 minutes
Deep~12 sources~6 minutes

The dialog shows:

  • Estimated credits for the selected depth
  • Estimated duration in minutes
  • Your remaining credits with a warning if the run would consume a large portion
  • A blocked state if you lack sufficient credits (with a link to upgrade)

The cost estimate is fetched from GET /api/workspaces/{id}/research-jobs/estimate?depth={depth}.

File Attachments

The chat input includes a categorised attach menu for uploading files directly into the conversation. Click the paperclip icon to see file type categories.

Supported file types:

  • Documents — PDF, DOCX, TXT, Markdown
  • Spreadsheets — CSV, XLSX
  • Images — PNG, JPG, GIF, WebP
  • Audio — MP3, WAV, M4A
  • Video — MP4, MOV

Each attachment shows as a pill below the input with:

  • File type icon and truncated filename
  • Processing status: pendingprocessingcompleted or failed
  • Image preview thumbnail for image and PDF attachments (via previewUrl)

You can attach up to 10 files per message. Pass attachment_ids in the streaming request body.

Vision (Image Understanding)

When you attach images or documents containing images (PDF, PPTX, DOCX), Praxiom automatically extracts visual content and sends it to Claude as vision content blocks. This means the agent can:

  • Read and interpret charts, diagrams, and screenshots
  • Extract text from images (OCR)
  • Analyse UI mockups and wireframes
  • Understand visual data in research documents

Image extraction runs through the processing pipeline — PDFs are converted to page images via PyMuPDF, PPTX/DOCX images are extracted from embedded media. The vision model used is Claude Haiku for cost efficiency.

Conversation Intelligence

Praxiom tracks rich metadata about each conversation to provide better context and enable multi-session workflows.

Purpose & Working State

The agent infers the conversation's purpose and tracks working state automatically:

FieldDescription
purposeWhat the conversation is about (inferred from the first message and ongoing context)
working_stateCurrent activity: planning, researching, drafting, or executing

Continuity Chains

Conversations can be resumed from a previous session using the resumed_from field. When you resume a conversation, the agent receives a briefing with:

  • Delta — New sources, insights, and documents added since the last message
  • Active — Total workspace state (source count, insight count, etc.)
  • Memory — Key events and decisions recalled from prior interactions

This means the agent picks up where you left off with full awareness of what changed while you were away.

Persona System

The agent adapts its personality and expertise based on the inferred task:

PersonaWhen ActiveBehaviour
research_analystDuring synthesis and insight explorationRigorous evidence standards, cross-referencing, statistical language
strategy_advisorDuring recommendation generationBusiness impact framing, opportunity sizing, competitive context
writerDuring document draftingClean prose, structured sections, citation formatting
pm_agentDuring execution and ticket generationScoping, acceptance criteria, priority frameworks
explorerGeneral Q&A and open-ended chatBroad knowledge, creative connections, follow-up suggestions

The persona is selected automatically based on intent classification and can shift mid-conversation as the task evolves.

Models & Effort Levels

Choose the right model and effort level for your task:

ModelCredit WeightExtended ThinkingBest For
Haiku1xNoQuick lookups, simple queries
Sonnet1xYesBalanced analysis, most workflows
Opus2xYesComplex synthesis, deep research

Effort levels control how deeply the agent reasons:

EffortCredit WeightDescription
fast (low)1xQuick responses, minimal tool use
thorough (high)2xStandard depth, multiple tool calls
deep (max)3xExtended thinking enabled, maximum depth

Total credit cost = model weight × effort weight. For example, Opus + deep = 2 × 3 = 6 credits per operation.

Set these via the model and reasoning_mode parameters in the streaming request, or use the UI toggle.

Rich Output

The agent produces structured output blocks when appropriate:

Block TypeDescription
MetricsKPI cards with charts and trend data
ComparisonSide-by-side comparison tables
StepsNumbered step-by-step procedures
CalloutInfo, warning, or success highlight boxes
MermaidDiagrams rendered from Mermaid syntax
ProposalFeature proposal cards
Context HeaderContextual information banners
Follow-upsSuggested next actions

These are rendered as rich UI components in the frontend, not just plain Markdown.

Verification & Trust

After the agent responds, you can verify the quality of its output:

  • Citation coverage — Are claims backed by research sources?
  • Cross-source validation — Do multiple sources confirm the same finding?
  • Severity analysis — Are severity ratings justified by the evidence?
  • Density scoring — How evidence-dense is the response?

Verification results appear as a trust badge on each message, with expandable details showing per-check results and citation similarity scores.

Skill Activation

When the agent detects that an installed skill is relevant to your query, it activates the skill automatically. You'll see a skill_activated event in the stream. If a relevant skill is not installed, the agent suggests it via a skill_suggestion banner.

Context-Aware Intro

When you open a new conversation, the agent provides a workspace-aware introduction via GET /api/workspaces/{workspace_id}/agent-intro. The intro adapts to your workspace state:

  • Empty workspace — Guides you to upload your first research source
  • Has sources, no insights — Offers to analyse your sources
  • Has insights, no recommendations — Offers to generate recommendations
  • Rich workspace — Open-ended, ready to help with any task

Key Concepts

Conversation Ownership

Conversations are private to the user who created them. Other workspace members cannot view your conversations. The API enforces ownership checks on all message and conversation endpoints.

Streaming

The agent streams responses in real time. The frontend connects to the SSE stream endpoint to display the agent's thinking process, tool calls, and final response as they happen. This provides immediate feedback even when the agent takes 30-60 seconds for complex operations.

Message Types

Each message has a role:

  • user — Your input
  • assistant — The agent's response
  • tool_result — Output from a tool call (e.g., insight IDs saved, document content generated)

Messages also carry additional metadata:

  • inferred_intent — The classified intent of the message
  • thinking_blocks — Agent reasoning chains (when extended thinking is enabled)
  • decision_context — Configuration snapshot for replay and auditing
  • execution_metadata — Tool step details with timing

Multi-Agent Missions

For complex queries that require multiple distinct steps, the agent automatically classifies the query and proposes a Mission — a coordinated multi-agent execution plan.

Complexity Classification

Every query is classified before execution:

LevelBehaviour
SimpleExecutes directly as a single agent
MediumRuns in one extended multi-turn session
ComplexDecomposes into a DAG of subtasks and proposes a Mission

Classification uses a fast Haiku call running in parallel with intent inference — zero perceived latency.

Mission Proposal

When a complex query is detected, a Mission Proposal card appears in the conversation before any agent executes. You can:

  • Launch the multi-agent mission
  • Run as single agent to skip decomposition
  • Edit the proposal

Real-Time Controls During Execution

While a mission runs, you can:

  • Redirect a running agent with new instructions (prompt update takes effect at the next checkpoint)
  • Stop an individual agent
  • Spawn additional agents mid-mission

See the Missions guide and Command Center for full details.

Workspace Health Banner

When Praxiom detects data quality issues in your workspace (via entropy scanning), a dismissible Entropy Banner appears at the top of the chat panel. The banner reads:

"X high-priority issue(s) detected in your workspace data — may affect research quality"

  • Amber background when high-severity issues are present
  • Muted background for lower-severity issues only
  • Links to the Dashboard Quality Overview for details
  • Dismiss with the X button (stays dismissed for the session)

This helps you stay aware of data quality problems that could degrade synthesis and recommendation accuracy.


Context Management

For long conversations, the agent automatically compacts older messages to prevent context degradation. Compaction is lazy — it only triggers when the conversation exceeds the workflow's token threshold:

WorkflowCompaction Threshold
Chat10,000 tokens
Recommendation15,000 tokens
Drafting15,000 tokens
Synthesis20,000 tokens
Full Pipeline25,000 tokens

When compaction triggers, older messages are summarised using a workflow-specific prompt that preserves artifact IDs, decisions, and open questions. The most recent 15 messages are always kept verbatim.

What's Next

Was this helpful?