fix: enhance message handling by refining tool message sanitization and updating WeCom message sending method
This commit is contained in:
parent
80fa303c2e
commit
7be27f2d92
3 changed files with 15 additions and 5 deletions
|
|
@ -229,8 +229,19 @@ func sanitizeHistoryForProvider(history []providers.Message) []providers.Message
|
||||||
logger.DebugCF("agent", "Dropping orphaned leading tool message", map[string]any{})
|
logger.DebugCF("agent", "Dropping orphaned leading tool message", map[string]any{})
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
last := sanitized[len(sanitized)-1]
|
// Walk backwards to find the nearest assistant message,
|
||||||
if last.Role != "assistant" || len(last.ToolCalls) == 0 {
|
// skipping over any preceding tool messages (multi-tool-call case).
|
||||||
|
foundAssistant := false
|
||||||
|
for i := len(sanitized) - 1; i >= 0; i-- {
|
||||||
|
if sanitized[i].Role == "tool" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if sanitized[i].Role == "assistant" && len(sanitized[i].ToolCalls) > 0 {
|
||||||
|
foundAssistant = true
|
||||||
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if !foundAssistant {
|
||||||
logger.DebugCF("agent", "Dropping orphaned tool message", map[string]any{})
|
logger.DebugCF("agent", "Dropping orphaned tool message", map[string]any{})
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -463,8 +463,7 @@ func (al *AgentLoop) runAgentLoop(ctx context.Context, agent *AgentInstance, opt
|
||||||
}
|
}
|
||||||
|
|
||||||
// 9. Log response
|
// 9. Log response
|
||||||
responsePreview := utils.Truncate(finalContent, 120)
|
logger.InfoCF("agent", fmt.Sprintf("Response: [%s]", finalContent),
|
||||||
logger.InfoCF("agent", fmt.Sprintf("Response: %s", responsePreview),
|
|
||||||
map[string]any{
|
map[string]any{
|
||||||
"agent_id": agent.ID,
|
"agent_id": agent.ID,
|
||||||
"session_key": opts.SessionKey,
|
"session_key": opts.SessionKey,
|
||||||
|
|
|
||||||
|
|
@ -231,7 +231,7 @@ func (c *WeComAppChannel) Send(ctx context.Context, msg bus.OutboundMessage) err
|
||||||
"preview": utils.Truncate(msg.Content, 100),
|
"preview": utils.Truncate(msg.Content, 100),
|
||||||
})
|
})
|
||||||
|
|
||||||
return c.sendTextMessage(ctx, accessToken, msg.ChatID, msg.Content)
|
return c.sendMarkdownMessage(ctx, accessToken, msg.ChatID, msg.Content)
|
||||||
}
|
}
|
||||||
|
|
||||||
// handleWebhook handles incoming webhook requests from WeCom
|
// handleWebhook handles incoming webhook requests from WeCom
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue