Date: 2025-06-16
Status: ✅ Complete
Files Modified: 3
Implemented rich message context display in the chat interface to provide full transparency into AI agent decision-making processes. Users can now see exactly what context was assembled and sent to LLMs for each assistant message.
- New Function:
assemble_with_context/1 - Returns: Both assembled messages AND detailed context breakdown
- Captures: Component types, priorities, metadata, assembly timestamp
- Preserves: Original
assemble/1function for backward compatibility
- Enhanced Metadata: Now stores both
request_payloadandcontext_breakdown - Full Context Preservation: Complete LLM request including messages, model, settings
- Component Tracking: Individual context components with their sources and priorities
- Message Basic Info: Role, timestamp, agent name, token count
- Context Composition: Component breakdown with types and priorities
- Full Context View: Complete LLM request with all messages formatted
- Interactive Sidebar: Click any assistant message to view details
def assemble_with_context(%__MODULE__{} = assembler) do
sorted_components = assembler.components |> Enum.sort_by(& &1.priority)
%{
messages: convert_to_messages(sorted_components),
context_breakdown: %{
components: sorted_components,
total_components: length(sorted_components),
metadata: assembler.metadata,
assembled_at: DateTime.utc_now()
}
}
endenhanced_metadata = %{
"request_payload" => request_payload, # Full LLM request
"context_breakdown" => context_breakdown, # Component details
"response_timestamp" => DateTime.utc_now(),
"agent_name" => persona.name,
"persona_id" => persona.id,
"token_count" => count_tokens(response)
}message_basic_info/1: Basic message metadata displaymessage_context_breakdown/1: Context component visualizationmessage_full_context/1: Complete LLM request displayformat_metadata_value/1: Smart metadata formatting
-
System Message (priority 10)
- Agent persona system prompt
- Source: PromptComposition system
-
Room Context (priority 20)
- Room metadata and participants
- Source: Room information
-
Conversation History (priority 30)
- Recent message history
- Source: Message database
-
User Message (priority 40)
- Current triggering message
- Source: User input
-
Enhanced Components (various priorities)
- Recent events, known patterns, multi-agent context
- Source: Context improvements
- View Context: Click any assistant message in chat
- Message Details Sidebar: Opens on right side
- Basic Info: Shows role, timestamp, agent, tokens
- Context Breakdown: Displays component types and priorities
- Full Context: Shows complete LLM request with all messages
- Dark Theme: Consistent with chat interface
- Color Coding:
- Blue: System information
- Purple: Agent names
- Emerald: Component types
- Gray: Metadata and content
- Organized Layout: Collapsible sections for large contexts
- Monospace Font: Code-like formatting for LLM messages
This implementation directly supports the project's "conversation archaeology" goal by preserving complete decision-making context for every AI interaction.
- Context breakdown stored in message metadata (minimal overhead)
- UI components only render for assistant messages with context
- Large contexts use truncation and scroll areas
- Export context as JSON/YAML
- Search within context components
- Context diff between messages
- Performance metrics (tokens/sec, response time)
-
lib/ash_chat/ai/context_assembler.ex- Added
assemble_with_context/1function - Enhanced component metadata capture
- Added
-
lib/ash_chat/ai/chat_agent.ex- Store context breakdown in message metadata
- Enhanced metadata with full request details
-
lib/ash_chat_web/live/chat_live/components.ex- Rich message details sidebar implementation
- Context visualization components
- Smart metadata formatting helpers
- ✅ Code compiles successfully
- ✅ No syntax errors in implementation
⚠️ Some tests fail due to legacy AgentCard references (separate issue)- ✅ Pre-push checks pass
- ✅ Implementation ready for use
Commit: 5ab5897 - "Implement rich message context display in chat interface"
Pushed: Successfully to origin/master
Files Changed: 5 files, +1193 lines, -5 lines
This enhancement provides complete transparency into AI agent decision-making and supports the project's conversation archaeology goals.