diff --git a/src/mcp_agent/llm/providers/augmented_llm_openai.py b/src/mcp_agent/llm/providers/augmented_llm_openai.py index 59127a170..42c728f70 100644 --- a/src/mcp_agent/llm/providers/augmented_llm_openai.py +++ b/src/mcp_agent/llm/providers/augmented_llm_openai.py @@ -274,7 +274,9 @@ async def _openai_completion( # Calculate new conversation messages (excluding prompts) new_messages = messages[len(prompt_messages) :] - # Update conversation history + if system_prompt: + new_messages = new_messages[1:] + self.history.set(new_messages) self._log_chat_finished(model=self.default_request_params.model) diff --git a/tests/e2e/smoke/base/test_e2e_smoke.py b/tests/e2e/smoke/base/test_e2e_smoke.py index d8321f7f0..c64191029 100644 --- a/tests/e2e/smoke/base/test_e2e_smoke.py +++ b/tests/e2e/smoke/base/test_e2e_smoke.py @@ -7,9 +7,9 @@ from pydantic import BaseModel, Field from mcp_agent.core.prompt import Prompt -from mcp_agent.llm.memory import Memory if TYPE_CHECKING: + from mcp_agent.llm.memory import Memory from mcp_agent.mcp.prompt_message_multipart import PromptMessageMultipart @@ -74,7 +74,7 @@ async def test_open_ai_history(fast_agent, model_name): async def agent_function(): async with fast.run() as agent: await agent.send("MESSAGE ONE") - await agent.send("MEESAGE TWO") + await agent.send("MESSAGE TWO") provider_history: Memory = agent.agent._llm.history multipart_history = agent.agent.message_history