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,107 @@
from __future__ import annotations
MEMORY_SEARCH = {
"name": "memory_search",
"description": "Search accessible Memory Gateway records for the current user/agent context.",
"parameters": {
"type": "object",
"properties": {
"query": {"type": "string", "description": "Search query. Must not be empty."},
"user_id": {"type": "string", "description": "Memory Gateway user id."},
"agent_id": {"type": "string", "description": "Calling agent id, for ACL and namespace routing."},
"workspace_id": {"type": "string", "description": "Optional workspace/project id."},
"session_id": {"type": "string", "description": "Optional session id for session-scoped context."},
"namespaces": {"type": "array", "items": {"type": "string"}, "description": "Optional namespace filters."},
"memory_types": {"type": "array", "items": {"type": "string"}, "description": "Optional memory type filters."},
"tags": {"type": "array", "items": {"type": "string"}, "description": "Optional tag filters."},
"limit": {"type": "integer", "description": "Maximum result count.", "default": 5},
},
"required": ["query", "user_id", "agent_id"],
},
}
MEMORY_APPEND_EPISODE = {
"name": "memory_append_episode",
"description": "Append a safe summarized candidate episode. Does not save full raw conversation or directly promote long-term memory.",
"parameters": {
"type": "object",
"properties": {
"content": {"type": "string", "description": "Safe summarized episode content. Do not pass raw transcripts."},
"episode_summary": {"type": "string", "description": "Optional prebuilt summary. Used instead of content when provided."},
"user_id": {"type": "string", "description": "Memory Gateway user id."},
"agent_id": {"type": "string", "description": "Calling agent id."},
"workspace_id": {"type": "string", "description": "Optional workspace/project id."},
"session_id": {"type": "string", "description": "Current session id."},
"tags": {"type": "array", "items": {"type": "string"}, "description": "Optional tags."},
"source": {"type": "string", "description": "Source label.", "default": "conversation"},
},
"required": ["content", "user_id", "agent_id", "session_id"],
},
}
MEMORY_COMMIT_SESSION = {
"name": "memory_commit_session",
"description": "Commit a session through Memory Gateway and EverMemOS. Promotes only what consolidation accepts.",
"parameters": {
"type": "object",
"properties": {
"user_id": {"type": "string", "description": "Memory Gateway user id."},
"agent_id": {"type": "string", "description": "Calling agent id."},
"workspace_id": {"type": "string", "description": "Optional workspace/project id."},
"session_id": {"type": "string", "description": "Session id to commit."},
"promote": {"type": "boolean", "description": "Whether promotion is allowed.", "default": True},
"min_importance": {"type": "number", "description": "Minimum importance threshold.", "default": 0.6},
},
"required": ["user_id", "agent_id", "session_id"],
},
}
MEMORY_UPSERT = {
"name": "memory_upsert",
"description": "High-risk direct memory write. Use only for stable, concise, user-approved long-term memory; do not call automatically.",
"parameters": {
"type": "object",
"properties": {
"user_id": {"type": "string", "description": "Memory Gateway user id."},
"agent_id": {"type": "string", "description": "Calling agent id."},
"workspace_id": {"type": "string", "description": "Optional workspace/project id."},
"namespace": {"type": "string", "description": "Optional explicit namespace, e.g. user/{user_id}/long_term."},
"memory_type": {"type": "string", "description": "Memory type, e.g. preference, decision, fact, procedure."},
"content": {"type": "string", "description": "Stable memory content. Do not pass full raw conversation."},
"summary": {"type": "string", "description": "Optional concise summary."},
"tags": {"type": "array", "items": {"type": "string"}, "description": "Optional tags."},
"importance": {"type": "number", "description": "Importance score 0..1.", "default": 0.5},
"confidence": {"type": "number", "description": "Confidence score 0..1.", "default": 0.8},
"visibility": {"type": "string", "description": "Memory visibility.", "default": "private"},
},
"required": ["user_id", "agent_id", "content", "memory_type"],
},
}
MEMORY_FEEDBACK = {
"name": "memory_feedback",
"description": "Send quality feedback for an existing memory record.",
"parameters": {
"type": "object",
"properties": {
"memory_id": {"type": "string", "description": "Memory id to mark."},
"user_id": {"type": "string", "description": "Memory Gateway user id."},
"agent_id": {"type": "string", "description": "Calling agent id."},
"workspace_id": {"type": "string", "description": "Optional workspace/project id."},
"session_id": {"type": "string", "description": "Optional session id."},
"feedback": {"type": "string", "description": "Feedback, e.g. confirm, correct, delete, reject, incorrect, duplicate, outdated."},
"comment": {"type": "string", "description": "Optional feedback comment."},
},
"required": ["memory_id", "user_id", "agent_id", "feedback"],
},
}
TOOL_SCHEMAS = {
"memory_search": MEMORY_SEARCH,
"memory_append_episode": MEMORY_APPEND_EPISODE,
"memory_commit_session": MEMORY_COMMIT_SESSION,
"memory_upsert": MEMORY_UPSERT,
"memory_feedback": MEMORY_FEEDBACK,
}