From 27adf0ea0acffd93763c204aa4b72627e811cdb0 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Thu, 2 Apr 2026 14:54:43 -0700 Subject: [PATCH] feat: Add consolidation customization to Memory Bank PiperOrigin-RevId: 893716901 --- .../types/MemoryBankCustomizationConfig.java | 37 ++++++++ ...ustomizationConfigConsolidationConfig.java | 91 +++++++++++++++++++ 2 files changed, 128 insertions(+) create mode 100644 google-cloud-vertexai/src/main/java/com/google/cloud/vertexai/genai/types/MemoryBankCustomizationConfigConsolidationConfig.java diff --git a/google-cloud-vertexai/src/main/java/com/google/cloud/vertexai/genai/types/MemoryBankCustomizationConfig.java b/google-cloud-vertexai/src/main/java/com/google/cloud/vertexai/genai/types/MemoryBankCustomizationConfig.java index 0255a67..74a72bb 100644 --- a/google-cloud-vertexai/src/main/java/com/google/cloud/vertexai/genai/types/MemoryBankCustomizationConfig.java +++ b/google-cloud-vertexai/src/main/java/com/google/cloud/vertexai/genai/types/MemoryBankCustomizationConfig.java @@ -63,6 +63,10 @@ public abstract class MemoryBankCustomizationConfig extends JsonSerializable { @JsonProperty("scopeKeys") public abstract Optional> scopeKeys(); + /** Optional. Represents configuration for customizing how memories are consolidated together. */ + @JsonProperty("consolidationConfig") + public abstract Optional consolidationConfig(); + /** Instantiates a builder for MemoryBankCustomizationConfig. */ @ExcludeFromGeneratedCoverageReport public static Builder builder() { @@ -234,6 +238,39 @@ public Builder clearScopeKeys() { return scopeKeys(Optional.empty()); } + /** + * Setter for consolidationConfig. + * + *

consolidationConfig: Optional. Represents configuration for customizing how memories are + * consolidated together. + */ + @JsonProperty("consolidationConfig") + public abstract Builder consolidationConfig( + MemoryBankCustomizationConfigConsolidationConfig consolidationConfig); + + /** + * Setter for consolidationConfig builder. + * + *

consolidationConfig: Optional. Represents configuration for customizing how memories are + * consolidated together. + */ + @CanIgnoreReturnValue + public Builder consolidationConfig( + MemoryBankCustomizationConfigConsolidationConfig.Builder consolidationConfigBuilder) { + return consolidationConfig(consolidationConfigBuilder.build()); + } + + @ExcludeFromGeneratedCoverageReport + abstract Builder consolidationConfig( + Optional consolidationConfig); + + /** Clears the value of consolidationConfig field. */ + @ExcludeFromGeneratedCoverageReport + @CanIgnoreReturnValue + public Builder clearConsolidationConfig() { + return consolidationConfig(Optional.empty()); + } + public abstract MemoryBankCustomizationConfig build(); } diff --git a/google-cloud-vertexai/src/main/java/com/google/cloud/vertexai/genai/types/MemoryBankCustomizationConfigConsolidationConfig.java b/google-cloud-vertexai/src/main/java/com/google/cloud/vertexai/genai/types/MemoryBankCustomizationConfigConsolidationConfig.java new file mode 100644 index 0000000..1b37aee --- /dev/null +++ b/google-cloud-vertexai/src/main/java/com/google/cloud/vertexai/genai/types/MemoryBankCustomizationConfigConsolidationConfig.java @@ -0,0 +1,91 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Auto-generated code. Do not edit. + +package com.google.cloud.vertexai.genai.types; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.google.auto.value.AutoValue; +import com.google.errorprone.annotations.CanIgnoreReturnValue; +import com.google.genai.JsonSerializable; +import java.util.Optional; + +/** Represents configuration for customizing how memories are consolidated. */ +@AutoValue +@JsonDeserialize(builder = MemoryBankCustomizationConfigConsolidationConfig.Builder.class) +public abstract class MemoryBankCustomizationConfigConsolidationConfig extends JsonSerializable { + /** + * Optional. Represents the maximum number of revisions to consider for each candidate memory. If + * not set, then the default value (1) will be used, which means that only the latest revision + * will be considered. + */ + @JsonProperty("revisionsPerCandidateCount") + public abstract Optional revisionsPerCandidateCount(); + + /** Instantiates a builder for MemoryBankCustomizationConfigConsolidationConfig. */ + @ExcludeFromGeneratedCoverageReport + public static Builder builder() { + return new AutoValue_MemoryBankCustomizationConfigConsolidationConfig.Builder(); + } + + /** Creates a builder with the same values as this instance. */ + public abstract Builder toBuilder(); + + /** Builder for MemoryBankCustomizationConfigConsolidationConfig. */ + @AutoValue.Builder + public abstract static class Builder { + /** + * For internal usage. Please use `MemoryBankCustomizationConfigConsolidationConfig.builder()` + * for instantiation. + */ + @JsonCreator + private static Builder create() { + return new AutoValue_MemoryBankCustomizationConfigConsolidationConfig.Builder(); + } + + /** + * Setter for revisionsPerCandidateCount. + * + *

revisionsPerCandidateCount: Optional. Represents the maximum number of revisions to + * consider for each candidate memory. If not set, then the default value (1) will be used, + * which means that only the latest revision will be considered. + */ + @JsonProperty("revisionsPerCandidateCount") + public abstract Builder revisionsPerCandidateCount(Integer revisionsPerCandidateCount); + + @ExcludeFromGeneratedCoverageReport + abstract Builder revisionsPerCandidateCount(Optional revisionsPerCandidateCount); + + /** Clears the value of revisionsPerCandidateCount field. */ + @ExcludeFromGeneratedCoverageReport + @CanIgnoreReturnValue + public Builder clearRevisionsPerCandidateCount() { + return revisionsPerCandidateCount(Optional.empty()); + } + + public abstract MemoryBankCustomizationConfigConsolidationConfig build(); + } + + /** Deserializes a JSON string to a MemoryBankCustomizationConfigConsolidationConfig object. */ + @ExcludeFromGeneratedCoverageReport + public static MemoryBankCustomizationConfigConsolidationConfig fromJson(String jsonString) { + return JsonSerializable.fromJsonString( + jsonString, MemoryBankCustomizationConfigConsolidationConfig.class); + } +}