Data Flow Architecture
How requests flow through the ChatAI Plugin system.
Request Flow Overview
Message Processing
1. Message Reception
javascript
// apps/chat.js
async accept(e) {
// Check if message should trigger AI
if (!this.shouldTrigger(e)) return false
// Process message
await this.processMessage(e)
}2. Trigger Check
3. Context Building
javascript
// Build conversation context
const context = await contextService.getContext(userId, groupId)
// Add system prompt
const messages = [
{ role: 'system', content: preset.systemPrompt },
...context.messages,
{ role: 'user', content: userMessage }
]4. LLM Request
javascript
// Send to LLM with tools
const response = await llmClient.sendMessage(messages, {
tools: availableTools,
temperature: config.temperature,
maxTokens: config.maxTokens
})5. Tool Execution
6. Response Delivery
javascript
// Format and send response
const reply = formatResponse(response)
await e.reply(reply)
// Save to context
await contextService.addMessage(userId, groupId, {
role: 'assistant',
content: response.text
})Tool Call Flow
Memory Flow
Error Handling
Next Steps
- LLM Adapters - Model integration
- MCP System - Tool protocol