deer-flow/backend/tests/test_memory_middleware.py
阿泽 ea74367502
fix(runtime): honor LangGraph Server identity for user-scoped data (#4538)
* fix(runtime): honor LangGraph Server identity for user-scoped data

* fix(runtime): scope custom agent SOUL by resolved user
2026-07-28 22:59:14 +08:00

49 lines
1.4 KiB
Python

from unittest.mock import MagicMock
from langchain_core.messages import AIMessage, HumanMessage
from langgraph.runtime import Runtime
from deerflow.agents.middlewares import memory_middleware as memory_middleware_module
from deerflow.agents.middlewares.memory_middleware import MemoryMiddleware
from deerflow.config.memory_config import MemoryConfig
def test_after_agent_queues_memory_under_runtime_user(monkeypatch):
manager = MagicMock()
monkeypatch.setattr(memory_middleware_module, "get_memory_manager", lambda: manager)
middleware = MemoryMiddleware(
agent_name="researcher",
memory_config=MemoryConfig(enabled=True),
)
runtime = Runtime(
context={
"thread_id": "thread-123",
"user_id": "runtime-user",
}
)
result = middleware.after_agent(
{
"messages": [
HumanMessage(content="Remember this"),
AIMessage(content="Understood"),
]
},
runtime,
)
assert result is None
manager.add.assert_called_once()
call = manager.add.call_args
assert call.args[:2] == (
"thread-123",
[
HumanMessage(content="Remember this"),
AIMessage(content="Understood"),
],
)
assert call.kwargs["agent_name"] == "researcher"
assert call.kwargs["user_id"] == "runtime-user"
assert call.kwargs["trace_id"] is None