Skip to content

Commit 2167f36

Browse files
vertex-sdk-botcopybara-github
authored andcommitted
feat: Add memory_id to Create Memory
feat: Add raw_event to Append Event PiperOrigin-RevId: 889309558
1 parent 78966da commit 2167f36

File tree

6 files changed

+70
-0
lines changed

6 files changed

+70
-0
lines changed

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@ def test_append_session_event(client):
4141
},
4242
"error_code": "test-error-code",
4343
"error_message": "test-error-message",
44+
"raw_event": {
45+
"test-key": "test-value",
46+
},
4447
},
4548
)
4649

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

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,30 @@ def test_create_memory_with_expire_time(client):
8787
client.agent_engines.delete(name=agent_engine.api_resource.name, force=True)
8888

8989

90+
def test_create_memory_with_custom_memory_id(client):
91+
agent_engine = client.agent_engines.create()
92+
assert isinstance(agent_engine, types.AgentEngine)
93+
assert isinstance(agent_engine.api_resource, types.ReasoningEngine)
94+
95+
operation = client.agent_engines.memories.create(
96+
name=agent_engine.api_resource.name,
97+
fact="memory_fact",
98+
scope={"user_id": "123"},
99+
config=types.AgentEngineMemoryConfig(
100+
display_name="my_memory_fact", memory_id="my-memory-id"
101+
),
102+
)
103+
assert isinstance(operation, types.AgentEngineMemoryOperation)
104+
assert operation.response.fact == "memory_fact"
105+
assert operation.response.scope == {"user_id": "123"}
106+
assert (
107+
operation.response.name
108+
== f"{agent_engine.api_resource.name}/memories/my-memory-id"
109+
)
110+
# Clean up resources.
111+
client.agent_engines.delete(name=agent_engine.api_resource.name, force=True)
112+
113+
90114
pytestmark = pytest_helper.setup(
91115
file=__file__,
92116
globals_for_file=globals(),

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,18 @@ def test_list_session_events(client):
3838
author="test-user-123",
3939
invocation_id="test-invocation-id",
4040
timestamp=datetime.datetime.fromtimestamp(1234567890, tz=datetime.timezone.utc),
41+
config={
42+
"raw_event": {
43+
"test-key": "test-value",
44+
},
45+
},
4146
)
4247
session_event_list = client.agent_engines.sessions.events.list(
4348
name=session.name,
4449
)
4550
assert len(session_event_list) == 1
4651
assert isinstance(session_event_list[0], types.SessionEvent)
52+
assert session_event_list[0].raw_event == {"test-key": "test-value"}
4753

4854

4955
pytestmark = pytest_helper.setup(

vertexai/_genai/memories.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,9 @@ def _AgentEngineMemoryConfig_to_vertex(
9090
{k: v for k, v in getv(from_object, ["metadata"]).items()},
9191
)
9292

93+
if getv(from_object, ["memory_id"]) is not None:
94+
setv(parent_object, ["_query", "memoryId"], getv(from_object, ["memory_id"]))
95+
9396
return to_object
9497

9598

@@ -423,6 +426,9 @@ def _UpdateAgentEngineMemoryConfig_to_vertex(
423426
{k: v for k, v in getv(from_object, ["metadata"]).items()},
424427
)
425428

429+
if getv(from_object, ["memory_id"]) is not None:
430+
setv(parent_object, ["_query", "memoryId"], getv(from_object, ["memory_id"]))
431+
426432
if getv(from_object, ["update_mask"]) is not None:
427433
setv(
428434
parent_object, ["_query", "updateMask"], getv(from_object, ["update_mask"])

vertexai/_genai/session_events.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@ def _AppendAgentEngineSessionEventConfig_to_vertex(
5757
if getv(from_object, ["event_metadata"]) is not None:
5858
setv(parent_object, ["eventMetadata"], getv(from_object, ["event_metadata"]))
5959

60+
if getv(from_object, ["raw_event"]) is not None:
61+
setv(parent_object, ["rawEvent"], getv(from_object, ["raw_event"]))
62+
6063
return to_object
6164

6265

vertexai/_genai/types/common.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8122,6 +8122,10 @@ class AgentEngineMemoryConfig(_common.BaseModel):
81228122
default=None,
81238123
description="""Optional. User-provided metadata for the Memory. This information was provided when creating, updating, or generating the Memory. It was not generated by Memory Bank.""",
81248124
)
8125+
memory_id: Optional[str] = Field(
8126+
default=None,
8127+
description="""Optional. The user defined ID to use for memory, which will become the final component of the memory resource name. If not provided, Vertex AI will generate a value for this ID. This value may be up to 63 characters, and valid characters are `[a-z0-9-]`. The first character must be a letter, and the last character must be a letter or number.""",
8128+
)
81258129

81268130

81278131
class AgentEngineMemoryConfigDict(TypedDict, total=False):
@@ -8162,6 +8166,9 @@ class AgentEngineMemoryConfigDict(TypedDict, total=False):
81628166
metadata: Optional[dict[str, MemoryMetadataValueDict]]
81638167
"""Optional. User-provided metadata for the Memory. This information was provided when creating, updating, or generating the Memory. It was not generated by Memory Bank."""
81648168

8169+
memory_id: Optional[str]
8170+
"""Optional. The user defined ID to use for memory, which will become the final component of the memory resource name. If not provided, Vertex AI will generate a value for this ID. This value may be up to 63 characters, and valid characters are `[a-z0-9-]`. The first character must be a letter, and the last character must be a letter or number."""
8171+
81658172

81668173
AgentEngineMemoryConfigOrDict = Union[
81678174
AgentEngineMemoryConfig, AgentEngineMemoryConfigDict
@@ -9539,6 +9546,10 @@ class UpdateAgentEngineMemoryConfig(_common.BaseModel):
95399546
default=None,
95409547
description="""Optional. User-provided metadata for the Memory. This information was provided when creating, updating, or generating the Memory. It was not generated by Memory Bank.""",
95419548
)
9549+
memory_id: Optional[str] = Field(
9550+
default=None,
9551+
description="""Optional. The user defined ID to use for memory, which will become the final component of the memory resource name. If not provided, Vertex AI will generate a value for this ID. This value may be up to 63 characters, and valid characters are `[a-z0-9-]`. The first character must be a letter, and the last character must be a letter or number.""",
9552+
)
95429553
update_mask: Optional[str] = Field(
95439554
default=None,
95449555
description="""The update mask to apply. For the `FieldMask` definition, see
@@ -9584,6 +9595,9 @@ class UpdateAgentEngineMemoryConfigDict(TypedDict, total=False):
95849595
metadata: Optional[dict[str, MemoryMetadataValueDict]]
95859596
"""Optional. User-provided metadata for the Memory. This information was provided when creating, updating, or generating the Memory. It was not generated by Memory Bank."""
95869597

9598+
memory_id: Optional[str]
9599+
"""Optional. The user defined ID to use for memory, which will become the final component of the memory resource name. If not provided, Vertex AI will generate a value for this ID. This value may be up to 63 characters, and valid characters are `[a-z0-9-]`. The first character must be a letter, and the last character must be a letter or number."""
9600+
95879601
update_mask: Optional[str]
95889602
"""The update mask to apply. For the `FieldMask` definition, see
95899603
https://protobuf.dev/reference/protobuf/google.protobuf/#field-mask."""
@@ -11455,6 +11469,10 @@ class AppendAgentEngineSessionEventConfig(_common.BaseModel):
1145511469
event_metadata: Optional[EventMetadata] = Field(
1145611470
default=None, description="""Metadata relating to the session event."""
1145711471
)
11472+
raw_event: Optional[dict[str, Any]] = Field(
11473+
default=None,
11474+
description="""Weakly typed raw event data in proto struct format.""",
11475+
)
1145811476

1145911477

1146011478
class AppendAgentEngineSessionEventConfigDict(TypedDict, total=False):
@@ -11478,6 +11496,9 @@ class AppendAgentEngineSessionEventConfigDict(TypedDict, total=False):
1147811496
event_metadata: Optional[EventMetadataDict]
1147911497
"""Metadata relating to the session event."""
1148011498

11499+
raw_event: Optional[dict[str, Any]]
11500+
"""Weakly typed raw event data in proto struct format."""
11501+
1148111502

1148211503
AppendAgentEngineSessionEventConfigOrDict = Union[
1148311504
AppendAgentEngineSessionEventConfig, AppendAgentEngineSessionEventConfigDict
@@ -11647,6 +11668,10 @@ class SessionEvent(_common.BaseModel):
1164711668
default=None,
1164811669
description="""Required. Timestamp when the event was created on client side.""",
1164911670
)
11671+
raw_event: Optional[dict[str, Any]] = Field(
11672+
default=None,
11673+
description="""Optional. Weakly typed raw event data in proto struct format.""",
11674+
)
1165011675

1165111676

1165211677
class SessionEventDict(TypedDict, total=False):
@@ -11679,6 +11704,9 @@ class SessionEventDict(TypedDict, total=False):
1167911704
timestamp: Optional[datetime.datetime]
1168011705
"""Required. Timestamp when the event was created on client side."""
1168111706

11707+
raw_event: Optional[dict[str, Any]]
11708+
"""Optional. Weakly typed raw event data in proto struct format."""
11709+
1168211710

1168311711
SessionEventOrDict = Union[SessionEvent, SessionEventDict]
1168411712

0 commit comments

Comments
 (0)