|
26 | 26 | AgentMetrics,
|
27 | 27 | AgentStatusResponse,
|
28 | 28 | AnalysisResults,
|
| 29 | + ConsolidationResponse, |
29 | 30 | # Configuration models (Phase 1)
|
30 | 31 | ContextQuery,
|
31 | 32 | ContextResponse,
|
| 33 | + ConversationContext, |
32 | 34 | # Agent DSL models
|
33 | 35 | DslCompileRequest,
|
34 | 36 | DslCompileResponse,
|
|
45 | 47 | # MCP Management models
|
46 | 48 | McpServerConfig,
|
47 | 49 | McpToolInfo,
|
| 50 | + MemoryQuery, |
| 51 | + MemoryResponse, |
| 52 | + MemorySearchRequest, |
| 53 | + MemorySearchResponse, |
| 54 | + # Phase 2 Memory System models |
| 55 | + MemoryStoreRequest, |
48 | 56 | ReviewSession,
|
49 | 57 | ReviewSessionCreate,
|
50 | 58 | ReviewSessionList,
|
@@ -1032,3 +1040,110 @@ def get_http_input_metrics(self, server_id: str) -> Dict[str, Any]:
|
1032 | 1040 | """
|
1033 | 1041 | response = self._request("GET", f"http-input/servers/{server_id}/metrics")
|
1034 | 1042 | return response.json()
|
| 1043 | + |
| 1044 | + # ============================================================================= |
| 1045 | + # Phase 2 Memory System Methods |
| 1046 | + # ============================================================================= |
| 1047 | + |
| 1048 | + def add_memory(self, memory_request: Union[MemoryStoreRequest, Dict[str, Any]]) -> MemoryResponse: |
| 1049 | + """Store a new memory in the system. |
| 1050 | +
|
| 1051 | + Args: |
| 1052 | + memory_request: Memory storage request |
| 1053 | +
|
| 1054 | + Returns: |
| 1055 | + MemoryResponse: Memory storage response |
| 1056 | + """ |
| 1057 | + if isinstance(memory_request, dict): |
| 1058 | + memory_request = MemoryStoreRequest(**memory_request) |
| 1059 | + |
| 1060 | + response = self._request("POST", "memory", json=memory_request.model_dump()) |
| 1061 | + return MemoryResponse(**response.json()) |
| 1062 | + |
| 1063 | + def get_memory(self, memory_query: Union[MemoryQuery, Dict[str, Any]]) -> MemoryResponse: |
| 1064 | + """Retrieve a specific memory. |
| 1065 | +
|
| 1066 | + Args: |
| 1067 | + memory_query: Memory query parameters |
| 1068 | +
|
| 1069 | + Returns: |
| 1070 | + MemoryResponse: Memory retrieval response |
| 1071 | + """ |
| 1072 | + if isinstance(memory_query, dict): |
| 1073 | + memory_query = MemoryQuery(**memory_query) |
| 1074 | + |
| 1075 | + response = self._request("GET", "memory", params=memory_query.model_dump(exclude_none=True)) |
| 1076 | + return MemoryResponse(**response.json()) |
| 1077 | + |
| 1078 | + def search_memory(self, search_request: Union[MemorySearchRequest, Dict[str, Any]]) -> MemorySearchResponse: |
| 1079 | + """Search for memories matching criteria. |
| 1080 | +
|
| 1081 | + Args: |
| 1082 | + search_request: Memory search request |
| 1083 | +
|
| 1084 | + Returns: |
| 1085 | + MemorySearchResponse: Search results |
| 1086 | + """ |
| 1087 | + if isinstance(search_request, dict): |
| 1088 | + search_request = MemorySearchRequest(**search_request) |
| 1089 | + |
| 1090 | + response = self._request("POST", "memory/search", json=search_request.model_dump()) |
| 1091 | + return MemorySearchResponse(**response.json()) |
| 1092 | + |
| 1093 | + def consolidate_memory(self, agent_id: str) -> ConsolidationResponse: |
| 1094 | + """Consolidate memories for an agent. |
| 1095 | +
|
| 1096 | + Args: |
| 1097 | + agent_id: The agent identifier |
| 1098 | +
|
| 1099 | + Returns: |
| 1100 | + ConsolidationResponse: Consolidation process results |
| 1101 | + """ |
| 1102 | + response = self._request("POST", f"memory/consolidate/{agent_id}") |
| 1103 | + return ConsolidationResponse(**response.json()) |
| 1104 | + |
| 1105 | + def get_conversation_context(self, conversation_id: str, agent_id: str) -> ConversationContext: |
| 1106 | + """Get conversation context with associated memories. |
| 1107 | +
|
| 1108 | + Args: |
| 1109 | + conversation_id: The conversation identifier |
| 1110 | + agent_id: The agent identifier |
| 1111 | +
|
| 1112 | + Returns: |
| 1113 | + ConversationContext: Conversation context with memories |
| 1114 | + """ |
| 1115 | + params = { |
| 1116 | + "conversation_id": conversation_id, |
| 1117 | + "agent_id": agent_id |
| 1118 | + } |
| 1119 | + response = self._request("GET", "memory/conversation", params=params) |
| 1120 | + return ConversationContext(**response.json()) |
| 1121 | + |
| 1122 | + def delete_memory(self, memory_id: str) -> Dict[str, Any]: |
| 1123 | + """Delete a memory by ID. |
| 1124 | +
|
| 1125 | + Args: |
| 1126 | + memory_id: The memory identifier |
| 1127 | +
|
| 1128 | + Returns: |
| 1129 | + Dict[str, Any]: Deletion confirmation |
| 1130 | + """ |
| 1131 | + response = self._request("DELETE", f"memory/{memory_id}") |
| 1132 | + return response.json() |
| 1133 | + |
| 1134 | + def list_agent_memories(self, agent_id: str, limit: int = 100) -> MemorySearchResponse: |
| 1135 | + """List all memories for an agent. |
| 1136 | +
|
| 1137 | + Args: |
| 1138 | + agent_id: The agent identifier |
| 1139 | + limit: Maximum number of memories to return |
| 1140 | +
|
| 1141 | + Returns: |
| 1142 | + MemorySearchResponse: List of agent memories |
| 1143 | + """ |
| 1144 | + params = { |
| 1145 | + "agent_id": agent_id, |
| 1146 | + "limit": limit |
| 1147 | + } |
| 1148 | + response = self._request("GET", "memory/agent", params=params) |
| 1149 | + return MemorySearchResponse(**response.json()) |
0 commit comments