Message Classification System

Every message has a humanInteraction classification that determines visibility and behavior.

Overview

Every message in the Plexus system has a humanInteraction field that determines:

  • UI Visibility: Whether humans see the message
  • Blocking Behavior: Whether execution waits for response
  • Response Expected: Whether human input is required

Classification Values

ValueDescriptionBlocks?UI Visibility
INTERNALAgent reasoning, tool callsNoHidden
CHATHuman message in conversationNoVisible
CHAT_ASSISTANTAI response in conversationNoVisible
NOTIFICATIONWorkflow progress updateNoVisible
ALERT_INFOSystem info alertNoVisible (monitoring)
ALERT_WARNINGSystem warningNoVisible (monitoring)
ALERT_ERRORSystem error alertNoVisible (monitoring)
ALERT_CRITICALCritical system alertNoVisible (monitoring)
PENDING_APPROVALWaiting for yes/noYesVisible (action required)
PENDING_INPUTWaiting for inputYesVisible (action required)
PENDING_REVIEWWaiting for reviewYesVisible (action required)
RESPONSEHuman's responseNoVisible
TIMED_OUTRequest expiredNoVisible
CANCELLEDRequest cancelledNoVisible

Visual Examples

See how different message types appear in the actual chat feed interface:

Procedure Workflow (Mixed Visibility)

A complete workflow showing notifications, warnings, approval requests, and responses. Note: INTERNAL messages (tool calls, agent reasoning) are filtered out in the human UI.

Optimization Workflow

Human sees: notifications, alerts, approval requests, and responses

Notification

Optimization workflow started

Notification

Baseline evaluation complete

Results
Warning

Accuracy below target threshold

Pending Approval

Should I proceed with optimization?

Optimization Plan
User

Proceed with optimization

Notification

Optimization complete: accuracy improved to 89%

Chat Conversation (All Visible)

Natural back-and-forth conversation with the AI, including procedure-generated notifications.

Chat with Procedure Integration

CHAT messages from user, CHAT_ASSISTANT from AI, plus system NOTIFICATIONS

User

Can you analyze the recent evaluation results?

Assistant

I'll analyze the evaluation results for you. Let me start by retrieving the latest data.

Notification

Analysis started

Assistant

I've completed the analysis. Here's what I found:

Key Findings

System Monitoring (Alert Stream)

Severity-based alerts from INFO through CRITICAL with visual color coding.

Alert Severity Levels

INFO (blue) → WARNING (yellow) → ERROR (red) → CRITICAL (dark red)

Info

System maintenance scheduled for tonight

Warning

Memory usage at 85% of threshold

Error

Database connection failed

Error Details
Critical

CRITICAL: Service unavailable - immediate attention required

UI Filtering

Human Operator Dashboard

Show only user-facing messages:

SELECT * FROM chat_messages
WHERE human_interaction IN (
  'CHAT',
  'CHAT_ASSISTANT',
  'NOTIFICATION',
  'ALERT_WARNING',
  'ALERT_ERROR',
  'ALERT_CRITICAL',
  'PENDING_APPROVAL',
  'PENDING_INPUT',
  'PENDING_REVIEW',
  'RESPONSE'
)

Monitoring Dashboard

Show only alerts:

SELECT * FROM chat_messages
WHERE human_interaction LIKE 'ALERT_%'
ORDER BY created_at DESC

Action Required

Show only messages requiring response:

SELECT * FROM chat_messages
WHERE human_interaction IN (
  'PENDING_APPROVAL',
  'PENDING_INPUT',
  'PENDING_REVIEW'
)
AND status = 'pending'

Design Principles

  • Unified System: One classification covers all use cases
  • Clear Semantics: Name indicates purpose and behavior
  • UI-Friendly: Easy to filter for different views
  • Blocking Explicit: Clear which messages block workflow
  • Monitoring Integration: Alerts work for both procedures and external systems

Best Practices

DO

  • Use INTERNAL for agent work
  • Use NOTIFICATION for progress
  • Use ALERT_* for system events
  • Use PENDING_* sparingly
  • Use CHAT for conversations

DON'T

  • Over-notify (fatigue)
  • Mix alerts and notifications
  • Block for trivial operations
  • Expose internal details

Complete Documentation

Detailed documentation with examples is available at:

/plexus/procedures/docs/message-classification.html