fix tool_call tts

This commit is contained in:
Huaaudio 2026-03-21 18:31:15 +01:00
parent dae6d6a2b0
commit 21c6e7808c
3 changed files with 22 additions and 5 deletions

View file

@ -1379,6 +1379,9 @@ func (al *AgentLoop) runLLMIteration(
Channel: opts.Channel,
ChatID: opts.ChatID,
Content: feedbackMsg,
Metadata: map[string]string{
"is_tool_call": "true",
},
})
fbCancel()
}
@ -1397,6 +1400,9 @@ func (al *AgentLoop) runLLMIteration(
Channel: opts.Channel,
ChatID: opts.ChatID,
Content: result.ForUser,
Metadata: map[string]string{
"is_tool_call": "true",
},
})
}
@ -1447,6 +1453,9 @@ func (al *AgentLoop) runLLMIteration(
Channel: opts.Channel,
ChatID: opts.ChatID,
Content: r.result.ForUser,
Metadata: map[string]string{
"is_tool_call": "true",
},
})
logger.DebugCF("agent", "Sent tool result to user",
map[string]any{

View file

@ -30,10 +30,11 @@ type InboundMessage struct {
}
type OutboundMessage struct {
Channel string `json:"channel"`
ChatID string `json:"chat_id"`
Content string `json:"content"`
ReplyToMessageID string `json:"reply_to_message_id,omitempty"`
Channel string `json:"channel"`
ChatID string `json:"chat_id"`
Content string `json:"content"`
ReplyToMessageID string `json:"reply_to_message_id,omitempty"`
Metadata map[string]string `json:"metadata,omitempty"`
}
// MediaPart describes a single media attachment to send.

View file

@ -154,7 +154,14 @@ func (c *DiscordChannel) Send(ctx context.Context, msg bus.OutboundMessage) erro
return nil
}
if c.tts != nil {
isToolCall := false
if msg.Metadata != nil {
if val, ok := msg.Metadata["is_tool_call"]; ok && val == "true" {
isToolCall = true
}
}
if c.tts != nil && !isToolCall {
if ch, err := c.session.State.Channel(channelID); err == nil && ch.GuildID != "" {
if vc, ok := c.session.VoiceConnections[ch.GuildID]; ok && vc != nil {
// Cancel any previous TTS playback