Status Updates
Copy page
Real-time progress updates powered by AI that keep users informed during long-running agent operations
Status Updates
The Inkeep Agent Framework provides intelligent, AI-powered status updates that automatically generate contextual progress messages during agent execution. These updates give users ChatGPT-style feedback about what's happening behind the scenes without exposing internal technical details.
Overview
Status updates are automatically generated summaries that:
- Track Progress: Monitor agent operations, tool calls, and task completions
- Provide Context: Generate user-friendly descriptions of what's happening
- Hide Complexity: Abstract away internal agent names and technical operations
- Stream Real-time: Send updates via the same streaming interface as responses
Status updates use your graph's summarizer model to generate contextual, intelligent progress messages that feel natural to users.
How It Works
The status updater operates through three main components:
1. GraphSession Event Tracking
Every agent operation is tracked as events:
- agent_generate: Text generation or structured output
- transfer: Agent-to-agent transfers
- delegation_sent/returned: Task delegation between agents
- tool_execution: Tool calls and results
- artifact_saved: Document or data artifacts created
2. Intelligent Triggering
Status updates are triggered by:
- Event Count: After N events (tool calls, generations, etc.)
- Time Intervals: Every N seconds of processing
- Smart Detection: Avoids updates during text streaming
3. AI-Powered Summarization
The summarizer model:
- Analyzes recent events and progress
- Generates user-friendly status messages
- Maintains context across multiple updates
- Focuses on user-visible outcomes
Configuration
Configure status updates in your agent graph:
Configuration Options
Option | Type | Default | Description |
---|---|---|---|
numEvents | number | 10 | Trigger update after N events |
timeInSeconds | number | 30 | Trigger update every N seconds |
model | string | graph default | Override model for summaries |
prompt | string | undefined | Custom prompt appended to base system prompt (max 2000 chars) |
statusComponents | array | undefined | Structured status components (advanced) |
Basic Example
User Experience: When a user asks "What's the weather in Paris?", they might see:
- "Searching for current weather information..."
- "Found weather data, analyzing conditions..."
- "Preparing detailed weather report..."
Custom Prompts
You can customize how status updates are generated by providing a custom prompt that gets appended to the base system prompt. Custom prompts are limited to 2000 characters to ensure optimal performance:
Custom Prompt Examples
Concise Updates:
Detailed Progress:
Branded Tone:
Advanced: Structured Status Updates
For more control over status format, use structured status components:
Schema Update: The status components schema has been simplified. Use
type
instead of id
and name
, and detailsSchema
instead of schema
.
The detailsSchema
is now optional.
Frontend Integration
Status updates arrive as data-operation
parts with type: 'status_update'
:
Best Practices
Timing Configuration
- Quick Operations: Use higher event counts (5-10) to avoid too many updates
- Long Operations: Use shorter time intervals (10-15 seconds) for responsiveness
- Mixed Workloads: Combine both triggers for balanced updates
Model Selection
- Same Model: Use the same model for agents and status updates for consistency
- Faster Model: Use a faster/cheaper model for status updates to reduce latency
- Specialized Model: Use a model optimized for summarization tasks
User Experience
Troubleshooting
Updates Not Appearing
Check that:
- Status updates are configured in your graph
- The summarizer model is specified
- Events are being triggered (tool calls, generations)
- The session hasn't ended prematurely
Too Many/Few Updates
Adjust thresholds:
Poor Update Quality
Improve with custom prompts:
Status updates are automatically paused during text streaming to avoid interrupting the response flow.
Performance Considerations
- Status updates use additional model calls - consider costs for high-volume applications
- Updates are generated asynchronously and won't block main agent operations
- The system automatically prevents duplicate updates during concurrent operations
Examples
See working examples in the repository:
examples/status-updates-example.graph.ts
- Basic configurationexamples/agent-configurations/basic_fact_agent/
- Structured status updates