From 89d420ccecc615f084fe03b07ccb504cd9e1195f Mon Sep 17 00:00:00 2001 From: yetone Date: Tue, 6 May 2025 20:28:02 +0800 Subject: [PATCH] fix: filter out unpaired tool_use and tool_result messages (#1995) --- lua/avante/llm.lua | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lua/avante/llm.lua b/lua/avante/llm.lua index 6661c03..cea73b2 100644 --- a/lua/avante/llm.lua +++ b/lua/avante/llm.lua @@ -379,7 +379,15 @@ function M.generate_prompts(opts) :totable() -- prepend the history messages to the messages table - vim.iter(retained_history_messages):each(function(msg) table.insert(final_history_messages, msg) end) + vim.iter(retained_history_messages):each(function(msg) + if Utils.is_tool_use_message(msg) and not Utils.get_tool_result_message(msg, retained_history_messages) then + return + end + if Utils.is_tool_result_message(msg) and not Utils.get_tool_use_message(msg, retained_history_messages) then + return + end + table.insert(final_history_messages, msg) + end) end end