Skip to content

Commit 998e3e9

Browse files
committed
Add more metadata to events, use data message type for events
1 parent df90e6b commit 998e3e9

File tree

3 files changed

+75
-29
lines changed

3 files changed

+75
-29
lines changed

examples/demos/procurement_agent/project/models/events.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,23 +15,32 @@ class EventType(Enum):
1515
class SubmitalApprovalEvent(BaseModel):
1616
event_type: EventType = Field(default=EventType.SUBMITTAL_APPROVED)
1717
item: str
18+
document_url: str
19+
document_name: str
1820

1921
class ShipmentDepartedFactoryEvent(BaseModel):
2022
event_type: EventType = Field(default=EventType.SHIPMENT_DEPARTED_FACTORY)
2123
item: str
2224
eta: datetime
25+
date_departed: datetime
26+
location_address: str
2327

2428
class ShipmentArrivedSiteEvent(BaseModel):
2529
event_type: EventType = Field(default=EventType.SHIPMENT_ARRIVED_SITE)
2630
item: str
2731
date_arrived: datetime
32+
location_address: str
2833

2934
class InspectionFailedEvent(BaseModel):
3035
event_type: EventType = Field(default=EventType.INSPECTION_FAILED)
3136
item: str
3237
inspection_date: datetime
38+
document_url: str
39+
document_name: str
3340

3441
class InspectionPassedEvent(BaseModel):
3542
event_type: EventType = Field(default=EventType.INSPECTION_PASSED)
3643
item: str
37-
inspection_date: datetime
44+
inspection_date: datetime
45+
document_url: str
46+
document_name: str

examples/demos/procurement_agent/project/scripts/send_test_events.py

Lines changed: 57 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -49,22 +49,29 @@ async def send_fake_events(workflow_id: str):
4949
steel_beams_events = [
5050
SubmitalApprovalEvent(
5151
event_type=EventType.SUBMITTAL_APPROVED,
52-
item="Steel Beams"
52+
item="Steel Beams",
53+
document_name="Steel Beams Submittal.pdf",
54+
document_url="/submittal_approval.pdf"
5355
),
5456
ShipmentDepartedFactoryEvent(
5557
event_type=EventType.SHIPMENT_DEPARTED_FACTORY,
5658
item="Steel Beams",
57-
eta=datetime(2026, 2, 10)
59+
eta=datetime(2026, 2, 10, 14, 30),
60+
date_departed=datetime(2026, 2, 3, 9, 15),
61+
location_address="218 W 18th St, New York, NY 10011"
5862
),
5963
ShipmentArrivedSiteEvent(
6064
event_type=EventType.SHIPMENT_ARRIVED_SITE,
6165
item="Steel Beams",
62-
date_arrived=datetime(2026, 2, 10)
66+
date_arrived=datetime(2026, 2, 10, 15, 45),
67+
location_address="650 Townsend St, San Francisco, CA 94103"
6368
),
6469
InspectionPassedEvent(
6570
event_type=EventType.INSPECTION_PASSED,
6671
item="Steel Beams",
67-
inspection_date=datetime(2026, 2, 11)
72+
inspection_date=datetime(2026, 2, 11, 10, 20),
73+
document_name="Steel Beams Inspection Report.pdf",
74+
document_url="/inspection_passed.pdf"
6875
)
6976
]
7077

@@ -74,22 +81,29 @@ async def send_fake_events(workflow_id: str):
7481
hvac_events = [
7582
SubmitalApprovalEvent(
7683
event_type=EventType.SUBMITTAL_APPROVED,
77-
item="HVAC Units"
84+
item="HVAC Units",
85+
document_name="HVAC Units Submittal.pdf",
86+
document_url="/submittal_approval.pdf"
7887
),
7988
ShipmentDepartedFactoryEvent(
8089
event_type=EventType.SHIPMENT_DEPARTED_FACTORY,
8190
item="HVAC Units",
82-
eta=datetime(2026, 2, 22)
91+
eta=datetime(2026, 2, 22, 11, 0),
92+
date_departed=datetime(2026, 2, 15, 13, 45),
93+
location_address="218 W 18th St, New York, NY 10011"
8394
),
8495
ShipmentArrivedSiteEvent(
8596
event_type=EventType.SHIPMENT_ARRIVED_SITE,
8697
item="HVAC Units",
87-
date_arrived=datetime(2026, 2, 22)
98+
date_arrived=datetime(2026, 2, 22, 10, 30),
99+
location_address="650 Townsend St, San Francisco, CA 94103"
88100
),
89101
InspectionFailedEvent(
90102
event_type=EventType.INSPECTION_FAILED,
91103
item="HVAC Units",
92-
inspection_date=datetime(2026, 2, 23)
104+
inspection_date=datetime(2026, 2, 23, 14, 15),
105+
document_name="HVAC Units Inspection Report.pdf",
106+
document_url="/inspection_failed.pdf"
93107
)
94108
]
95109

@@ -99,28 +113,36 @@ async def send_fake_events(workflow_id: str):
99113
windows_events = [
100114
SubmitalApprovalEvent(
101115
event_type=EventType.SUBMITTAL_APPROVED,
102-
item="Windows"
116+
item="Windows",
117+
document_name="Windows Submittal.pdf",
118+
document_url="/submittal_approval.pdf"
103119
),
104120
ShipmentDepartedFactoryEvent(
105121
event_type=EventType.SHIPMENT_DEPARTED_FACTORY,
106122
item="Windows",
107-
eta=datetime(2026, 3, 5)
123+
eta=datetime(2026, 3, 5, 16, 0),
124+
date_departed=datetime(2026, 2, 20, 8, 30),
125+
location_address="218 W 18th St, New York, NY 10011"
108126
),
109127
ShipmentArrivedSiteEvent(
110128
event_type=EventType.SHIPMENT_ARRIVED_SITE,
111129
item="Windows",
112-
date_arrived=datetime(2026, 3, 5)
130+
date_arrived=datetime(2026, 3, 5, 16, 20),
131+
location_address="650 Townsend St, San Francisco, CA 94103"
113132
),
114133
InspectionPassedEvent(
115134
event_type=EventType.INSPECTION_PASSED,
116135
item="Windows",
117-
inspection_date=datetime(2026, 3, 6)
136+
inspection_date=datetime(2026, 3, 6, 9, 45),
137+
document_name="Windows Inspection Report.pdf",
138+
document_url="/inspection_passed.pdf"
118139
),
119140
# Duplicate arrival event to test agent doesn't double-process
120141
ShipmentArrivedSiteEvent(
121142
event_type=EventType.SHIPMENT_ARRIVED_SITE,
122143
item="Windows",
123-
date_arrived=datetime(2026, 3, 5)
144+
date_arrived=datetime(2026, 3, 5, 16, 20),
145+
location_address="650 Townsend St, San Francisco, CA 94103"
124146
)
125147
]
126148

@@ -130,22 +152,29 @@ async def send_fake_events(workflow_id: str):
130152
flooring_events = [
131153
SubmitalApprovalEvent(
132154
event_type=EventType.SUBMITTAL_APPROVED,
133-
item="Flooring Materials"
155+
item="Flooring Materials",
156+
document_name="Flooring Materials Submittal.pdf",
157+
document_url="/submittal_approval.pdf"
134158
),
135159
ShipmentDepartedFactoryEvent(
136160
event_type=EventType.SHIPMENT_DEPARTED_FACTORY,
137161
item="Flooring Materials",
138-
eta=datetime(2026, 3, 29)
162+
eta=datetime(2026, 3, 29, 13, 15),
163+
date_departed=datetime(2026, 3, 22, 11, 30),
164+
location_address="218 W 18th St, New York, NY 10011"
139165
),
140166
ShipmentArrivedSiteEvent(
141167
event_type=EventType.SHIPMENT_ARRIVED_SITE,
142168
item="Flooring Materials",
143-
date_arrived=datetime(2026, 3, 29)
169+
date_arrived=datetime(2026, 3, 29, 12, 45),
170+
location_address="650 Townsend St, San Francisco, CA 94103"
144171
),
145172
InspectionPassedEvent(
146173
event_type=EventType.INSPECTION_PASSED,
147174
item="Flooring Materials",
148-
inspection_date=datetime(2026, 3, 30)
175+
inspection_date=datetime(2026, 3, 30, 15, 30),
176+
document_name="Flooring Materials Inspection Report.pdf",
177+
document_url="/inspection_passed.pdf"
149178
)
150179
]
151180

@@ -156,22 +185,29 @@ async def send_fake_events(workflow_id: str):
156185
electrical_events = [
157186
SubmitalApprovalEvent(
158187
event_type=EventType.SUBMITTAL_APPROVED,
159-
item="Electrical Panels"
188+
item="Electrical Panels",
189+
document_name="Electrical Panels Submittal.pdf",
190+
document_url="/submittal_approval.pdf"
160191
),
161192
ShipmentDepartedFactoryEvent(
162193
event_type=EventType.SHIPMENT_DEPARTED_FACTORY,
163194
item="Electrical Panels",
164-
eta=datetime(2026, 4, 10)
195+
eta=datetime(2026, 4, 10, 10, 45),
196+
date_departed=datetime(2026, 4, 1, 14, 0),
197+
location_address="218 W 18th St, New York, NY 10011"
165198
),
166199
ShipmentArrivedSiteEvent(
167200
event_type=EventType.SHIPMENT_ARRIVED_SITE,
168201
item="Electrical Panels",
169-
date_arrived=datetime(2026, 4, 10)
202+
date_arrived=datetime(2026, 4, 10, 11, 15),
203+
location_address="650 Townsend St, San Francisco, CA 94103"
170204
),
171205
InspectionFailedEvent(
172206
event_type=EventType.INSPECTION_FAILED,
173207
item="Electrical Panels",
174-
inspection_date=datetime(2026, 4, 11)
208+
inspection_date=datetime(2026, 4, 11, 13, 0),
209+
document_name="Electrical Panels Inspection Report.pdf",
210+
document_url="/inspection_failed.pdf"
175211
)
176212
]
177213

examples/demos/procurement_agent/project/workflow.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@
1919
ShipmentArrivedSiteEvent,
2020
ShipmentDepartedFactoryEvent,
2121
)
22-
from agentex.lib.utils.logging import make_logger
22+
from agentex.types.data_content import DataContent
2323
from agentex.types.text_content import TextContent
24+
from agentex.lib.utils.logging import make_logger
2425
from project.utils.summarization import (
2526
should_summarize,
2627
find_last_summary_index,
@@ -100,10 +101,6 @@ async def on_task_event_send(self, params: SendEventParams) -> None:
100101
if self._state is None:
101102
raise ValueError("State is not initialized")
102103

103-
self._task_id = params.task.id
104-
self._trace_id = params.task.id
105-
self._parent_span_id = params.task.id
106-
107104
if params.event.content is None:
108105
workflow.logger.warning("Received event with no content")
109106
return
@@ -124,6 +121,10 @@ async def on_task_create(self, params: CreateTaskParams) -> str:
124121

125122
self._state = StateModel(input_list=[])
126123

124+
self._task_id = params.task.id
125+
self._trace_id = params.task.id
126+
self._parent_span_id = params.task.id
127+
127128
workflow_id = workflow.info().workflow_id
128129

129130
# Create the master construction schedule with error handling
@@ -181,9 +182,9 @@ async def on_task_create(self, params: CreateTaskParams) -> str:
181182
if not self.event_queue.empty():
182183
event = await self.event_queue.get()
183184

184-
await adk.messages.create(task_id=params.task.id, content=TextContent(
185+
await adk.messages.create(task_id=params.task.id, content=DataContent(
185186
author="user",
186-
content=event,
187+
data=json.loads(event),
187188
))
188189

189190
self._state.input_list.append({

0 commit comments

Comments
 (0)