Add Memory Gateway agent plugin

This commit is contained in:
2026-05-06 16:10:04 +08:00
parent e65731a273
commit c44af407d4
48 changed files with 3111 additions and 0 deletions

View File

@ -0,0 +1,70 @@
from __future__ import annotations
from memory_gateway_plugin import register
from memory_gateway_plugin.config import PluginConfig
from memory_gateway_plugin.lifecycle import after_user_message, on_conversation_start, on_session_end
class FakeClient:
def search_memory(self, payload):
return {
"ok": True,
"data": {
"results": [
{
"memory": {
"id": "mem_1",
"namespace": "user/u/long_term",
"summary": "用户偏好中文输出。",
}
}
]
},
}
def append_episode(self, payload):
return {"ok": True, "data": payload}
def commit_session(self, session_id, payload):
return {"ok": True, "data": {"session_id": session_id}}
def test_lifecycle_hooks_do_not_crash_when_ctx_missing_features():
result = register(object())
assert result["ok"] is True
assert result["mode"] == "manual"
def test_lifecycle_search_returns_compact_context():
result = on_conversation_start(
{"user_id": "u", "agent_id": "a", "session_id": "s", "user_message": "之前偏好是什么?"},
client=FakeClient(),
config=PluginConfig(auto_search=True),
)
assert result["ok"] is True
assert "用户偏好中文输出" in result["memory_context"]
def test_lifecycle_append_policy_accepts_stable_preference():
result = after_user_message(
{"user_id": "u", "agent_id": "a", "session_id": "s", "user_message": "请记住:我偏好中文。"},
client=FakeClient(),
config=PluginConfig(auto_append_episode=True),
)
assert result["ok"] is True
assert result["appended"] is True
def test_lifecycle_session_end_auto_commit_disabled():
result = on_session_end(
{"user_id": "u", "agent_id": "a", "session_id": "s"},
client=FakeClient(),
config=PluginConfig(auto_commit_session=False),
)
assert result["ok"] is True
assert result["committed"] is False