diff --git a/gradient-labs-client/pom.xml b/gradient-labs-client/pom.xml
index f325c56..1e48cd9 100644
--- a/gradient-labs-client/pom.xml
+++ b/gradient-labs-client/pom.xml
@@ -7,7 +7,7 @@
ai.gradientlabs
gradient-labs-parent
- 1.0.1-SNAPSHOT
+ 1.1.0-SNAPSHOT
gradient-labs-client
diff --git a/gradient-labs-client/src/main/java/ai/gradientlabs/client/GradientLabsClient.java b/gradient-labs-client/src/main/java/ai/gradientlabs/client/GradientLabsClient.java
index e22ce87..cf1b097 100644
--- a/gradient-labs-client/src/main/java/ai/gradientlabs/client/GradientLabsClient.java
+++ b/gradient-labs-client/src/main/java/ai/gradientlabs/client/GradientLabsClient.java
@@ -243,6 +243,24 @@ public void deleteConversation(String conversationId) {
httpClient.delete(path, Void.class);
}
+ /**
+ * Bulk uploads a batch of memories scoped to a conversation.
+ *
+ * Memories are stored verbatim as raw JSON payloads for the AI agent to search
+ * over on demand during the conversation. The request's idempotency key
+ * de-duplicates retries: re-uploading with the same key returns the original
+ * upload instead of inserting again.
+ *
+ * @param conversationId the conversation ID
+ * @param request the memories to upload
+ * @return the upload result (upload ID and number of memories inserted)
+ * @throws GradientLabsException if the request fails
+ */
+ public ai.gradientlabs.client.response.ConversationMemoriesBulkUploadResponse bulkUploadConversationMemories(String conversationId, ConversationMemoriesBulkUploadRequest request) {
+ String path = String.format("/conversations/%s/memories", conversationId);
+ return httpClient.post(path, request, ai.gradientlabs.client.response.ConversationMemoriesBulkUploadResponse.class);
+ }
+
// ==================== Tool Operations ====================
/**
diff --git a/gradient-labs-client/src/main/java/ai/gradientlabs/client/request/ConversationMemoriesBulkUploadRequest.java b/gradient-labs-client/src/main/java/ai/gradientlabs/client/request/ConversationMemoriesBulkUploadRequest.java
new file mode 100644
index 0000000..2e607d4
--- /dev/null
+++ b/gradient-labs-client/src/main/java/ai/gradientlabs/client/request/ConversationMemoriesBulkUploadRequest.java
@@ -0,0 +1,115 @@
+package ai.gradientlabs.client.request;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Parameters for bulk uploading a batch of memories scoped to a conversation.
+ *
+ * Memories are stored verbatim as raw JSON payloads for the AI agent to search
+ * over on demand during the conversation.
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class ConversationMemoriesBulkUploadRequest {
+
+ @JsonProperty("idempotency_key")
+ private final String idempotencyKey;
+
+ @JsonProperty("memories")
+ private final List