Keep trigger in prompt, simplify message formatting

Include the full message with @trigger so agent sees exactly
what was written. Current message is already in missedMessages
query so no need to add separately.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
gavrielc
2026-01-31 19:30:32 +02:00
parent f2afb11e71
commit cbe33f4ba6

View File

@@ -88,24 +88,19 @@ async function processMessage(msg: NewMessage): Promise<void> {
if (!TRIGGER_PATTERN.test(content)) return; if (!TRIGGER_PATTERN.test(content)) return;
const userMessage = content.replace(TRIGGER_PATTERN, '').trim();
if (!userMessage) return;
// Get messages since last agent interaction to catch up the session // Get messages since last agent interaction to catch up the session
const sinceTimestamp = lastAgentTimestamp[msg.chat_jid] || ''; const sinceTimestamp = lastAgentTimestamp[msg.chat_jid] || '';
const missedMessages = getMessagesSince(msg.chat_jid, sinceTimestamp); const missedMessages = getMessagesSince(msg.chat_jid, sinceTimestamp);
// Build prompt with conversation history // Build prompt with conversation history
let prompt = ''; const lines = missedMessages.map(m => {
for (const m of missedMessages) {
if (m.id === msg.id) continue; // Skip current message, we'll add it at the end
const time = new Date(m.timestamp).toLocaleTimeString(); const time = new Date(m.timestamp).toLocaleTimeString();
const sender = m.sender.split('@')[0]; // Extract phone number or name const sender = m.sender.split('@')[0];
prompt += `[${time}] ${sender}: ${m.content}\n`; return `[${time}] ${sender}: ${m.content}`;
} });
const time = new Date(msg.timestamp).toLocaleTimeString(); const prompt = lines.join('\n');
const sender = msg.sender.split('@')[0];
prompt += `[${time}] ${sender}: ${userMessage}`; if (!prompt) return;
logger.info({ group: group.name, messageCount: missedMessages.length }, 'Processing message'); logger.info({ group: group.name, messageCount: missedMessages.length }, 'Processing message');
const response = await runAgent(group, prompt); const response = await runAgent(group, prompt);