feat: channel-level conversation analysis with compact formatting
Switch from per-user message batching to per-channel conversation analysis. The LLM now sees the full interleaved conversation with relative timestamps, reply chains, and consecutive message collapsing instead of isolated flat text per user. Key changes: - Fix gpt-5-nano temperature incompatibility (conditional temp param) - Add mention-triggered scan: users @mention bot to analyze recent chat - Refactor debounce buffer from (channel_id, user_id) to channel_id - Replace per-message analyze_message() with analyze_conversation() returning per-user findings from a single LLM call - Add CONVERSATION_TOOL schema with coherence, topic, and game fields - Compact message format: relative timestamps, reply arrows (→), consecutive same-user message collapsing - Separate mention scan tasks from debounce tasks - Remove _store_context/_get_context (conversation block IS the context) - Escalation timeout config: [30, 60, 120, 240] minutes Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
+6
-1
@@ -33,8 +33,13 @@ topic_drift:
|
||||
escalation_count: 3 # After this many reminds, DM the server owner
|
||||
reset_minutes: 60 # Reset off-topic count after this much on-topic behavior
|
||||
|
||||
mention_scan:
|
||||
enabled: true
|
||||
scan_messages: 30 # Messages to scan per mention trigger
|
||||
cooldown_seconds: 60 # Per-channel cooldown between scans
|
||||
|
||||
timeouts:
|
||||
escalation_minutes: [5, 15, 30, 60] # Escalating timeout durations
|
||||
escalation_minutes: [30, 60, 120, 240] # Escalating timeout durations
|
||||
offense_reset_minutes: 120 # Reset offense counter after this much good behavior
|
||||
warning_cooldown_minutes: 5 # Don't warn same user more than once per this window
|
||||
|
||||
|
||||
Reference in New Issue
Block a user