Add files via upload

This commit is contained in:
公明
2025-12-24 15:32:30 +08:00
committed by GitHub
parent 53ce2a57be
commit aa90769a3d
2 changed files with 17 additions and 0 deletions
+7
View File
@@ -1377,6 +1377,13 @@ func (a *Agent) handleToolRoleError(errMsg string, messages *[]ChatMessage) bool
return true
}
// RepairOrphanToolMessages 清理失去配对的tool消息和未完成的tool_calls,避免OpenAI报错
// 同时确保历史消息中的tool_calls只作为上下文记忆,不会触发重新执行
// 这是一个公开方法,可以在恢复历史消息时调用
func (a *Agent) RepairOrphanToolMessages(messages *[]ChatMessage) bool {
return a.repairOrphanToolMessages(messages)
}
// repairOrphanToolMessages 清理失去配对的tool消息和未完成的tool_calls,避免OpenAI报错
// 同时确保历史消息中的tool_calls只作为上下文记忆,不会触发重新执行
func (a *Agent) repairOrphanToolMessages(messages *[]ChatMessage) bool {
+10
View File
@@ -831,6 +831,16 @@ func (h *AgentHandler) loadHistoryFromReActData(conversationID string) ([]agent.
return nil, fmt.Errorf("从ReAct数据解析的消息为空")
}
// 修复可能存在的失配tool消息,避免OpenAI报错
// 这可以防止出现"messages with role 'tool' must be a response to a preceeding message with 'tool_calls'"错误
if h.agent != nil {
if fixed := h.agent.RepairOrphanToolMessages(&agentMessages); fixed {
h.logger.Info("修复了从ReAct数据恢复的历史消息中的失配tool消息",
zap.String("conversationId", conversationID),
)
}
}
h.logger.Info("从ReAct数据恢复历史消息完成",
zap.String("conversationId", conversationID),
zap.String("dataSource", dataSource),