Skip to content

Commit 0fadcfa

Browse files
vertex-sdk-botcopybara-github
authored andcommitted
feat: Add subset_topics to Memory Bank GenerateMemories
PiperOrigin-RevId: 894126692
1 parent 28e5f95 commit 0fadcfa

File tree

3 files changed

+57
-0
lines changed

3 files changed

+57
-0
lines changed

tests/unit/vertexai/genai/replays/test_generate_agent_engine_memories.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,3 +336,46 @@ async def test_generate_and_rollback_memories_async(client):
336336
await client.aio.agent_engines.delete(
337337
name=agent_engine.api_resource.name, force=True
338338
)
339+
340+
341+
def test_generate_memories_with_allowed_topics(client):
342+
agent_engine = client.agent_engines.create()
343+
client.agent_engines.memories.generate(
344+
name=agent_engine.api_resource.name,
345+
scope={"user_id": "test-user-id"},
346+
direct_contents_source=types.GenerateMemoriesRequestDirectContentsSource(
347+
events=[
348+
types.GenerateMemoriesRequestDirectContentsSourceEvent(
349+
content=genai_types.Content(
350+
role="user",
351+
parts=[genai_types.Part(text="I am a software engineer.")],
352+
)
353+
),
354+
types.GenerateMemoriesRequestDirectContentsSourceEvent(
355+
content=genai_types.Content(
356+
role="user",
357+
parts=[genai_types.Part(text="I like to write replay tests.")],
358+
)
359+
),
360+
]
361+
),
362+
config=types.GenerateAgentEngineMemoriesConfig(
363+
allowed_topics=[
364+
types.MemoryTopicId(
365+
managed_memory_topic=types.ManagedTopicEnum.USER_PREFERENCES
366+
),
367+
],
368+
wait_for_completion=True,
369+
),
370+
)
371+
assert (
372+
len(
373+
list(
374+
client.agent_engines.memories.list(
375+
name=agent_engine.api_resource.name,
376+
)
377+
)
378+
)
379+
== 1
380+
)
381+
client.agent_engines.delete(name=agent_engine.api_resource.name, force=True)

vertexai/_genai/memories.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,13 @@ def _GenerateAgentEngineMemoriesConfig_to_vertex(
174174
getv(from_object, ["metadata_merge_strategy"]),
175175
)
176176

177+
if getv(from_object, ["allowed_topics"]) is not None:
178+
setv(
179+
parent_object,
180+
["allowedTopics"],
181+
[item for item in getv(from_object, ["allowed_topics"])],
182+
)
183+
177184
return to_object
178185

179186

vertexai/_genai/types/common.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9428,6 +9428,10 @@ class GenerateAgentEngineMemoriesConfig(_common.BaseModel):
94289428
default=None,
94299429
description="""Optional. The strategy to use when applying metadata to existing memories.""",
94309430
)
9431+
allowed_topics: Optional[list[MemoryTopicId]] = Field(
9432+
default=None,
9433+
description="""Optional. Restricts memory generation to a subset of memory topics.""",
9434+
)
94319435

94329436

94339437
class GenerateAgentEngineMemoriesConfigDict(TypedDict, total=False):
@@ -9465,6 +9469,9 @@ class GenerateAgentEngineMemoriesConfigDict(TypedDict, total=False):
94659469
metadata_merge_strategy: Optional[MemoryMetadataMergeStrategy]
94669470
"""Optional. The strategy to use when applying metadata to existing memories."""
94679471

9472+
allowed_topics: Optional[list[MemoryTopicIdDict]]
9473+
"""Optional. Restricts memory generation to a subset of memory topics."""
9474+
94689475

94699476
GenerateAgentEngineMemoriesConfigOrDict = Union[
94709477
GenerateAgentEngineMemoriesConfig, GenerateAgentEngineMemoriesConfigDict

0 commit comments

Comments
 (0)