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:
19
src/index.ts
19
src/index.ts
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user