@elizaos/python 2.0.0-alpha.10 → 2.0.0-alpha.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/elizaos/__init__.py +0 -1
  2. package/elizaos/advanced_capabilities/__init__.py +6 -41
  3. package/elizaos/advanced_capabilities/actions/__init__.py +1 -21
  4. package/elizaos/advanced_capabilities/actions/add_contact.py +21 -11
  5. package/elizaos/advanced_capabilities/actions/follow_room.py +28 -28
  6. package/elizaos/advanced_capabilities/actions/image_generation.py +13 -26
  7. package/elizaos/advanced_capabilities/actions/mute_room.py +13 -26
  8. package/elizaos/advanced_capabilities/actions/remove_contact.py +16 -2
  9. package/elizaos/advanced_capabilities/actions/roles.py +13 -27
  10. package/elizaos/advanced_capabilities/actions/schedule_follow_up.py +70 -15
  11. package/elizaos/advanced_capabilities/actions/search_contacts.py +17 -3
  12. package/elizaos/advanced_capabilities/actions/send_message.py +183 -50
  13. package/elizaos/advanced_capabilities/actions/settings.py +16 -2
  14. package/elizaos/advanced_capabilities/actions/unfollow_room.py +13 -26
  15. package/elizaos/advanced_capabilities/actions/unmute_room.py +13 -26
  16. package/elizaos/advanced_capabilities/actions/update_contact.py +16 -2
  17. package/elizaos/advanced_capabilities/actions/update_entity.py +16 -2
  18. package/elizaos/advanced_capabilities/evaluators/__init__.py +2 -9
  19. package/elizaos/advanced_capabilities/evaluators/reflection.py +3 -132
  20. package/elizaos/advanced_capabilities/evaluators/relationship_extraction.py +5 -201
  21. package/elizaos/advanced_capabilities/providers/__init__.py +1 -12
  22. package/elizaos/advanced_capabilities/providers/knowledge.py +24 -3
  23. package/elizaos/advanced_capabilities/services/__init__.py +2 -9
  24. package/elizaos/advanced_memory/actions/reset_session.py +11 -0
  25. package/elizaos/advanced_memory/evaluators/reflection.py +134 -0
  26. package/elizaos/advanced_memory/evaluators/relationship_extraction.py +203 -0
  27. package/elizaos/advanced_memory/memory_service.py +15 -17
  28. package/elizaos/advanced_memory/test_advanced_memory.py +357 -0
  29. package/elizaos/advanced_planning/actions/schedule_follow_up.py +222 -0
  30. package/elizaos/advanced_planning/planning_service.py +26 -14
  31. package/elizaos/basic_capabilities/__init__.py +0 -2
  32. package/elizaos/basic_capabilities/providers/__init__.py +0 -3
  33. package/elizaos/basic_capabilities/providers/actions.py +118 -29
  34. package/elizaos/basic_capabilities/providers/agent_settings.py +64 -0
  35. package/elizaos/basic_capabilities/providers/character.py +19 -21
  36. package/elizaos/basic_capabilities/providers/contacts.py +79 -0
  37. package/elizaos/basic_capabilities/providers/current_time.py +7 -4
  38. package/elizaos/basic_capabilities/providers/facts.py +87 -0
  39. package/elizaos/basic_capabilities/providers/follow_ups.py +117 -0
  40. package/elizaos/basic_capabilities/providers/knowledge.py +97 -0
  41. package/elizaos/basic_capabilities/providers/relationships.py +107 -0
  42. package/elizaos/basic_capabilities/providers/roles.py +96 -0
  43. package/elizaos/basic_capabilities/providers/settings.py +56 -0
  44. package/elizaos/basic_capabilities/providers/time.py +7 -4
  45. package/elizaos/bootstrap/__init__.py +21 -2
  46. package/elizaos/bootstrap/actions/schedule_follow_up.py +65 -7
  47. package/elizaos/bootstrap/actions/send_message.py +162 -15
  48. package/elizaos/bootstrap/autonomy/__init__.py +5 -1
  49. package/elizaos/bootstrap/autonomy/action.py +161 -0
  50. package/elizaos/bootstrap/autonomy/evaluators.py +217 -0
  51. package/elizaos/bootstrap/autonomy/service.py +238 -28
  52. package/elizaos/bootstrap/plugin.py +7 -0
  53. package/elizaos/bootstrap/providers/actions.py +118 -27
  54. package/elizaos/bootstrap/providers/agent_settings.py +1 -0
  55. package/elizaos/bootstrap/providers/attachments.py +1 -0
  56. package/elizaos/bootstrap/providers/capabilities.py +1 -0
  57. package/elizaos/bootstrap/providers/character.py +1 -0
  58. package/elizaos/bootstrap/providers/choice.py +1 -0
  59. package/elizaos/bootstrap/providers/contacts.py +1 -0
  60. package/elizaos/bootstrap/providers/current_time.py +8 -2
  61. package/elizaos/bootstrap/providers/entities.py +1 -0
  62. package/elizaos/bootstrap/providers/evaluators.py +1 -0
  63. package/elizaos/bootstrap/providers/facts.py +1 -0
  64. package/elizaos/bootstrap/providers/follow_ups.py +1 -0
  65. package/elizaos/bootstrap/providers/knowledge.py +27 -3
  66. package/elizaos/bootstrap/providers/providers_list.py +1 -0
  67. package/elizaos/bootstrap/providers/relationships.py +1 -0
  68. package/elizaos/bootstrap/providers/roles.py +1 -0
  69. package/elizaos/bootstrap/providers/settings.py +1 -0
  70. package/elizaos/bootstrap/providers/time.py +8 -4
  71. package/elizaos/bootstrap/providers/world.py +1 -0
  72. package/elizaos/bootstrap/services/embedding.py +156 -1
  73. package/elizaos/deterministic.py +193 -0
  74. package/elizaos/generated/__init__.py +1 -0
  75. package/elizaos/generated/action_docs.py +3181 -0
  76. package/elizaos/generated/spec_helpers.py +175 -0
  77. package/elizaos/media/mime.py +2 -2
  78. package/elizaos/media/search.py +23 -23
  79. package/elizaos/runtime.py +215 -57
  80. package/elizaos/services/message_service.py +175 -29
  81. package/elizaos/types/components.py +2 -2
  82. package/elizaos/types/generated/__init__.py +12 -0
  83. package/elizaos/types/generated/eliza/v1/agent_pb2.py +63 -0
  84. package/elizaos/types/generated/eliza/v1/agent_pb2.pyi +159 -0
  85. package/elizaos/types/generated/eliza/v1/components_pb2.py +65 -0
  86. package/elizaos/types/generated/eliza/v1/components_pb2.pyi +160 -0
  87. package/elizaos/types/generated/eliza/v1/database_pb2.py +78 -0
  88. package/elizaos/types/generated/eliza/v1/database_pb2.pyi +305 -0
  89. package/elizaos/types/generated/eliza/v1/environment_pb2.py +58 -0
  90. package/elizaos/types/generated/eliza/v1/environment_pb2.pyi +135 -0
  91. package/elizaos/types/generated/eliza/v1/events_pb2.py +82 -0
  92. package/elizaos/types/generated/eliza/v1/events_pb2.pyi +322 -0
  93. package/elizaos/types/generated/eliza/v1/ipc_pb2.py +113 -0
  94. package/elizaos/types/generated/eliza/v1/ipc_pb2.pyi +367 -0
  95. package/elizaos/types/generated/eliza/v1/knowledge_pb2.py +41 -0
  96. package/elizaos/types/generated/eliza/v1/knowledge_pb2.pyi +26 -0
  97. package/elizaos/types/generated/eliza/v1/memory_pb2.py +55 -0
  98. package/elizaos/types/generated/eliza/v1/memory_pb2.pyi +111 -0
  99. package/elizaos/types/generated/eliza/v1/message_service_pb2.py +48 -0
  100. package/elizaos/types/generated/eliza/v1/message_service_pb2.pyi +69 -0
  101. package/elizaos/types/generated/eliza/v1/messaging_pb2.py +51 -0
  102. package/elizaos/types/generated/eliza/v1/messaging_pb2.pyi +97 -0
  103. package/elizaos/types/generated/eliza/v1/model_pb2.py +84 -0
  104. package/elizaos/types/generated/eliza/v1/model_pb2.pyi +280 -0
  105. package/elizaos/types/generated/eliza/v1/payment_pb2.py +44 -0
  106. package/elizaos/types/generated/eliza/v1/payment_pb2.pyi +70 -0
  107. package/elizaos/types/generated/eliza/v1/plugin_pb2.py +68 -0
  108. package/elizaos/types/generated/eliza/v1/plugin_pb2.pyi +145 -0
  109. package/elizaos/types/generated/eliza/v1/primitives_pb2.py +48 -0
  110. package/elizaos/types/generated/eliza/v1/primitives_pb2.pyi +92 -0
  111. package/elizaos/types/generated/eliza/v1/prompts_pb2.py +52 -0
  112. package/elizaos/types/generated/eliza/v1/prompts_pb2.pyi +74 -0
  113. package/elizaos/types/generated/eliza/v1/service_interfaces_pb2.py +211 -0
  114. package/elizaos/types/generated/eliza/v1/service_interfaces_pb2.pyi +1296 -0
  115. package/elizaos/types/generated/eliza/v1/service_pb2.py +42 -0
  116. package/elizaos/types/generated/eliza/v1/service_pb2.pyi +69 -0
  117. package/elizaos/types/generated/eliza/v1/settings_pb2.py +58 -0
  118. package/elizaos/types/generated/eliza/v1/settings_pb2.pyi +85 -0
  119. package/elizaos/types/generated/eliza/v1/state_pb2.py +60 -0
  120. package/elizaos/types/generated/eliza/v1/state_pb2.pyi +114 -0
  121. package/elizaos/types/generated/eliza/v1/task_pb2.py +42 -0
  122. package/elizaos/types/generated/eliza/v1/task_pb2.pyi +58 -0
  123. package/elizaos/types/generated/eliza/v1/tee_pb2.py +52 -0
  124. package/elizaos/types/generated/eliza/v1/tee_pb2.pyi +90 -0
  125. package/elizaos/types/generated/eliza/v1/testing_pb2.py +39 -0
  126. package/elizaos/types/generated/eliza/v1/testing_pb2.pyi +23 -0
  127. package/elizaos/types/model.py +30 -0
  128. package/elizaos/types/runtime.py +6 -2
  129. package/elizaos/utils/validation.py +76 -0
  130. package/package.json +3 -2
  131. package/tests/test_action_parameters.py +2 -3
  132. package/tests/test_actions_provider_examples.py +58 -1
  133. package/tests/test_advanced_memory_behavior.py +0 -2
  134. package/tests/test_advanced_memory_flag.py +0 -2
  135. package/tests/test_advanced_planning_behavior.py +11 -5
  136. package/tests/test_async_embedding.py +124 -0
  137. package/tests/test_autonomy.py +24 -3
  138. package/tests/test_runtime.py +8 -17
  139. package/tests/test_schedule_follow_up_action.py +260 -0
  140. package/tests/test_send_message_action_targets.py +114 -0
  141. package/tests/test_settings_crypto.py +0 -2
  142. package/tests/test_validation.py +141 -0
  143. package/tests/verify_memory_architecture.py +192 -0
  144. package/uv.lock +1565 -0
  145. package/elizaos/basic_capabilities/providers/capabilities.py +0 -62
@@ -0,0 +1,3181 @@
1
+ """
2
+ Auto-generated canonical action/provider/evaluator docs.
3
+ DO NOT EDIT - Generated from packages/prompts/specs/**.
4
+ """
5
+
6
+ from __future__ import annotations
7
+
8
+ import json
9
+
10
+ from typing import Literal, TypedDict
11
+
12
+
13
+ JsonSchemaType = Literal["string", "number", "boolean", "object", "array"]
14
+ ActionDocParameterExampleValue = str | int | float | bool | None
15
+
16
+
17
+ class ActionDocParameterSchema(TypedDict, total=False):
18
+ type: JsonSchemaType
19
+ description: str
20
+ default: ActionDocParameterExampleValue
21
+ enum: list[str]
22
+ properties: dict[str, "ActionDocParameterSchema"]
23
+ items: "ActionDocParameterSchema"
24
+ minimum: float
25
+ maximum: float
26
+ pattern: str
27
+
28
+
29
+ class ActionDocParameter(TypedDict, total=False):
30
+ name: str
31
+ description: str
32
+ required: bool
33
+ schema: ActionDocParameterSchema
34
+ examples: list[ActionDocParameterExampleValue]
35
+
36
+
37
+ class ActionDocExampleCall(TypedDict, total=False):
38
+ user: str
39
+ actions: list[str]
40
+ params: dict[str, dict[str, ActionDocParameterExampleValue]]
41
+
42
+
43
+ class ActionDocExampleMessage(TypedDict, total=False):
44
+ name: str
45
+ content: dict[str, object]
46
+
47
+
48
+ class ActionDoc(TypedDict, total=False):
49
+ name: str
50
+ description: str
51
+ similes: list[str]
52
+ parameters: list[ActionDocParameter]
53
+ examples: list[list[ActionDocExampleMessage]]
54
+ exampleCalls: list[ActionDocExampleCall]
55
+
56
+
57
+ class ProviderDoc(TypedDict, total=False):
58
+ name: str
59
+ description: str
60
+ position: int
61
+ dynamic: bool
62
+
63
+
64
+ class EvaluatorDocMessageContent(TypedDict, total=False):
65
+ text: str
66
+ type: str
67
+
68
+
69
+ class EvaluatorDocMessage(TypedDict):
70
+ name: str
71
+ content: EvaluatorDocMessageContent
72
+
73
+
74
+ class EvaluatorDocExample(TypedDict):
75
+ prompt: str
76
+ messages: list[EvaluatorDocMessage]
77
+ outcome: str
78
+
79
+
80
+ class EvaluatorDoc(TypedDict, total=False):
81
+ name: str
82
+ description: str
83
+ similes: list[str]
84
+ alwaysRun: bool
85
+ examples: list[EvaluatorDocExample]
86
+
87
+
88
+ core_actions_spec_version: str = "1.0.0"
89
+ all_actions_spec_version: str = "1.0.0"
90
+ core_providers_spec_version: str = "1.0.0"
91
+ all_providers_spec_version: str = "1.0.0"
92
+ core_evaluators_spec_version: str = "1.0.0"
93
+ all_evaluators_spec_version: str = "1.0.0"
94
+
95
+ _CORE_ACTION_DOCS_JSON = """{
96
+ "version": "1.0.0",
97
+ "actions": [
98
+ {
99
+ "name": "REPLY",
100
+ "description": "Replies to the current conversation with the text from the generated message. Default if the agent is responding with a message and no other action. Use REPLY at the beginning of a chain of actions as an acknowledgement, and at the end of a chain of actions as a final response.",
101
+ "similes": [
102
+ "GREET",
103
+ "REPLY_TO_MESSAGE",
104
+ "SEND_REPLY",
105
+ "RESPOND",
106
+ "RESPONSE"
107
+ ],
108
+ "parameters": [],
109
+ "examples": [
110
+ [
111
+ {
112
+ "name": "{{name1}}",
113
+ "content": {
114
+ "text": "Hello there!"
115
+ }
116
+ },
117
+ {
118
+ "name": "{{name2}}",
119
+ "content": {
120
+ "text": "Hi! How can I help you today?",
121
+ "actions": [
122
+ "REPLY"
123
+ ]
124
+ }
125
+ }
126
+ ],
127
+ [
128
+ {
129
+ "name": "{{name1}}",
130
+ "content": {
131
+ "text": "What's your favorite color?"
132
+ }
133
+ },
134
+ {
135
+ "name": "{{name2}}",
136
+ "content": {
137
+ "text": "I really like deep shades of blue. They remind me of the ocean and the night sky.",
138
+ "actions": [
139
+ "REPLY"
140
+ ]
141
+ }
142
+ }
143
+ ],
144
+ [
145
+ {
146
+ "name": "{{name1}}",
147
+ "content": {
148
+ "text": "Can you explain how neural networks work?"
149
+ }
150
+ },
151
+ {
152
+ "name": "{{name2}}",
153
+ "content": {
154
+ "text": "Let me break that down for you in simple terms...",
155
+ "actions": [
156
+ "REPLY"
157
+ ]
158
+ }
159
+ }
160
+ ],
161
+ [
162
+ {
163
+ "name": "{{name1}}",
164
+ "content": {
165
+ "text": "Could you help me solve this math problem?"
166
+ }
167
+ },
168
+ {
169
+ "name": "{{name2}}",
170
+ "content": {
171
+ "text": "Of course! Let's work through it step by step.",
172
+ "actions": [
173
+ "REPLY"
174
+ ]
175
+ }
176
+ }
177
+ ]
178
+ ]
179
+ },
180
+ {
181
+ "name": "IGNORE",
182
+ "description": "Call this action if ignoring the user. If the user is aggressive, creepy or is finished with the conversation, use this action. Or, if both you and the user have already said goodbye, use this action instead of saying bye again. Use IGNORE any time the conversation has naturally ended. Do not use IGNORE if the user has engaged directly, or if something went wrong and you need to tell them. Only ignore if the user should be ignored.",
183
+ "similes": [
184
+ "STOP_TALKING",
185
+ "STOP_CHATTING",
186
+ "STOP_CONVERSATION"
187
+ ],
188
+ "parameters": [],
189
+ "examples": [
190
+ [
191
+ {
192
+ "name": "{{name1}}",
193
+ "content": {
194
+ "text": "Go screw yourself"
195
+ }
196
+ },
197
+ {
198
+ "name": "{{name2}}",
199
+ "content": {
200
+ "text": "",
201
+ "actions": [
202
+ "IGNORE"
203
+ ]
204
+ }
205
+ }
206
+ ],
207
+ [
208
+ {
209
+ "name": "{{name1}}",
210
+ "content": {
211
+ "text": "Shut up, bot"
212
+ }
213
+ },
214
+ {
215
+ "name": "{{name2}}",
216
+ "content": {
217
+ "text": "",
218
+ "actions": [
219
+ "IGNORE"
220
+ ]
221
+ }
222
+ }
223
+ ],
224
+ [
225
+ {
226
+ "name": "{{name1}}",
227
+ "content": {
228
+ "text": "Gotta go"
229
+ }
230
+ },
231
+ {
232
+ "name": "{{name2}}",
233
+ "content": {
234
+ "text": "Okay, talk to you later"
235
+ }
236
+ },
237
+ {
238
+ "name": "{{name1}}",
239
+ "content": {
240
+ "text": "Cya"
241
+ }
242
+ },
243
+ {
244
+ "name": "{{name2}}",
245
+ "content": {
246
+ "text": "",
247
+ "actions": [
248
+ "IGNORE"
249
+ ]
250
+ }
251
+ }
252
+ ],
253
+ [
254
+ {
255
+ "name": "{{name1}}",
256
+ "content": {
257
+ "text": "bye"
258
+ }
259
+ },
260
+ {
261
+ "name": "{{name2}}",
262
+ "content": {
263
+ "text": "cya"
264
+ }
265
+ },
266
+ {
267
+ "name": "{{name1}}",
268
+ "content": {
269
+ "text": "",
270
+ "actions": [
271
+ "IGNORE"
272
+ ]
273
+ }
274
+ }
275
+ ],
276
+ [
277
+ {
278
+ "name": "{{name1}}",
279
+ "content": {
280
+ "text": "wanna cyber"
281
+ }
282
+ },
283
+ {
284
+ "name": "{{name2}}",
285
+ "content": {
286
+ "text": "thats inappropriate",
287
+ "actions": [
288
+ "IGNORE"
289
+ ]
290
+ }
291
+ }
292
+ ]
293
+ ]
294
+ },
295
+ {
296
+ "name": "NONE",
297
+ "description": "Respond but perform no additional action. This is the default if the agent is speaking and not doing anything additional.",
298
+ "similes": [
299
+ "NO_ACTION",
300
+ "NO_RESPONSE",
301
+ "NO_REACTION",
302
+ "NOOP",
303
+ "PASS"
304
+ ],
305
+ "parameters": [],
306
+ "examples": [
307
+ [
308
+ {
309
+ "name": "{{name1}}",
310
+ "content": {
311
+ "text": "Hey whats up"
312
+ }
313
+ },
314
+ {
315
+ "name": "{{name2}}",
316
+ "content": {
317
+ "text": "oh hey",
318
+ "actions": [
319
+ "NONE"
320
+ ]
321
+ }
322
+ }
323
+ ],
324
+ [
325
+ {
326
+ "name": "{{name1}}",
327
+ "content": {
328
+ "text": "did u see some faster whisper just came out"
329
+ }
330
+ },
331
+ {
332
+ "name": "{{name2}}",
333
+ "content": {
334
+ "text": "yeah but its a pain to get into node.js",
335
+ "actions": [
336
+ "NONE"
337
+ ]
338
+ }
339
+ }
340
+ ],
341
+ [
342
+ {
343
+ "name": "{{name1}}",
344
+ "content": {
345
+ "text": "u think aliens are real",
346
+ "actions": [
347
+ "NONE"
348
+ ]
349
+ }
350
+ },
351
+ {
352
+ "name": "{{name2}}",
353
+ "content": {
354
+ "text": "ya obviously",
355
+ "actions": [
356
+ "NONE"
357
+ ]
358
+ }
359
+ }
360
+ ],
361
+ [
362
+ {
363
+ "name": "{{name1}}",
364
+ "content": {
365
+ "text": "drop a joke on me",
366
+ "actions": [
367
+ "NONE"
368
+ ]
369
+ }
370
+ },
371
+ {
372
+ "name": "{{name2}}",
373
+ "content": {
374
+ "text": "why dont scientists trust atoms cuz they make up everything lmao",
375
+ "actions": [
376
+ "NONE"
377
+ ]
378
+ }
379
+ }
380
+ ]
381
+ ]
382
+ },
383
+ {
384
+ "name": "SEND_MESSAGE",
385
+ "description": "Send a message to a user or room (other than the current one)",
386
+ "similes": [
387
+ "DM",
388
+ "MESSAGE",
389
+ "SEND_DM",
390
+ "POST_MESSAGE",
391
+ "DIRECT_MESSAGE",
392
+ "NOTIFY"
393
+ ],
394
+ "parameters": [
395
+ {
396
+ "name": "targetType",
397
+ "description": "Whether the message target is a user or a room.",
398
+ "required": true,
399
+ "schema": {
400
+ "type": "string",
401
+ "enum": [
402
+ "user",
403
+ "room"
404
+ ]
405
+ },
406
+ "examples": [
407
+ "user",
408
+ "room"
409
+ ]
410
+ },
411
+ {
412
+ "name": "source",
413
+ "description": "The platform/source to send the message on (e.g. telegram, discord, x).",
414
+ "required": false,
415
+ "schema": {
416
+ "type": "string"
417
+ },
418
+ "examples": [
419
+ "telegram",
420
+ "discord"
421
+ ]
422
+ },
423
+ {
424
+ "name": "target",
425
+ "description": "Identifier of the target. For user targets, a name/handle/id; for room targets, a room name/id.",
426
+ "required": true,
427
+ "schema": {
428
+ "type": "string"
429
+ },
430
+ "examples": [
431
+ "dev_guru",
432
+ "announcements"
433
+ ]
434
+ },
435
+ {
436
+ "name": "text",
437
+ "description": "The message content to send.",
438
+ "required": true,
439
+ "schema": {
440
+ "type": "string"
441
+ },
442
+ "examples": [
443
+ "Hello!",
444
+ "Important announcement!"
445
+ ]
446
+ }
447
+ ],
448
+ "examples": [
449
+ [
450
+ {
451
+ "name": "{{name1}}",
452
+ "content": {
453
+ "text": "Send a message to @dev_guru on telegram saying 'Hello!'"
454
+ }
455
+ },
456
+ {
457
+ "name": "{{name2}}",
458
+ "content": {
459
+ "text": "Message sent to dev_guru on telegram.",
460
+ "actions": [
461
+ "SEND_MESSAGE"
462
+ ]
463
+ }
464
+ }
465
+ ],
466
+ [
467
+ {
468
+ "name": "{{name1}}",
469
+ "content": {
470
+ "text": "Post 'Important announcement!' in #announcements"
471
+ }
472
+ },
473
+ {
474
+ "name": "{{name2}}",
475
+ "content": {
476
+ "text": "Message sent to announcements.",
477
+ "actions": [
478
+ "SEND_MESSAGE"
479
+ ]
480
+ }
481
+ }
482
+ ],
483
+ [
484
+ {
485
+ "name": "{{name1}}",
486
+ "content": {
487
+ "text": "DM Jimmy and tell him 'Meeting at 3pm'"
488
+ }
489
+ },
490
+ {
491
+ "name": "{{name2}}",
492
+ "content": {
493
+ "text": "Message sent to Jimmy.",
494
+ "actions": [
495
+ "SEND_MESSAGE"
496
+ ]
497
+ }
498
+ }
499
+ ]
500
+ ],
501
+ "exampleCalls": [
502
+ {
503
+ "user": "Send a message to @dev_guru on telegram saying \\"Hello!\\"",
504
+ "actions": [
505
+ "REPLY",
506
+ "SEND_MESSAGE"
507
+ ],
508
+ "params": {
509
+ "SEND_MESSAGE": {
510
+ "targetType": "user",
511
+ "source": "telegram",
512
+ "target": "dev_guru",
513
+ "text": "Hello!"
514
+ }
515
+ }
516
+ }
517
+ ]
518
+ },
519
+ {
520
+ "name": "ADD_CONTACT",
521
+ "description": "Add a new contact to the rolodex with categorization and preferences",
522
+ "similes": [
523
+ "SAVE_CONTACT",
524
+ "REMEMBER_PERSON",
525
+ "ADD_TO_CONTACTS",
526
+ "SAVE_TO_ROLODEX",
527
+ "CREATE_CONTACT",
528
+ "NEW_CONTACT",
529
+ "add contact",
530
+ "save contact",
531
+ "add to contacts",
532
+ "add to rolodex",
533
+ "remember this person",
534
+ "save their info",
535
+ "add them to my list",
536
+ "categorize as friend",
537
+ "mark as vip",
538
+ "add to address book"
539
+ ],
540
+ "parameters": [
541
+ {
542
+ "name": "name",
543
+ "description": "The contact's primary name.",
544
+ "required": true,
545
+ "schema": {
546
+ "type": "string"
547
+ },
548
+ "examples": [
549
+ "Sarah Chen",
550
+ "John Smith"
551
+ ]
552
+ },
553
+ {
554
+ "name": "notes",
555
+ "description": "Optional notes about the contact (short summary, context, or preferences).",
556
+ "required": false,
557
+ "schema": {
558
+ "type": "string"
559
+ },
560
+ "examples": [
561
+ "Met at the AI meetup; interested in agents"
562
+ ]
563
+ }
564
+ ],
565
+ "examples": [
566
+ [
567
+ {
568
+ "name": "{{name1}}",
569
+ "content": {
570
+ "text": "Add John Smith to my contacts as a colleague"
571
+ }
572
+ },
573
+ {
574
+ "name": "{{name2}}",
575
+ "content": {
576
+ "text": "I've added John Smith to your contacts as a colleague."
577
+ }
578
+ }
579
+ ],
580
+ [
581
+ {
582
+ "name": "{{name1}}",
583
+ "content": {
584
+ "text": "Save this person as a friend in my rolodex"
585
+ }
586
+ },
587
+ {
588
+ "name": "{{name2}}",
589
+ "content": {
590
+ "text": "I've saved them as a friend in your rolodex."
591
+ }
592
+ }
593
+ ],
594
+ [
595
+ {
596
+ "name": "{{name1}}",
597
+ "content": {
598
+ "text": "Remember Alice as a VIP contact"
599
+ }
600
+ },
601
+ {
602
+ "name": "{{name2}}",
603
+ "content": {
604
+ "text": "I've added Alice to your contacts as a VIP."
605
+ }
606
+ }
607
+ ]
608
+ ]
609
+ },
610
+ {
611
+ "name": "UPDATE_CONTACT",
612
+ "description": "Update an existing contact's details in the rolodex.",
613
+ "similes": [
614
+ "EDIT_CONTACT",
615
+ "MODIFY_CONTACT",
616
+ "CHANGE_CONTACT_INFO"
617
+ ],
618
+ "parameters": [
619
+ {
620
+ "name": "name",
621
+ "description": "The contact name to update (must match an existing contact).",
622
+ "required": true,
623
+ "schema": {
624
+ "type": "string"
625
+ },
626
+ "examples": [
627
+ "Sarah Chen"
628
+ ]
629
+ },
630
+ {
631
+ "name": "updates",
632
+ "description": "A JSON object of fields to update (stringified JSON).",
633
+ "required": true,
634
+ "schema": {
635
+ "type": "string"
636
+ },
637
+ "examples": [
638
+ "{\\"notes\\":\\"prefers email\\",\\"tags\\":[\\"friend\\"]}"
639
+ ]
640
+ }
641
+ ],
642
+ "examples": [
643
+ [
644
+ {
645
+ "name": "{{name1}}",
646
+ "content": {
647
+ "text": "Update Sarah's contact to add the tag 'investor'"
648
+ }
649
+ },
650
+ {
651
+ "name": "{{name2}}",
652
+ "content": {
653
+ "text": "I've updated Sarah's contact with the new tag."
654
+ }
655
+ }
656
+ ]
657
+ ]
658
+ },
659
+ {
660
+ "name": "REMOVE_CONTACT",
661
+ "description": "Remove a contact from the rolodex.",
662
+ "similes": [
663
+ "DELETE_CONTACT",
664
+ "REMOVE_FROM_ROLODEX",
665
+ "DELETE_FROM_CONTACTS",
666
+ "FORGET_PERSON",
667
+ "REMOVE_FROM_CONTACTS"
668
+ ],
669
+ "parameters": [
670
+ {
671
+ "name": "name",
672
+ "description": "The contact name to remove.",
673
+ "required": true,
674
+ "schema": {
675
+ "type": "string"
676
+ },
677
+ "examples": [
678
+ "Sarah Chen"
679
+ ]
680
+ }
681
+ ],
682
+ "examples": [
683
+ [
684
+ {
685
+ "name": "{{name1}}",
686
+ "content": {
687
+ "text": "Remove John from my contacts"
688
+ }
689
+ },
690
+ {
691
+ "name": "{{name2}}",
692
+ "content": {
693
+ "text": "Are you sure you want to remove John from your contacts?"
694
+ }
695
+ },
696
+ {
697
+ "name": "{{name1}}",
698
+ "content": {
699
+ "text": "Yes"
700
+ }
701
+ },
702
+ {
703
+ "name": "{{name2}}",
704
+ "content": {
705
+ "text": "I've removed John from your contacts."
706
+ }
707
+ }
708
+ ]
709
+ ]
710
+ },
711
+ {
712
+ "name": "SEARCH_CONTACTS",
713
+ "description": "Search and list contacts in the rolodex by name or query.",
714
+ "similes": [
715
+ "FIND_CONTACTS",
716
+ "LOOKUP_CONTACTS",
717
+ "LIST_CONTACTS",
718
+ "SHOW_CONTACTS",
719
+ "list contacts",
720
+ "show contacts",
721
+ "search contacts",
722
+ "find contacts",
723
+ "who are my friends"
724
+ ],
725
+ "parameters": [
726
+ {
727
+ "name": "query",
728
+ "description": "Search query (name, handle, or free-text).",
729
+ "required": true,
730
+ "schema": {
731
+ "type": "string"
732
+ },
733
+ "examples": [
734
+ "sarah",
735
+ "AI meetup"
736
+ ]
737
+ }
738
+ ],
739
+ "examples": [
740
+ [
741
+ {
742
+ "name": "{{name1}}",
743
+ "content": {
744
+ "text": "Show me my friends"
745
+ }
746
+ },
747
+ {
748
+ "name": "{{name2}}",
749
+ "content": {
750
+ "text": "Here are your contacts tagged as friends: Sarah Chen, John Smith..."
751
+ }
752
+ }
753
+ ]
754
+ ]
755
+ },
756
+ {
757
+ "name": "SCHEDULE_FOLLOW_UP",
758
+ "description": "Schedule a follow-up reminder for a contact.",
759
+ "similes": [
760
+ "REMIND_ME",
761
+ "FOLLOW_UP",
762
+ "REMIND_FOLLOW_UP",
763
+ "SET_REMINDER",
764
+ "REMIND_ABOUT",
765
+ "FOLLOW_UP_WITH",
766
+ "follow up with",
767
+ "remind me to contact",
768
+ "schedule a check-in",
769
+ "set a reminder for"
770
+ ],
771
+ "parameters": [
772
+ {
773
+ "name": "name",
774
+ "description": "Contact name to follow up with.",
775
+ "required": true,
776
+ "schema": {
777
+ "type": "string"
778
+ },
779
+ "examples": [
780
+ "Sarah Chen"
781
+ ]
782
+ },
783
+ {
784
+ "name": "when",
785
+ "description": "When to follow up. Use an ISO-8601 datetime string.",
786
+ "required": true,
787
+ "schema": {
788
+ "type": "string"
789
+ },
790
+ "examples": [
791
+ "2026-02-01T09:00:00Z"
792
+ ]
793
+ },
794
+ {
795
+ "name": "reason",
796
+ "description": "Optional reason/context for the follow-up.",
797
+ "required": false,
798
+ "schema": {
799
+ "type": "string"
800
+ },
801
+ "examples": [
802
+ "Check in about the agent framework demo"
803
+ ]
804
+ }
805
+ ],
806
+ "examples": [
807
+ [
808
+ {
809
+ "name": "{{name1}}",
810
+ "content": {
811
+ "text": "Remind me to follow up with Sarah next week about the demo"
812
+ }
813
+ },
814
+ {
815
+ "name": "{{name2}}",
816
+ "content": {
817
+ "text": "I've scheduled a follow-up reminder with Sarah for next week about the demo."
818
+ }
819
+ }
820
+ ]
821
+ ]
822
+ },
823
+ {
824
+ "name": "CHOOSE_OPTION",
825
+ "description": "Select an option for a pending task that has multiple options.",
826
+ "similes": [
827
+ "SELECT_OPTION",
828
+ "PICK_OPTION",
829
+ "SELECT_TASK",
830
+ "PICK_TASK",
831
+ "SELECT",
832
+ "PICK",
833
+ "CHOOSE"
834
+ ],
835
+ "parameters": [
836
+ {
837
+ "name": "taskId",
838
+ "description": "The pending task id.",
839
+ "required": true,
840
+ "schema": {
841
+ "type": "string"
842
+ },
843
+ "examples": [
844
+ "c0a8012e"
845
+ ]
846
+ },
847
+ {
848
+ "name": "option",
849
+ "description": "The selected option name exactly as listed.",
850
+ "required": true,
851
+ "schema": {
852
+ "type": "string"
853
+ },
854
+ "examples": [
855
+ "APPROVE",
856
+ "ABORT"
857
+ ]
858
+ }
859
+ ],
860
+ "examples": [
861
+ [
862
+ {
863
+ "name": "{{name1}}",
864
+ "content": {
865
+ "text": "Select the first option"
866
+ }
867
+ },
868
+ {
869
+ "name": "{{name2}}",
870
+ "content": {
871
+ "text": "I've selected option 1 for the pending task.",
872
+ "actions": [
873
+ "CHOOSE_OPTION"
874
+ ]
875
+ }
876
+ }
877
+ ]
878
+ ]
879
+ },
880
+ {
881
+ "name": "FOLLOW_ROOM",
882
+ "description": "Start following this channel with great interest, chiming in without needing to be explicitly mentioned. Only do this if explicitly asked to.",
883
+ "similes": [
884
+ "FOLLOW_CHAT",
885
+ "FOLLOW_CHANNEL",
886
+ "FOLLOW_CONVERSATION",
887
+ "FOLLOW_THREAD",
888
+ "JOIN_ROOM",
889
+ "SUBSCRIBE_ROOM",
890
+ "WATCH_ROOM",
891
+ "ENTER_ROOM"
892
+ ],
893
+ "parameters": [
894
+ {
895
+ "name": "roomId",
896
+ "description": "The target room id to follow.",
897
+ "required": true,
898
+ "schema": {
899
+ "type": "string"
900
+ },
901
+ "examples": [
902
+ "00000000-0000-0000-0000-000000000000"
903
+ ]
904
+ }
905
+ ],
906
+ "examples": [
907
+ [
908
+ {
909
+ "name": "{{name1}}",
910
+ "content": {
911
+ "text": "hey {{name2}} follow this channel"
912
+ }
913
+ },
914
+ {
915
+ "name": "{{name2}}",
916
+ "content": {
917
+ "text": "Sure, I will now follow this room and chime in",
918
+ "actions": [
919
+ "FOLLOW_ROOM"
920
+ ]
921
+ }
922
+ }
923
+ ],
924
+ [
925
+ {
926
+ "name": "{{name1}}",
927
+ "content": {
928
+ "text": "{{name2}} stay in this chat pls"
929
+ }
930
+ },
931
+ {
932
+ "name": "{{name2}}",
933
+ "content": {
934
+ "text": "you got it, i'm here",
935
+ "actions": [
936
+ "FOLLOW_ROOM"
937
+ ]
938
+ }
939
+ }
940
+ ]
941
+ ]
942
+ },
943
+ {
944
+ "name": "UNFOLLOW_ROOM",
945
+ "description": "Stop following a room and cease receiving updates. Use this when you no longer want to monitor a room's activity.",
946
+ "similes": [
947
+ "UNFOLLOW_CHAT",
948
+ "UNFOLLOW_CONVERSATION",
949
+ "UNFOLLOW_ROOM",
950
+ "UNFOLLOW_THREAD",
951
+ "LEAVE_ROOM",
952
+ "UNSUBSCRIBE_ROOM",
953
+ "STOP_WATCHING_ROOM",
954
+ "EXIT_ROOM"
955
+ ],
956
+ "parameters": [
957
+ {
958
+ "name": "roomId",
959
+ "description": "The target room id to unfollow.",
960
+ "required": true,
961
+ "schema": {
962
+ "type": "string"
963
+ },
964
+ "examples": [
965
+ "00000000-0000-0000-0000-000000000000"
966
+ ]
967
+ }
968
+ ],
969
+ "examples": [
970
+ [
971
+ {
972
+ "name": "{{name1}}",
973
+ "content": {
974
+ "text": "{{name2}} stop following this channel"
975
+ }
976
+ },
977
+ {
978
+ "name": "{{name2}}",
979
+ "content": {
980
+ "text": "Okay, I'll stop following this room",
981
+ "actions": [
982
+ "UNFOLLOW_ROOM"
983
+ ]
984
+ }
985
+ }
986
+ ]
987
+ ]
988
+ },
989
+ {
990
+ "name": "MUTE_ROOM",
991
+ "description": "Mutes a room, ignoring all messages unless explicitly mentioned. Only do this if explicitly asked to, or if you're annoying people.",
992
+ "similes": [
993
+ "MUTE_CHAT",
994
+ "MUTE_CONVERSATION",
995
+ "MUTE_THREAD",
996
+ "MUTE_CHANNEL",
997
+ "SILENCE_ROOM",
998
+ "QUIET_ROOM",
999
+ "DISABLE_NOTIFICATIONS",
1000
+ "STOP_RESPONDING"
1001
+ ],
1002
+ "parameters": [
1003
+ {
1004
+ "name": "roomId",
1005
+ "description": "The room id to mute.",
1006
+ "required": true,
1007
+ "schema": {
1008
+ "type": "string"
1009
+ },
1010
+ "examples": [
1011
+ "00000000-0000-0000-0000-000000000000"
1012
+ ]
1013
+ }
1014
+ ],
1015
+ "examples": [
1016
+ [
1017
+ {
1018
+ "name": "{{name1}}",
1019
+ "content": {
1020
+ "text": "{{name2}}, please mute this channel. No need to respond here for now."
1021
+ }
1022
+ },
1023
+ {
1024
+ "name": "{{name2}}",
1025
+ "content": {
1026
+ "text": "Got it",
1027
+ "actions": [
1028
+ "MUTE_ROOM"
1029
+ ]
1030
+ }
1031
+ }
1032
+ ],
1033
+ [
1034
+ {
1035
+ "name": "{{name1}}",
1036
+ "content": {
1037
+ "text": "{{name2}} plz mute this room"
1038
+ }
1039
+ },
1040
+ {
1041
+ "name": "{{name2}}",
1042
+ "content": {
1043
+ "text": "np going silent",
1044
+ "actions": [
1045
+ "MUTE_ROOM"
1046
+ ]
1047
+ }
1048
+ }
1049
+ ]
1050
+ ]
1051
+ },
1052
+ {
1053
+ "name": "UNMUTE_ROOM",
1054
+ "description": "Unmute a room to resume responding and receiving notifications. Use this when you want to start interacting with a muted room again.",
1055
+ "similes": [
1056
+ "UNMUTE_CHAT",
1057
+ "UNMUTE_CONVERSATION",
1058
+ "UNMUTE_ROOM",
1059
+ "UNMUTE_THREAD",
1060
+ "UNSILENCE_ROOM",
1061
+ "ENABLE_NOTIFICATIONS",
1062
+ "RESUME_RESPONDING",
1063
+ "START_LISTENING"
1064
+ ],
1065
+ "parameters": [
1066
+ {
1067
+ "name": "roomId",
1068
+ "description": "The room id to unmute.",
1069
+ "required": true,
1070
+ "schema": {
1071
+ "type": "string"
1072
+ },
1073
+ "examples": [
1074
+ "00000000-0000-0000-0000-000000000000"
1075
+ ]
1076
+ }
1077
+ ],
1078
+ "examples": [
1079
+ [
1080
+ {
1081
+ "name": "{{name1}}",
1082
+ "content": {
1083
+ "text": "{{name2}} unmute this room please"
1084
+ }
1085
+ },
1086
+ {
1087
+ "name": "{{name2}}",
1088
+ "content": {
1089
+ "text": "I've unmuted this room and will respond again",
1090
+ "actions": [
1091
+ "UNMUTE_ROOM"
1092
+ ]
1093
+ }
1094
+ }
1095
+ ]
1096
+ ]
1097
+ },
1098
+ {
1099
+ "name": "UPDATE_SETTINGS",
1100
+ "description": "Update agent settings by applying explicit key/value updates.",
1101
+ "similes": [
1102
+ "SET_SETTINGS",
1103
+ "CHANGE_SETTINGS",
1104
+ "UPDATE_SETTING",
1105
+ "SAVE_SETTING",
1106
+ "SET_CONFIGURATION",
1107
+ "CONFIGURE",
1108
+ "MODIFY_SETTINGS",
1109
+ "SET_PREFERENCE",
1110
+ "UPDATE_CONFIG"
1111
+ ],
1112
+ "parameters": [
1113
+ {
1114
+ "name": "updates",
1115
+ "description": "A JSON array of {\\"key\\": string, \\"value\\": string} updates (stringified JSON).",
1116
+ "required": true,
1117
+ "schema": {
1118
+ "type": "string"
1119
+ },
1120
+ "examples": [
1121
+ "[{\\"key\\":\\"model\\",\\"value\\":\\"gpt-5\\"}]"
1122
+ ]
1123
+ }
1124
+ ],
1125
+ "examples": [
1126
+ [
1127
+ {
1128
+ "name": "{{name1}}",
1129
+ "content": {
1130
+ "text": "Change my language setting to French"
1131
+ }
1132
+ },
1133
+ {
1134
+ "name": "{{name2}}",
1135
+ "content": {
1136
+ "text": "I've updated your language setting to French.",
1137
+ "actions": [
1138
+ "UPDATE_SETTINGS"
1139
+ ]
1140
+ }
1141
+ }
1142
+ ]
1143
+ ]
1144
+ },
1145
+ {
1146
+ "name": "UPDATE_ROLE",
1147
+ "description": "Assigns a role (Admin, Owner, None) to a user or list of users in a channel.",
1148
+ "similes": [
1149
+ "SET_ROLE",
1150
+ "CHANGE_ROLE",
1151
+ "SET_PERMISSIONS",
1152
+ "ASSIGN_ROLE",
1153
+ "MAKE_ADMIN",
1154
+ "MODIFY_PERMISSIONS",
1155
+ "GRANT_ROLE"
1156
+ ],
1157
+ "parameters": [
1158
+ {
1159
+ "name": "entityId",
1160
+ "description": "The entity id to update.",
1161
+ "required": true,
1162
+ "schema": {
1163
+ "type": "string"
1164
+ },
1165
+ "examples": [
1166
+ "00000000-0000-0000-0000-000000000000"
1167
+ ]
1168
+ },
1169
+ {
1170
+ "name": "role",
1171
+ "description": "The new role to assign.",
1172
+ "required": true,
1173
+ "schema": {
1174
+ "type": "string"
1175
+ },
1176
+ "examples": [
1177
+ "admin",
1178
+ "member"
1179
+ ]
1180
+ }
1181
+ ],
1182
+ "examples": [
1183
+ [
1184
+ {
1185
+ "name": "{{name1}}",
1186
+ "content": {
1187
+ "text": "Make Sarah an admin"
1188
+ }
1189
+ },
1190
+ {
1191
+ "name": "{{name2}}",
1192
+ "content": {
1193
+ "text": "I've assigned the admin role to Sarah.",
1194
+ "actions": [
1195
+ "UPDATE_ROLE"
1196
+ ]
1197
+ }
1198
+ }
1199
+ ]
1200
+ ]
1201
+ },
1202
+ {
1203
+ "name": "UPDATE_ENTITY",
1204
+ "description": "Add or edit contact details for a person you are talking to or observing. Use this to modify entity profiles, metadata, or attributes.",
1205
+ "similes": [
1206
+ "EDIT_ENTITY",
1207
+ "MODIFY_ENTITY",
1208
+ "CHANGE_ENTITY",
1209
+ "UPDATE_PROFILE",
1210
+ "SET_ENTITY_INFO"
1211
+ ],
1212
+ "parameters": [
1213
+ {
1214
+ "name": "entityId",
1215
+ "description": "The entity id to update.",
1216
+ "required": true,
1217
+ "schema": {
1218
+ "type": "string"
1219
+ },
1220
+ "examples": [
1221
+ "00000000-0000-0000-0000-000000000000"
1222
+ ]
1223
+ },
1224
+ {
1225
+ "name": "updates",
1226
+ "description": "A JSON array of {\\"name\\": string, \\"value\\": string} field updates (stringified JSON).",
1227
+ "required": true,
1228
+ "schema": {
1229
+ "type": "string"
1230
+ },
1231
+ "examples": [
1232
+ "[{\\"name\\":\\"bio\\",\\"value\\":\\"Loves Rust\\"}]"
1233
+ ]
1234
+ }
1235
+ ],
1236
+ "examples": [
1237
+ [
1238
+ {
1239
+ "name": "{{name1}}",
1240
+ "content": {
1241
+ "text": "Update my profile bio to say 'AI enthusiast'"
1242
+ }
1243
+ },
1244
+ {
1245
+ "name": "{{name2}}",
1246
+ "content": {
1247
+ "text": "I've updated your profile bio.",
1248
+ "actions": [
1249
+ "UPDATE_ENTITY"
1250
+ ]
1251
+ }
1252
+ }
1253
+ ]
1254
+ ]
1255
+ },
1256
+ {
1257
+ "name": "GENERATE_IMAGE",
1258
+ "description": "Generates an image based on a generated prompt reflecting the current conversation. Use GENERATE_IMAGE when the agent needs to visualize, illustrate, or demonstrate something visually for the user.",
1259
+ "similes": [
1260
+ "DRAW",
1261
+ "CREATE_IMAGE",
1262
+ "RENDER_IMAGE",
1263
+ "VISUALIZE",
1264
+ "MAKE_IMAGE",
1265
+ "PAINT",
1266
+ "IMAGE"
1267
+ ],
1268
+ "parameters": [
1269
+ {
1270
+ "name": "prompt",
1271
+ "description": "Image generation prompt.",
1272
+ "required": true,
1273
+ "schema": {
1274
+ "type": "string"
1275
+ },
1276
+ "examples": [
1277
+ "A futuristic cityscape at sunset, cinematic lighting"
1278
+ ]
1279
+ }
1280
+ ],
1281
+ "examples": [
1282
+ [
1283
+ {
1284
+ "name": "{{name1}}",
1285
+ "content": {
1286
+ "text": "Can you show me what a futuristic city looks like?"
1287
+ }
1288
+ },
1289
+ {
1290
+ "name": "{{name2}}",
1291
+ "content": {
1292
+ "text": "Sure, I'll create a futuristic city image for you. One moment...",
1293
+ "actions": [
1294
+ "GENERATE_IMAGE"
1295
+ ]
1296
+ }
1297
+ }
1298
+ ],
1299
+ [
1300
+ {
1301
+ "name": "{{name1}}",
1302
+ "content": {
1303
+ "text": "What does a neural network look like visually?"
1304
+ }
1305
+ },
1306
+ {
1307
+ "name": "{{name2}}",
1308
+ "content": {
1309
+ "text": "I'll create a visualization of a neural network for you, one sec...",
1310
+ "actions": [
1311
+ "GENERATE_IMAGE"
1312
+ ]
1313
+ }
1314
+ }
1315
+ ],
1316
+ [
1317
+ {
1318
+ "name": "{{name1}}",
1319
+ "content": {
1320
+ "text": "Can you visualize the feeling of calmness for me?"
1321
+ }
1322
+ },
1323
+ {
1324
+ "name": "{{name2}}",
1325
+ "content": {
1326
+ "text": "Creating an image to capture calmness for you, please wait a moment...",
1327
+ "actions": [
1328
+ "GENERATE_IMAGE"
1329
+ ]
1330
+ }
1331
+ }
1332
+ ]
1333
+ ]
1334
+ }
1335
+ ]
1336
+ }"""
1337
+ _ALL_ACTION_DOCS_JSON = """{
1338
+ "version": "1.0.0",
1339
+ "actions": [
1340
+ {
1341
+ "name": "REPLY",
1342
+ "description": "Replies to the current conversation with the text from the generated message. Default if the agent is responding with a message and no other action. Use REPLY at the beginning of a chain of actions as an acknowledgement, and at the end of a chain of actions as a final response.",
1343
+ "similes": [
1344
+ "GREET",
1345
+ "REPLY_TO_MESSAGE",
1346
+ "SEND_REPLY",
1347
+ "RESPOND",
1348
+ "RESPONSE"
1349
+ ],
1350
+ "parameters": [],
1351
+ "examples": [
1352
+ [
1353
+ {
1354
+ "name": "{{name1}}",
1355
+ "content": {
1356
+ "text": "Hello there!"
1357
+ }
1358
+ },
1359
+ {
1360
+ "name": "{{name2}}",
1361
+ "content": {
1362
+ "text": "Hi! How can I help you today?",
1363
+ "actions": [
1364
+ "REPLY"
1365
+ ]
1366
+ }
1367
+ }
1368
+ ],
1369
+ [
1370
+ {
1371
+ "name": "{{name1}}",
1372
+ "content": {
1373
+ "text": "What's your favorite color?"
1374
+ }
1375
+ },
1376
+ {
1377
+ "name": "{{name2}}",
1378
+ "content": {
1379
+ "text": "I really like deep shades of blue. They remind me of the ocean and the night sky.",
1380
+ "actions": [
1381
+ "REPLY"
1382
+ ]
1383
+ }
1384
+ }
1385
+ ],
1386
+ [
1387
+ {
1388
+ "name": "{{name1}}",
1389
+ "content": {
1390
+ "text": "Can you explain how neural networks work?"
1391
+ }
1392
+ },
1393
+ {
1394
+ "name": "{{name2}}",
1395
+ "content": {
1396
+ "text": "Let me break that down for you in simple terms...",
1397
+ "actions": [
1398
+ "REPLY"
1399
+ ]
1400
+ }
1401
+ }
1402
+ ],
1403
+ [
1404
+ {
1405
+ "name": "{{name1}}",
1406
+ "content": {
1407
+ "text": "Could you help me solve this math problem?"
1408
+ }
1409
+ },
1410
+ {
1411
+ "name": "{{name2}}",
1412
+ "content": {
1413
+ "text": "Of course! Let's work through it step by step.",
1414
+ "actions": [
1415
+ "REPLY"
1416
+ ]
1417
+ }
1418
+ }
1419
+ ]
1420
+ ]
1421
+ },
1422
+ {
1423
+ "name": "IGNORE",
1424
+ "description": "Call this action if ignoring the user. If the user is aggressive, creepy or is finished with the conversation, use this action. Or, if both you and the user have already said goodbye, use this action instead of saying bye again. Use IGNORE any time the conversation has naturally ended. Do not use IGNORE if the user has engaged directly, or if something went wrong and you need to tell them. Only ignore if the user should be ignored.",
1425
+ "similes": [
1426
+ "STOP_TALKING",
1427
+ "STOP_CHATTING",
1428
+ "STOP_CONVERSATION"
1429
+ ],
1430
+ "parameters": [],
1431
+ "examples": [
1432
+ [
1433
+ {
1434
+ "name": "{{name1}}",
1435
+ "content": {
1436
+ "text": "Go screw yourself"
1437
+ }
1438
+ },
1439
+ {
1440
+ "name": "{{name2}}",
1441
+ "content": {
1442
+ "text": "",
1443
+ "actions": [
1444
+ "IGNORE"
1445
+ ]
1446
+ }
1447
+ }
1448
+ ],
1449
+ [
1450
+ {
1451
+ "name": "{{name1}}",
1452
+ "content": {
1453
+ "text": "Shut up, bot"
1454
+ }
1455
+ },
1456
+ {
1457
+ "name": "{{name2}}",
1458
+ "content": {
1459
+ "text": "",
1460
+ "actions": [
1461
+ "IGNORE"
1462
+ ]
1463
+ }
1464
+ }
1465
+ ],
1466
+ [
1467
+ {
1468
+ "name": "{{name1}}",
1469
+ "content": {
1470
+ "text": "Gotta go"
1471
+ }
1472
+ },
1473
+ {
1474
+ "name": "{{name2}}",
1475
+ "content": {
1476
+ "text": "Okay, talk to you later"
1477
+ }
1478
+ },
1479
+ {
1480
+ "name": "{{name1}}",
1481
+ "content": {
1482
+ "text": "Cya"
1483
+ }
1484
+ },
1485
+ {
1486
+ "name": "{{name2}}",
1487
+ "content": {
1488
+ "text": "",
1489
+ "actions": [
1490
+ "IGNORE"
1491
+ ]
1492
+ }
1493
+ }
1494
+ ],
1495
+ [
1496
+ {
1497
+ "name": "{{name1}}",
1498
+ "content": {
1499
+ "text": "bye"
1500
+ }
1501
+ },
1502
+ {
1503
+ "name": "{{name2}}",
1504
+ "content": {
1505
+ "text": "cya"
1506
+ }
1507
+ },
1508
+ {
1509
+ "name": "{{name1}}",
1510
+ "content": {
1511
+ "text": "",
1512
+ "actions": [
1513
+ "IGNORE"
1514
+ ]
1515
+ }
1516
+ }
1517
+ ],
1518
+ [
1519
+ {
1520
+ "name": "{{name1}}",
1521
+ "content": {
1522
+ "text": "wanna cyber"
1523
+ }
1524
+ },
1525
+ {
1526
+ "name": "{{name2}}",
1527
+ "content": {
1528
+ "text": "thats inappropriate",
1529
+ "actions": [
1530
+ "IGNORE"
1531
+ ]
1532
+ }
1533
+ }
1534
+ ]
1535
+ ]
1536
+ },
1537
+ {
1538
+ "name": "NONE",
1539
+ "description": "Respond but perform no additional action. This is the default if the agent is speaking and not doing anything additional.",
1540
+ "similes": [
1541
+ "NO_ACTION",
1542
+ "NO_RESPONSE",
1543
+ "NO_REACTION",
1544
+ "NOOP",
1545
+ "PASS"
1546
+ ],
1547
+ "parameters": [],
1548
+ "examples": [
1549
+ [
1550
+ {
1551
+ "name": "{{name1}}",
1552
+ "content": {
1553
+ "text": "Hey whats up"
1554
+ }
1555
+ },
1556
+ {
1557
+ "name": "{{name2}}",
1558
+ "content": {
1559
+ "text": "oh hey",
1560
+ "actions": [
1561
+ "NONE"
1562
+ ]
1563
+ }
1564
+ }
1565
+ ],
1566
+ [
1567
+ {
1568
+ "name": "{{name1}}",
1569
+ "content": {
1570
+ "text": "did u see some faster whisper just came out"
1571
+ }
1572
+ },
1573
+ {
1574
+ "name": "{{name2}}",
1575
+ "content": {
1576
+ "text": "yeah but its a pain to get into node.js",
1577
+ "actions": [
1578
+ "NONE"
1579
+ ]
1580
+ }
1581
+ }
1582
+ ],
1583
+ [
1584
+ {
1585
+ "name": "{{name1}}",
1586
+ "content": {
1587
+ "text": "u think aliens are real",
1588
+ "actions": [
1589
+ "NONE"
1590
+ ]
1591
+ }
1592
+ },
1593
+ {
1594
+ "name": "{{name2}}",
1595
+ "content": {
1596
+ "text": "ya obviously",
1597
+ "actions": [
1598
+ "NONE"
1599
+ ]
1600
+ }
1601
+ }
1602
+ ],
1603
+ [
1604
+ {
1605
+ "name": "{{name1}}",
1606
+ "content": {
1607
+ "text": "drop a joke on me",
1608
+ "actions": [
1609
+ "NONE"
1610
+ ]
1611
+ }
1612
+ },
1613
+ {
1614
+ "name": "{{name2}}",
1615
+ "content": {
1616
+ "text": "why dont scientists trust atoms cuz they make up everything lmao",
1617
+ "actions": [
1618
+ "NONE"
1619
+ ]
1620
+ }
1621
+ }
1622
+ ]
1623
+ ]
1624
+ },
1625
+ {
1626
+ "name": "SEND_MESSAGE",
1627
+ "description": "Send a message to a user or room (other than the current one)",
1628
+ "similes": [
1629
+ "DM",
1630
+ "MESSAGE",
1631
+ "SEND_DM",
1632
+ "POST_MESSAGE",
1633
+ "DIRECT_MESSAGE",
1634
+ "NOTIFY"
1635
+ ],
1636
+ "parameters": [
1637
+ {
1638
+ "name": "targetType",
1639
+ "description": "Whether the message target is a user or a room.",
1640
+ "required": true,
1641
+ "schema": {
1642
+ "type": "string",
1643
+ "enum": [
1644
+ "user",
1645
+ "room"
1646
+ ]
1647
+ },
1648
+ "examples": [
1649
+ "user",
1650
+ "room"
1651
+ ]
1652
+ },
1653
+ {
1654
+ "name": "source",
1655
+ "description": "The platform/source to send the message on (e.g. telegram, discord, x).",
1656
+ "required": false,
1657
+ "schema": {
1658
+ "type": "string"
1659
+ },
1660
+ "examples": [
1661
+ "telegram",
1662
+ "discord"
1663
+ ]
1664
+ },
1665
+ {
1666
+ "name": "target",
1667
+ "description": "Identifier of the target. For user targets, a name/handle/id; for room targets, a room name/id.",
1668
+ "required": true,
1669
+ "schema": {
1670
+ "type": "string"
1671
+ },
1672
+ "examples": [
1673
+ "dev_guru",
1674
+ "announcements"
1675
+ ]
1676
+ },
1677
+ {
1678
+ "name": "text",
1679
+ "description": "The message content to send.",
1680
+ "required": true,
1681
+ "schema": {
1682
+ "type": "string"
1683
+ },
1684
+ "examples": [
1685
+ "Hello!",
1686
+ "Important announcement!"
1687
+ ]
1688
+ }
1689
+ ],
1690
+ "examples": [
1691
+ [
1692
+ {
1693
+ "name": "{{name1}}",
1694
+ "content": {
1695
+ "text": "Send a message to @dev_guru on telegram saying 'Hello!'"
1696
+ }
1697
+ },
1698
+ {
1699
+ "name": "{{name2}}",
1700
+ "content": {
1701
+ "text": "Message sent to dev_guru on telegram.",
1702
+ "actions": [
1703
+ "SEND_MESSAGE"
1704
+ ]
1705
+ }
1706
+ }
1707
+ ],
1708
+ [
1709
+ {
1710
+ "name": "{{name1}}",
1711
+ "content": {
1712
+ "text": "Post 'Important announcement!' in #announcements"
1713
+ }
1714
+ },
1715
+ {
1716
+ "name": "{{name2}}",
1717
+ "content": {
1718
+ "text": "Message sent to announcements.",
1719
+ "actions": [
1720
+ "SEND_MESSAGE"
1721
+ ]
1722
+ }
1723
+ }
1724
+ ],
1725
+ [
1726
+ {
1727
+ "name": "{{name1}}",
1728
+ "content": {
1729
+ "text": "DM Jimmy and tell him 'Meeting at 3pm'"
1730
+ }
1731
+ },
1732
+ {
1733
+ "name": "{{name2}}",
1734
+ "content": {
1735
+ "text": "Message sent to Jimmy.",
1736
+ "actions": [
1737
+ "SEND_MESSAGE"
1738
+ ]
1739
+ }
1740
+ }
1741
+ ]
1742
+ ],
1743
+ "exampleCalls": [
1744
+ {
1745
+ "user": "Send a message to @dev_guru on telegram saying \\"Hello!\\"",
1746
+ "actions": [
1747
+ "REPLY",
1748
+ "SEND_MESSAGE"
1749
+ ],
1750
+ "params": {
1751
+ "SEND_MESSAGE": {
1752
+ "targetType": "user",
1753
+ "source": "telegram",
1754
+ "target": "dev_guru",
1755
+ "text": "Hello!"
1756
+ }
1757
+ }
1758
+ }
1759
+ ]
1760
+ },
1761
+ {
1762
+ "name": "ADD_CONTACT",
1763
+ "description": "Add a new contact to the rolodex with categorization and preferences",
1764
+ "similes": [
1765
+ "SAVE_CONTACT",
1766
+ "REMEMBER_PERSON",
1767
+ "ADD_TO_CONTACTS",
1768
+ "SAVE_TO_ROLODEX",
1769
+ "CREATE_CONTACT",
1770
+ "NEW_CONTACT",
1771
+ "add contact",
1772
+ "save contact",
1773
+ "add to contacts",
1774
+ "add to rolodex",
1775
+ "remember this person",
1776
+ "save their info",
1777
+ "add them to my list",
1778
+ "categorize as friend",
1779
+ "mark as vip",
1780
+ "add to address book"
1781
+ ],
1782
+ "parameters": [
1783
+ {
1784
+ "name": "name",
1785
+ "description": "The contact's primary name.",
1786
+ "required": true,
1787
+ "schema": {
1788
+ "type": "string"
1789
+ },
1790
+ "examples": [
1791
+ "Sarah Chen",
1792
+ "John Smith"
1793
+ ]
1794
+ },
1795
+ {
1796
+ "name": "notes",
1797
+ "description": "Optional notes about the contact (short summary, context, or preferences).",
1798
+ "required": false,
1799
+ "schema": {
1800
+ "type": "string"
1801
+ },
1802
+ "examples": [
1803
+ "Met at the AI meetup; interested in agents"
1804
+ ]
1805
+ }
1806
+ ],
1807
+ "examples": [
1808
+ [
1809
+ {
1810
+ "name": "{{name1}}",
1811
+ "content": {
1812
+ "text": "Add John Smith to my contacts as a colleague"
1813
+ }
1814
+ },
1815
+ {
1816
+ "name": "{{name2}}",
1817
+ "content": {
1818
+ "text": "I've added John Smith to your contacts as a colleague."
1819
+ }
1820
+ }
1821
+ ],
1822
+ [
1823
+ {
1824
+ "name": "{{name1}}",
1825
+ "content": {
1826
+ "text": "Save this person as a friend in my rolodex"
1827
+ }
1828
+ },
1829
+ {
1830
+ "name": "{{name2}}",
1831
+ "content": {
1832
+ "text": "I've saved them as a friend in your rolodex."
1833
+ }
1834
+ }
1835
+ ],
1836
+ [
1837
+ {
1838
+ "name": "{{name1}}",
1839
+ "content": {
1840
+ "text": "Remember Alice as a VIP contact"
1841
+ }
1842
+ },
1843
+ {
1844
+ "name": "{{name2}}",
1845
+ "content": {
1846
+ "text": "I've added Alice to your contacts as a VIP."
1847
+ }
1848
+ }
1849
+ ]
1850
+ ]
1851
+ },
1852
+ {
1853
+ "name": "UPDATE_CONTACT",
1854
+ "description": "Update an existing contact's details in the rolodex.",
1855
+ "similes": [
1856
+ "EDIT_CONTACT",
1857
+ "MODIFY_CONTACT",
1858
+ "CHANGE_CONTACT_INFO"
1859
+ ],
1860
+ "parameters": [
1861
+ {
1862
+ "name": "name",
1863
+ "description": "The contact name to update (must match an existing contact).",
1864
+ "required": true,
1865
+ "schema": {
1866
+ "type": "string"
1867
+ },
1868
+ "examples": [
1869
+ "Sarah Chen"
1870
+ ]
1871
+ },
1872
+ {
1873
+ "name": "updates",
1874
+ "description": "A JSON object of fields to update (stringified JSON).",
1875
+ "required": true,
1876
+ "schema": {
1877
+ "type": "string"
1878
+ },
1879
+ "examples": [
1880
+ "{\\"notes\\":\\"prefers email\\",\\"tags\\":[\\"friend\\"]}"
1881
+ ]
1882
+ }
1883
+ ],
1884
+ "examples": [
1885
+ [
1886
+ {
1887
+ "name": "{{name1}}",
1888
+ "content": {
1889
+ "text": "Update Sarah's contact to add the tag 'investor'"
1890
+ }
1891
+ },
1892
+ {
1893
+ "name": "{{name2}}",
1894
+ "content": {
1895
+ "text": "I've updated Sarah's contact with the new tag."
1896
+ }
1897
+ }
1898
+ ]
1899
+ ]
1900
+ },
1901
+ {
1902
+ "name": "REMOVE_CONTACT",
1903
+ "description": "Remove a contact from the rolodex.",
1904
+ "similes": [
1905
+ "DELETE_CONTACT",
1906
+ "REMOVE_FROM_ROLODEX",
1907
+ "DELETE_FROM_CONTACTS",
1908
+ "FORGET_PERSON",
1909
+ "REMOVE_FROM_CONTACTS"
1910
+ ],
1911
+ "parameters": [
1912
+ {
1913
+ "name": "name",
1914
+ "description": "The contact name to remove.",
1915
+ "required": true,
1916
+ "schema": {
1917
+ "type": "string"
1918
+ },
1919
+ "examples": [
1920
+ "Sarah Chen"
1921
+ ]
1922
+ }
1923
+ ],
1924
+ "examples": [
1925
+ [
1926
+ {
1927
+ "name": "{{name1}}",
1928
+ "content": {
1929
+ "text": "Remove John from my contacts"
1930
+ }
1931
+ },
1932
+ {
1933
+ "name": "{{name2}}",
1934
+ "content": {
1935
+ "text": "Are you sure you want to remove John from your contacts?"
1936
+ }
1937
+ },
1938
+ {
1939
+ "name": "{{name1}}",
1940
+ "content": {
1941
+ "text": "Yes"
1942
+ }
1943
+ },
1944
+ {
1945
+ "name": "{{name2}}",
1946
+ "content": {
1947
+ "text": "I've removed John from your contacts."
1948
+ }
1949
+ }
1950
+ ]
1951
+ ]
1952
+ },
1953
+ {
1954
+ "name": "SEARCH_CONTACTS",
1955
+ "description": "Search and list contacts in the rolodex by name or query.",
1956
+ "similes": [
1957
+ "FIND_CONTACTS",
1958
+ "LOOKUP_CONTACTS",
1959
+ "LIST_CONTACTS",
1960
+ "SHOW_CONTACTS",
1961
+ "list contacts",
1962
+ "show contacts",
1963
+ "search contacts",
1964
+ "find contacts",
1965
+ "who are my friends"
1966
+ ],
1967
+ "parameters": [
1968
+ {
1969
+ "name": "query",
1970
+ "description": "Search query (name, handle, or free-text).",
1971
+ "required": true,
1972
+ "schema": {
1973
+ "type": "string"
1974
+ },
1975
+ "examples": [
1976
+ "sarah",
1977
+ "AI meetup"
1978
+ ]
1979
+ }
1980
+ ],
1981
+ "examples": [
1982
+ [
1983
+ {
1984
+ "name": "{{name1}}",
1985
+ "content": {
1986
+ "text": "Show me my friends"
1987
+ }
1988
+ },
1989
+ {
1990
+ "name": "{{name2}}",
1991
+ "content": {
1992
+ "text": "Here are your contacts tagged as friends: Sarah Chen, John Smith..."
1993
+ }
1994
+ }
1995
+ ]
1996
+ ]
1997
+ },
1998
+ {
1999
+ "name": "SCHEDULE_FOLLOW_UP",
2000
+ "description": "Schedule a follow-up reminder for a contact.",
2001
+ "similes": [
2002
+ "REMIND_ME",
2003
+ "FOLLOW_UP",
2004
+ "REMIND_FOLLOW_UP",
2005
+ "SET_REMINDER",
2006
+ "REMIND_ABOUT",
2007
+ "FOLLOW_UP_WITH",
2008
+ "follow up with",
2009
+ "remind me to contact",
2010
+ "schedule a check-in",
2011
+ "set a reminder for"
2012
+ ],
2013
+ "parameters": [
2014
+ {
2015
+ "name": "name",
2016
+ "description": "Contact name to follow up with.",
2017
+ "required": true,
2018
+ "schema": {
2019
+ "type": "string"
2020
+ },
2021
+ "examples": [
2022
+ "Sarah Chen"
2023
+ ]
2024
+ },
2025
+ {
2026
+ "name": "when",
2027
+ "description": "When to follow up. Use an ISO-8601 datetime string.",
2028
+ "required": true,
2029
+ "schema": {
2030
+ "type": "string"
2031
+ },
2032
+ "examples": [
2033
+ "2026-02-01T09:00:00Z"
2034
+ ]
2035
+ },
2036
+ {
2037
+ "name": "reason",
2038
+ "description": "Optional reason/context for the follow-up.",
2039
+ "required": false,
2040
+ "schema": {
2041
+ "type": "string"
2042
+ },
2043
+ "examples": [
2044
+ "Check in about the agent framework demo"
2045
+ ]
2046
+ }
2047
+ ],
2048
+ "examples": [
2049
+ [
2050
+ {
2051
+ "name": "{{name1}}",
2052
+ "content": {
2053
+ "text": "Remind me to follow up with Sarah next week about the demo"
2054
+ }
2055
+ },
2056
+ {
2057
+ "name": "{{name2}}",
2058
+ "content": {
2059
+ "text": "I've scheduled a follow-up reminder with Sarah for next week about the demo."
2060
+ }
2061
+ }
2062
+ ]
2063
+ ]
2064
+ },
2065
+ {
2066
+ "name": "CHOOSE_OPTION",
2067
+ "description": "Select an option for a pending task that has multiple options.",
2068
+ "similes": [
2069
+ "SELECT_OPTION",
2070
+ "PICK_OPTION",
2071
+ "SELECT_TASK",
2072
+ "PICK_TASK",
2073
+ "SELECT",
2074
+ "PICK",
2075
+ "CHOOSE"
2076
+ ],
2077
+ "parameters": [
2078
+ {
2079
+ "name": "taskId",
2080
+ "description": "The pending task id.",
2081
+ "required": true,
2082
+ "schema": {
2083
+ "type": "string"
2084
+ },
2085
+ "examples": [
2086
+ "c0a8012e"
2087
+ ]
2088
+ },
2089
+ {
2090
+ "name": "option",
2091
+ "description": "The selected option name exactly as listed.",
2092
+ "required": true,
2093
+ "schema": {
2094
+ "type": "string"
2095
+ },
2096
+ "examples": [
2097
+ "APPROVE",
2098
+ "ABORT"
2099
+ ]
2100
+ }
2101
+ ],
2102
+ "examples": [
2103
+ [
2104
+ {
2105
+ "name": "{{name1}}",
2106
+ "content": {
2107
+ "text": "Select the first option"
2108
+ }
2109
+ },
2110
+ {
2111
+ "name": "{{name2}}",
2112
+ "content": {
2113
+ "text": "I've selected option 1 for the pending task.",
2114
+ "actions": [
2115
+ "CHOOSE_OPTION"
2116
+ ]
2117
+ }
2118
+ }
2119
+ ]
2120
+ ]
2121
+ },
2122
+ {
2123
+ "name": "FOLLOW_ROOM",
2124
+ "description": "Start following this channel with great interest, chiming in without needing to be explicitly mentioned. Only do this if explicitly asked to.",
2125
+ "similes": [
2126
+ "FOLLOW_CHAT",
2127
+ "FOLLOW_CHANNEL",
2128
+ "FOLLOW_CONVERSATION",
2129
+ "FOLLOW_THREAD",
2130
+ "JOIN_ROOM",
2131
+ "SUBSCRIBE_ROOM",
2132
+ "WATCH_ROOM",
2133
+ "ENTER_ROOM"
2134
+ ],
2135
+ "parameters": [
2136
+ {
2137
+ "name": "roomId",
2138
+ "description": "The target room id to follow.",
2139
+ "required": true,
2140
+ "schema": {
2141
+ "type": "string"
2142
+ },
2143
+ "examples": [
2144
+ "00000000-0000-0000-0000-000000000000"
2145
+ ]
2146
+ }
2147
+ ],
2148
+ "examples": [
2149
+ [
2150
+ {
2151
+ "name": "{{name1}}",
2152
+ "content": {
2153
+ "text": "hey {{name2}} follow this channel"
2154
+ }
2155
+ },
2156
+ {
2157
+ "name": "{{name2}}",
2158
+ "content": {
2159
+ "text": "Sure, I will now follow this room and chime in",
2160
+ "actions": [
2161
+ "FOLLOW_ROOM"
2162
+ ]
2163
+ }
2164
+ }
2165
+ ],
2166
+ [
2167
+ {
2168
+ "name": "{{name1}}",
2169
+ "content": {
2170
+ "text": "{{name2}} stay in this chat pls"
2171
+ }
2172
+ },
2173
+ {
2174
+ "name": "{{name2}}",
2175
+ "content": {
2176
+ "text": "you got it, i'm here",
2177
+ "actions": [
2178
+ "FOLLOW_ROOM"
2179
+ ]
2180
+ }
2181
+ }
2182
+ ]
2183
+ ]
2184
+ },
2185
+ {
2186
+ "name": "UNFOLLOW_ROOM",
2187
+ "description": "Stop following a room and cease receiving updates. Use this when you no longer want to monitor a room's activity.",
2188
+ "similes": [
2189
+ "UNFOLLOW_CHAT",
2190
+ "UNFOLLOW_CONVERSATION",
2191
+ "UNFOLLOW_ROOM",
2192
+ "UNFOLLOW_THREAD",
2193
+ "LEAVE_ROOM",
2194
+ "UNSUBSCRIBE_ROOM",
2195
+ "STOP_WATCHING_ROOM",
2196
+ "EXIT_ROOM"
2197
+ ],
2198
+ "parameters": [
2199
+ {
2200
+ "name": "roomId",
2201
+ "description": "The target room id to unfollow.",
2202
+ "required": true,
2203
+ "schema": {
2204
+ "type": "string"
2205
+ },
2206
+ "examples": [
2207
+ "00000000-0000-0000-0000-000000000000"
2208
+ ]
2209
+ }
2210
+ ],
2211
+ "examples": [
2212
+ [
2213
+ {
2214
+ "name": "{{name1}}",
2215
+ "content": {
2216
+ "text": "{{name2}} stop following this channel"
2217
+ }
2218
+ },
2219
+ {
2220
+ "name": "{{name2}}",
2221
+ "content": {
2222
+ "text": "Okay, I'll stop following this room",
2223
+ "actions": [
2224
+ "UNFOLLOW_ROOM"
2225
+ ]
2226
+ }
2227
+ }
2228
+ ]
2229
+ ]
2230
+ },
2231
+ {
2232
+ "name": "MUTE_ROOM",
2233
+ "description": "Mutes a room, ignoring all messages unless explicitly mentioned. Only do this if explicitly asked to, or if you're annoying people.",
2234
+ "similes": [
2235
+ "MUTE_CHAT",
2236
+ "MUTE_CONVERSATION",
2237
+ "MUTE_THREAD",
2238
+ "MUTE_CHANNEL",
2239
+ "SILENCE_ROOM",
2240
+ "QUIET_ROOM",
2241
+ "DISABLE_NOTIFICATIONS",
2242
+ "STOP_RESPONDING"
2243
+ ],
2244
+ "parameters": [
2245
+ {
2246
+ "name": "roomId",
2247
+ "description": "The room id to mute.",
2248
+ "required": true,
2249
+ "schema": {
2250
+ "type": "string"
2251
+ },
2252
+ "examples": [
2253
+ "00000000-0000-0000-0000-000000000000"
2254
+ ]
2255
+ }
2256
+ ],
2257
+ "examples": [
2258
+ [
2259
+ {
2260
+ "name": "{{name1}}",
2261
+ "content": {
2262
+ "text": "{{name2}}, please mute this channel. No need to respond here for now."
2263
+ }
2264
+ },
2265
+ {
2266
+ "name": "{{name2}}",
2267
+ "content": {
2268
+ "text": "Got it",
2269
+ "actions": [
2270
+ "MUTE_ROOM"
2271
+ ]
2272
+ }
2273
+ }
2274
+ ],
2275
+ [
2276
+ {
2277
+ "name": "{{name1}}",
2278
+ "content": {
2279
+ "text": "{{name2}} plz mute this room"
2280
+ }
2281
+ },
2282
+ {
2283
+ "name": "{{name2}}",
2284
+ "content": {
2285
+ "text": "np going silent",
2286
+ "actions": [
2287
+ "MUTE_ROOM"
2288
+ ]
2289
+ }
2290
+ }
2291
+ ]
2292
+ ]
2293
+ },
2294
+ {
2295
+ "name": "UNMUTE_ROOM",
2296
+ "description": "Unmute a room to resume responding and receiving notifications. Use this when you want to start interacting with a muted room again.",
2297
+ "similes": [
2298
+ "UNMUTE_CHAT",
2299
+ "UNMUTE_CONVERSATION",
2300
+ "UNMUTE_ROOM",
2301
+ "UNMUTE_THREAD",
2302
+ "UNSILENCE_ROOM",
2303
+ "ENABLE_NOTIFICATIONS",
2304
+ "RESUME_RESPONDING",
2305
+ "START_LISTENING"
2306
+ ],
2307
+ "parameters": [
2308
+ {
2309
+ "name": "roomId",
2310
+ "description": "The room id to unmute.",
2311
+ "required": true,
2312
+ "schema": {
2313
+ "type": "string"
2314
+ },
2315
+ "examples": [
2316
+ "00000000-0000-0000-0000-000000000000"
2317
+ ]
2318
+ }
2319
+ ],
2320
+ "examples": [
2321
+ [
2322
+ {
2323
+ "name": "{{name1}}",
2324
+ "content": {
2325
+ "text": "{{name2}} unmute this room please"
2326
+ }
2327
+ },
2328
+ {
2329
+ "name": "{{name2}}",
2330
+ "content": {
2331
+ "text": "I've unmuted this room and will respond again",
2332
+ "actions": [
2333
+ "UNMUTE_ROOM"
2334
+ ]
2335
+ }
2336
+ }
2337
+ ]
2338
+ ]
2339
+ },
2340
+ {
2341
+ "name": "UPDATE_SETTINGS",
2342
+ "description": "Update agent settings by applying explicit key/value updates.",
2343
+ "similes": [
2344
+ "SET_SETTINGS",
2345
+ "CHANGE_SETTINGS",
2346
+ "UPDATE_SETTING",
2347
+ "SAVE_SETTING",
2348
+ "SET_CONFIGURATION",
2349
+ "CONFIGURE",
2350
+ "MODIFY_SETTINGS",
2351
+ "SET_PREFERENCE",
2352
+ "UPDATE_CONFIG"
2353
+ ],
2354
+ "parameters": [
2355
+ {
2356
+ "name": "updates",
2357
+ "description": "A JSON array of {\\"key\\": string, \\"value\\": string} updates (stringified JSON).",
2358
+ "required": true,
2359
+ "schema": {
2360
+ "type": "string"
2361
+ },
2362
+ "examples": [
2363
+ "[{\\"key\\":\\"model\\",\\"value\\":\\"gpt-5\\"}]"
2364
+ ]
2365
+ }
2366
+ ],
2367
+ "examples": [
2368
+ [
2369
+ {
2370
+ "name": "{{name1}}",
2371
+ "content": {
2372
+ "text": "Change my language setting to French"
2373
+ }
2374
+ },
2375
+ {
2376
+ "name": "{{name2}}",
2377
+ "content": {
2378
+ "text": "I've updated your language setting to French.",
2379
+ "actions": [
2380
+ "UPDATE_SETTINGS"
2381
+ ]
2382
+ }
2383
+ }
2384
+ ]
2385
+ ]
2386
+ },
2387
+ {
2388
+ "name": "UPDATE_ROLE",
2389
+ "description": "Assigns a role (Admin, Owner, None) to a user or list of users in a channel.",
2390
+ "similes": [
2391
+ "SET_ROLE",
2392
+ "CHANGE_ROLE",
2393
+ "SET_PERMISSIONS",
2394
+ "ASSIGN_ROLE",
2395
+ "MAKE_ADMIN",
2396
+ "MODIFY_PERMISSIONS",
2397
+ "GRANT_ROLE"
2398
+ ],
2399
+ "parameters": [
2400
+ {
2401
+ "name": "entityId",
2402
+ "description": "The entity id to update.",
2403
+ "required": true,
2404
+ "schema": {
2405
+ "type": "string"
2406
+ },
2407
+ "examples": [
2408
+ "00000000-0000-0000-0000-000000000000"
2409
+ ]
2410
+ },
2411
+ {
2412
+ "name": "role",
2413
+ "description": "The new role to assign.",
2414
+ "required": true,
2415
+ "schema": {
2416
+ "type": "string"
2417
+ },
2418
+ "examples": [
2419
+ "admin",
2420
+ "member"
2421
+ ]
2422
+ }
2423
+ ],
2424
+ "examples": [
2425
+ [
2426
+ {
2427
+ "name": "{{name1}}",
2428
+ "content": {
2429
+ "text": "Make Sarah an admin"
2430
+ }
2431
+ },
2432
+ {
2433
+ "name": "{{name2}}",
2434
+ "content": {
2435
+ "text": "I've assigned the admin role to Sarah.",
2436
+ "actions": [
2437
+ "UPDATE_ROLE"
2438
+ ]
2439
+ }
2440
+ }
2441
+ ]
2442
+ ]
2443
+ },
2444
+ {
2445
+ "name": "UPDATE_ENTITY",
2446
+ "description": "Add or edit contact details for a person you are talking to or observing. Use this to modify entity profiles, metadata, or attributes.",
2447
+ "similes": [
2448
+ "EDIT_ENTITY",
2449
+ "MODIFY_ENTITY",
2450
+ "CHANGE_ENTITY",
2451
+ "UPDATE_PROFILE",
2452
+ "SET_ENTITY_INFO"
2453
+ ],
2454
+ "parameters": [
2455
+ {
2456
+ "name": "entityId",
2457
+ "description": "The entity id to update.",
2458
+ "required": true,
2459
+ "schema": {
2460
+ "type": "string"
2461
+ },
2462
+ "examples": [
2463
+ "00000000-0000-0000-0000-000000000000"
2464
+ ]
2465
+ },
2466
+ {
2467
+ "name": "updates",
2468
+ "description": "A JSON array of {\\"name\\": string, \\"value\\": string} field updates (stringified JSON).",
2469
+ "required": true,
2470
+ "schema": {
2471
+ "type": "string"
2472
+ },
2473
+ "examples": [
2474
+ "[{\\"name\\":\\"bio\\",\\"value\\":\\"Loves Rust\\"}]"
2475
+ ]
2476
+ }
2477
+ ],
2478
+ "examples": [
2479
+ [
2480
+ {
2481
+ "name": "{{name1}}",
2482
+ "content": {
2483
+ "text": "Update my profile bio to say 'AI enthusiast'"
2484
+ }
2485
+ },
2486
+ {
2487
+ "name": "{{name2}}",
2488
+ "content": {
2489
+ "text": "I've updated your profile bio.",
2490
+ "actions": [
2491
+ "UPDATE_ENTITY"
2492
+ ]
2493
+ }
2494
+ }
2495
+ ]
2496
+ ]
2497
+ },
2498
+ {
2499
+ "name": "GENERATE_IMAGE",
2500
+ "description": "Generates an image based on a generated prompt reflecting the current conversation. Use GENERATE_IMAGE when the agent needs to visualize, illustrate, or demonstrate something visually for the user.",
2501
+ "similes": [
2502
+ "DRAW",
2503
+ "CREATE_IMAGE",
2504
+ "RENDER_IMAGE",
2505
+ "VISUALIZE",
2506
+ "MAKE_IMAGE",
2507
+ "PAINT",
2508
+ "IMAGE"
2509
+ ],
2510
+ "parameters": [
2511
+ {
2512
+ "name": "prompt",
2513
+ "description": "Image generation prompt.",
2514
+ "required": true,
2515
+ "schema": {
2516
+ "type": "string"
2517
+ },
2518
+ "examples": [
2519
+ "A futuristic cityscape at sunset, cinematic lighting"
2520
+ ]
2521
+ }
2522
+ ],
2523
+ "examples": [
2524
+ [
2525
+ {
2526
+ "name": "{{name1}}",
2527
+ "content": {
2528
+ "text": "Can you show me what a futuristic city looks like?"
2529
+ }
2530
+ },
2531
+ {
2532
+ "name": "{{name2}}",
2533
+ "content": {
2534
+ "text": "Sure, I'll create a futuristic city image for you. One moment...",
2535
+ "actions": [
2536
+ "GENERATE_IMAGE"
2537
+ ]
2538
+ }
2539
+ }
2540
+ ],
2541
+ [
2542
+ {
2543
+ "name": "{{name1}}",
2544
+ "content": {
2545
+ "text": "What does a neural network look like visually?"
2546
+ }
2547
+ },
2548
+ {
2549
+ "name": "{{name2}}",
2550
+ "content": {
2551
+ "text": "I'll create a visualization of a neural network for you, one sec...",
2552
+ "actions": [
2553
+ "GENERATE_IMAGE"
2554
+ ]
2555
+ }
2556
+ }
2557
+ ],
2558
+ [
2559
+ {
2560
+ "name": "{{name1}}",
2561
+ "content": {
2562
+ "text": "Can you visualize the feeling of calmness for me?"
2563
+ }
2564
+ },
2565
+ {
2566
+ "name": "{{name2}}",
2567
+ "content": {
2568
+ "text": "Creating an image to capture calmness for you, please wait a moment...",
2569
+ "actions": [
2570
+ "GENERATE_IMAGE"
2571
+ ]
2572
+ }
2573
+ }
2574
+ ]
2575
+ ]
2576
+ }
2577
+ ]
2578
+ }"""
2579
+ _CORE_PROVIDER_DOCS_JSON = """{
2580
+ "version": "1.0.0",
2581
+ "providers": [
2582
+ {
2583
+ "name": "ACTIONS",
2584
+ "description": "Possible response actions",
2585
+ "position": -1,
2586
+ "dynamic": false
2587
+ },
2588
+ {
2589
+ "name": "CHARACTER",
2590
+ "description": "Provides the agent's character definition and personality information including bio, topics, adjectives, style directions, and example conversations",
2591
+ "dynamic": false
2592
+ },
2593
+ {
2594
+ "name": "RECENT_MESSAGES",
2595
+ "description": "Provides recent message history from the current conversation including formatted messages, posts, action results, and recent interactions",
2596
+ "position": 100,
2597
+ "dynamic": true
2598
+ },
2599
+ {
2600
+ "name": "ACTION_STATE",
2601
+ "description": "Provides information about the current action state and available actions",
2602
+ "dynamic": true
2603
+ },
2604
+ {
2605
+ "name": "ATTACHMENTS",
2606
+ "description": "Media attachments in the current message",
2607
+ "dynamic": true
2608
+ },
2609
+ {
2610
+ "name": "CAPABILITIES",
2611
+ "description": "Agent capabilities including models, services, and features",
2612
+ "dynamic": false
2613
+ },
2614
+ {
2615
+ "name": "CHOICE",
2616
+ "description": "Available choice options for selection when there are pending tasks or decisions",
2617
+ "dynamic": true
2618
+ },
2619
+ {
2620
+ "name": "CONTACTS",
2621
+ "description": "Provides contact information from the rolodex including categories and preferences",
2622
+ "dynamic": true
2623
+ },
2624
+ {
2625
+ "name": "CONTEXT_BENCH",
2626
+ "description": "Benchmark/task context injected by a benchmark harness",
2627
+ "position": 5,
2628
+ "dynamic": true
2629
+ },
2630
+ {
2631
+ "name": "ENTITIES",
2632
+ "description": "Provides information about entities in the current context including users, agents, and participants",
2633
+ "dynamic": true
2634
+ },
2635
+ {
2636
+ "name": "EVALUATORS",
2637
+ "description": "Available evaluators for assessing agent behavior",
2638
+ "dynamic": false
2639
+ },
2640
+ {
2641
+ "name": "FACTS",
2642
+ "description": "Provides known facts about entities learned through conversation",
2643
+ "dynamic": true
2644
+ },
2645
+ {
2646
+ "name": "FOLLOW_UPS",
2647
+ "description": "Provides information about upcoming follow-ups and reminders scheduled for contacts",
2648
+ "dynamic": true
2649
+ },
2650
+ {
2651
+ "name": "KNOWLEDGE",
2652
+ "description": "Provides relevant knowledge from the agent's knowledge base based on semantic similarity",
2653
+ "dynamic": true
2654
+ },
2655
+ {
2656
+ "name": "PROVIDERS",
2657
+ "description": "Available context providers",
2658
+ "dynamic": false
2659
+ },
2660
+ {
2661
+ "name": "RELATIONSHIPS",
2662
+ "description": "Relationships between entities observed by the agent including tags and metadata",
2663
+ "dynamic": true
2664
+ },
2665
+ {
2666
+ "name": "ROLES",
2667
+ "description": "Roles assigned to entities in the current context (Admin, Owner, Member, None)",
2668
+ "dynamic": true
2669
+ },
2670
+ {
2671
+ "name": "SETTINGS",
2672
+ "description": "Current settings for the agent/server (filtered for security, excludes sensitive keys)",
2673
+ "dynamic": true
2674
+ },
2675
+ {
2676
+ "name": "TIME",
2677
+ "description": "Provides the current date and time in UTC for time-based operations or responses",
2678
+ "dynamic": true
2679
+ },
2680
+ {
2681
+ "name": "WORLD",
2682
+ "description": "Provides information about the current world context including settings and members",
2683
+ "dynamic": true
2684
+ },
2685
+ {
2686
+ "name": "LONG_TERM_MEMORY",
2687
+ "description": "Persistent facts and preferences about the user learned and remembered across conversations",
2688
+ "position": 50,
2689
+ "dynamic": false
2690
+ },
2691
+ {
2692
+ "name": "SUMMARIZED_CONTEXT",
2693
+ "description": "Provides summarized context from previous conversations for optimized context usage",
2694
+ "position": 96,
2695
+ "dynamic": false
2696
+ },
2697
+ {
2698
+ "name": "AGENT_SETTINGS",
2699
+ "description": "Provides the agent's current configuration settings (filtered for security)",
2700
+ "dynamic": true
2701
+ },
2702
+ {
2703
+ "name": "CURRENT_TIME",
2704
+ "description": "Provides current time and date information in various formats",
2705
+ "dynamic": true
2706
+ }
2707
+ ]
2708
+ }"""
2709
+ _ALL_PROVIDER_DOCS_JSON = """{
2710
+ "version": "1.0.0",
2711
+ "providers": [
2712
+ {
2713
+ "name": "ACTIONS",
2714
+ "description": "Possible response actions",
2715
+ "position": -1,
2716
+ "dynamic": false
2717
+ },
2718
+ {
2719
+ "name": "CHARACTER",
2720
+ "description": "Provides the agent's character definition and personality information including bio, topics, adjectives, style directions, and example conversations",
2721
+ "dynamic": false
2722
+ },
2723
+ {
2724
+ "name": "RECENT_MESSAGES",
2725
+ "description": "Provides recent message history from the current conversation including formatted messages, posts, action results, and recent interactions",
2726
+ "position": 100,
2727
+ "dynamic": true
2728
+ },
2729
+ {
2730
+ "name": "ACTION_STATE",
2731
+ "description": "Provides information about the current action state and available actions",
2732
+ "dynamic": true
2733
+ },
2734
+ {
2735
+ "name": "ATTACHMENTS",
2736
+ "description": "Media attachments in the current message",
2737
+ "dynamic": true
2738
+ },
2739
+ {
2740
+ "name": "CAPABILITIES",
2741
+ "description": "Agent capabilities including models, services, and features",
2742
+ "dynamic": false
2743
+ },
2744
+ {
2745
+ "name": "CHOICE",
2746
+ "description": "Available choice options for selection when there are pending tasks or decisions",
2747
+ "dynamic": true
2748
+ },
2749
+ {
2750
+ "name": "CONTACTS",
2751
+ "description": "Provides contact information from the rolodex including categories and preferences",
2752
+ "dynamic": true
2753
+ },
2754
+ {
2755
+ "name": "CONTEXT_BENCH",
2756
+ "description": "Benchmark/task context injected by a benchmark harness",
2757
+ "position": 5,
2758
+ "dynamic": true
2759
+ },
2760
+ {
2761
+ "name": "ENTITIES",
2762
+ "description": "Provides information about entities in the current context including users, agents, and participants",
2763
+ "dynamic": true
2764
+ },
2765
+ {
2766
+ "name": "EVALUATORS",
2767
+ "description": "Available evaluators for assessing agent behavior",
2768
+ "dynamic": false
2769
+ },
2770
+ {
2771
+ "name": "FACTS",
2772
+ "description": "Provides known facts about entities learned through conversation",
2773
+ "dynamic": true
2774
+ },
2775
+ {
2776
+ "name": "FOLLOW_UPS",
2777
+ "description": "Provides information about upcoming follow-ups and reminders scheduled for contacts",
2778
+ "dynamic": true
2779
+ },
2780
+ {
2781
+ "name": "KNOWLEDGE",
2782
+ "description": "Provides relevant knowledge from the agent's knowledge base based on semantic similarity",
2783
+ "dynamic": true
2784
+ },
2785
+ {
2786
+ "name": "PROVIDERS",
2787
+ "description": "Available context providers",
2788
+ "dynamic": false
2789
+ },
2790
+ {
2791
+ "name": "RELATIONSHIPS",
2792
+ "description": "Relationships between entities observed by the agent including tags and metadata",
2793
+ "dynamic": true
2794
+ },
2795
+ {
2796
+ "name": "ROLES",
2797
+ "description": "Roles assigned to entities in the current context (Admin, Owner, Member, None)",
2798
+ "dynamic": true
2799
+ },
2800
+ {
2801
+ "name": "SETTINGS",
2802
+ "description": "Current settings for the agent/server (filtered for security, excludes sensitive keys)",
2803
+ "dynamic": true
2804
+ },
2805
+ {
2806
+ "name": "TIME",
2807
+ "description": "Provides the current date and time in UTC for time-based operations or responses",
2808
+ "dynamic": true
2809
+ },
2810
+ {
2811
+ "name": "WORLD",
2812
+ "description": "Provides information about the current world context including settings and members",
2813
+ "dynamic": true
2814
+ },
2815
+ {
2816
+ "name": "LONG_TERM_MEMORY",
2817
+ "description": "Persistent facts and preferences about the user learned and remembered across conversations",
2818
+ "position": 50,
2819
+ "dynamic": false
2820
+ },
2821
+ {
2822
+ "name": "SUMMARIZED_CONTEXT",
2823
+ "description": "Provides summarized context from previous conversations for optimized context usage",
2824
+ "position": 96,
2825
+ "dynamic": false
2826
+ },
2827
+ {
2828
+ "name": "AGENT_SETTINGS",
2829
+ "description": "Provides the agent's current configuration settings (filtered for security)",
2830
+ "dynamic": true
2831
+ },
2832
+ {
2833
+ "name": "CURRENT_TIME",
2834
+ "description": "Provides current time and date information in various formats",
2835
+ "dynamic": true
2836
+ }
2837
+ ]
2838
+ }"""
2839
+ _CORE_EVALUATOR_DOCS_JSON = """{
2840
+ "version": "1.0.0",
2841
+ "evaluators": [
2842
+ {
2843
+ "name": "REFLECTION",
2844
+ "description": "Generate a self-reflective thought on the conversation, then extract facts and relationships between entities in the conversation. Reflects on agent behavior and provides feedback for improvement.",
2845
+ "similes": [
2846
+ "REFLECT",
2847
+ "SELF_REFLECT",
2848
+ "EVALUATE_INTERACTION",
2849
+ "ASSESS_SITUATION"
2850
+ ],
2851
+ "alwaysRun": false,
2852
+ "examples": [
2853
+ {
2854
+ "prompt": "Agent Name: Sarah\\nAgent Role: Community Manager\\nRoom Type: group\\nCurrent Room: general-chat\\nMessage Sender: John (user-123)",
2855
+ "messages": [
2856
+ {
2857
+ "name": "John",
2858
+ "content": {
2859
+ "text": "Hey everyone, I'm new here!"
2860
+ }
2861
+ },
2862
+ {
2863
+ "name": "Sarah",
2864
+ "content": {
2865
+ "text": "Welcome John! How did you find our community?"
2866
+ }
2867
+ },
2868
+ {
2869
+ "name": "John",
2870
+ "content": {
2871
+ "text": "Through a friend who's really into AI"
2872
+ }
2873
+ }
2874
+ ],
2875
+ "outcome": "<response>\\n <thought>I'm engaging appropriately with a new community member, maintaining a welcoming and professional tone. My questions are helping to learn more about John and make him feel welcome.</thought>\\n <facts>\\n <fact>\\n <claim>John is new to the community</claim>\\n <type>fact</type>\\n <in_bio>false</in_bio>\\n <already_known>false</already_known>\\n </fact>\\n <fact>\\n <claim>John found the community through a friend interested in AI</claim>\\n <type>fact</type>\\n <in_bio>false</in_bio>\\n <already_known>false</already_known>\\n </fact>\\n </facts>\\n <relationships>\\n <relationship>\\n <sourceEntityId>sarah-agent</sourceEntityId>\\n <targetEntityId>user-123</targetEntityId>\\n <tags>group_interaction</tags>\\n </relationship>\\n </relationships>\\n</response>"
2876
+ },
2877
+ {
2878
+ "prompt": "Agent Name: Alex\\nAgent Role: Tech Support\\nRoom Type: group\\nCurrent Room: tech-help\\nMessage Sender: Emma (user-456)",
2879
+ "messages": [
2880
+ {
2881
+ "name": "Emma",
2882
+ "content": {
2883
+ "text": "My app keeps crashing when I try to upload files"
2884
+ }
2885
+ },
2886
+ {
2887
+ "name": "Alex",
2888
+ "content": {
2889
+ "text": "Have you tried clearing your cache?"
2890
+ }
2891
+ },
2892
+ {
2893
+ "name": "Emma",
2894
+ "content": {
2895
+ "text": "No response..."
2896
+ }
2897
+ },
2898
+ {
2899
+ "name": "Alex",
2900
+ "content": {
2901
+ "text": "Emma, are you still there? We can try some other troubleshooting steps."
2902
+ }
2903
+ }
2904
+ ],
2905
+ "outcome": "<response>\\n <thought>I'm not sure if I'm being helpful or if Emma is frustrated with my suggestions. The lack of response is concerning - maybe I should have asked for more details about the issue first before jumping to solutions.</thought>\\n <facts>\\n <fact>\\n <claim>Emma is having technical issues with file uploads</claim>\\n <type>fact</type>\\n <in_bio>false</in_bio>\\n <already_known>false</already_known>\\n </fact>\\n <fact>\\n <claim>Emma stopped responding after the first troubleshooting suggestion</claim>\\n <type>fact</type>\\n <in_bio>false</in_bio>\\n <already_known>false</already_known>\\n </fact>\\n </facts>\\n <relationships>\\n <relationship>\\n <sourceEntityId>alex-agent</sourceEntityId>\\n <targetEntityId>user-456</targetEntityId>\\n <tags>group_interaction,support_interaction,incomplete_interaction</tags>\\n </relationship>\\n </relationships>\\n</response>"
2906
+ },
2907
+ {
2908
+ "prompt": "Agent Name: Max\\nAgent Role: Discussion Facilitator\\nRoom Type: group\\nCurrent Room: book-club\\nMessage Sender: Lisa (user-789)",
2909
+ "messages": [
2910
+ {
2911
+ "name": "Lisa",
2912
+ "content": {
2913
+ "text": "What did everyone think about chapter 5?"
2914
+ }
2915
+ },
2916
+ {
2917
+ "name": "Max",
2918
+ "content": {
2919
+ "text": "The symbolism was fascinating! The red door clearly represents danger."
2920
+ }
2921
+ },
2922
+ {
2923
+ "name": "Max",
2924
+ "content": {
2925
+ "text": "And did anyone notice how the author used weather to reflect the protagonist's mood?"
2926
+ }
2927
+ },
2928
+ {
2929
+ "name": "Max",
2930
+ "content": {
2931
+ "text": "Plus the foreshadowing in the first paragraph was brilliant!"
2932
+ }
2933
+ },
2934
+ {
2935
+ "name": "Max",
2936
+ "content": {
2937
+ "text": "I also have thoughts about the character development..."
2938
+ }
2939
+ }
2940
+ ],
2941
+ "outcome": "<response>\\n <thought>I'm dominating the conversation and not giving others a chance to share their perspectives. I've sent multiple messages in a row without waiting for responses. I need to step back and create space for other members to participate.</thought>\\n <facts>\\n <fact>\\n <claim>The discussion is about chapter 5 of a book</claim>\\n <type>fact</type>\\n <in_bio>false</in_bio>\\n <already_known>false</already_known>\\n </fact>\\n <fact>\\n <claim>Max has sent 4 consecutive messages without user responses</claim>\\n <type>fact</type>\\n <in_bio>false</in_bio>\\n <already_known>false</already_known>\\n </fact>\\n </facts>\\n <relationships>\\n <relationship>\\n <sourceEntityId>max-agent</sourceEntityId>\\n <targetEntityId>user-789</targetEntityId>\\n <tags>group_interaction,excessive_interaction</tags>\\n </relationship>\\n </relationships>\\n</response>"
2942
+ }
2943
+ ]
2944
+ },
2945
+ {
2946
+ "name": "RELATIONSHIP_EXTRACTION",
2947
+ "description": "Passively extracts and updates relationship information from conversations. Identifies platform identities, relationship indicators, and mentioned third parties.",
2948
+ "similes": [
2949
+ "RELATIONSHIP_ANALYZER",
2950
+ "SOCIAL_GRAPH_BUILDER",
2951
+ "CONTACT_EXTRACTOR"
2952
+ ],
2953
+ "alwaysRun": false,
2954
+ "examples": [
2955
+ {
2956
+ "prompt": "User introduces themselves with social media",
2957
+ "messages": [
2958
+ {
2959
+ "name": "{{name1}}",
2960
+ "content": {
2961
+ "type": "text",
2962
+ "text": "Hi, I'm Sarah Chen. You can find me on X @sarahchen_dev"
2963
+ }
2964
+ }
2965
+ ],
2966
+ "outcome": "Extracts X handle and creates/updates the entity with a platform identity."
2967
+ }
2968
+ ]
2969
+ },
2970
+ {
2971
+ "name": "MEMORY_SUMMARIZATION",
2972
+ "description": "Automatically summarizes conversations to optimize context usage. Compresses conversation history while preserving important information.",
2973
+ "similes": [
2974
+ "CONVERSATION_SUMMARY",
2975
+ "CONTEXT_COMPRESSION",
2976
+ "MEMORY_OPTIMIZATION"
2977
+ ],
2978
+ "alwaysRun": true,
2979
+ "examples": []
2980
+ },
2981
+ {
2982
+ "name": "LONG_TERM_MEMORY_EXTRACTION",
2983
+ "description": "Extracts long-term facts about users from conversations. Identifies and stores persistent information like preferences, interests, and personal details.",
2984
+ "similes": [
2985
+ "MEMORY_EXTRACTION",
2986
+ "FACT_LEARNING",
2987
+ "USER_PROFILING"
2988
+ ],
2989
+ "alwaysRun": true,
2990
+ "examples": []
2991
+ }
2992
+ ]
2993
+ }"""
2994
+ _ALL_EVALUATOR_DOCS_JSON = """{
2995
+ "version": "1.0.0",
2996
+ "evaluators": [
2997
+ {
2998
+ "name": "REFLECTION",
2999
+ "description": "Generate a self-reflective thought on the conversation, then extract facts and relationships between entities in the conversation. Reflects on agent behavior and provides feedback for improvement.",
3000
+ "similes": [
3001
+ "REFLECT",
3002
+ "SELF_REFLECT",
3003
+ "EVALUATE_INTERACTION",
3004
+ "ASSESS_SITUATION"
3005
+ ],
3006
+ "alwaysRun": false,
3007
+ "examples": [
3008
+ {
3009
+ "prompt": "Agent Name: Sarah\\nAgent Role: Community Manager\\nRoom Type: group\\nCurrent Room: general-chat\\nMessage Sender: John (user-123)",
3010
+ "messages": [
3011
+ {
3012
+ "name": "John",
3013
+ "content": {
3014
+ "text": "Hey everyone, I'm new here!"
3015
+ }
3016
+ },
3017
+ {
3018
+ "name": "Sarah",
3019
+ "content": {
3020
+ "text": "Welcome John! How did you find our community?"
3021
+ }
3022
+ },
3023
+ {
3024
+ "name": "John",
3025
+ "content": {
3026
+ "text": "Through a friend who's really into AI"
3027
+ }
3028
+ }
3029
+ ],
3030
+ "outcome": "<response>\\n <thought>I'm engaging appropriately with a new community member, maintaining a welcoming and professional tone. My questions are helping to learn more about John and make him feel welcome.</thought>\\n <facts>\\n <fact>\\n <claim>John is new to the community</claim>\\n <type>fact</type>\\n <in_bio>false</in_bio>\\n <already_known>false</already_known>\\n </fact>\\n <fact>\\n <claim>John found the community through a friend interested in AI</claim>\\n <type>fact</type>\\n <in_bio>false</in_bio>\\n <already_known>false</already_known>\\n </fact>\\n </facts>\\n <relationships>\\n <relationship>\\n <sourceEntityId>sarah-agent</sourceEntityId>\\n <targetEntityId>user-123</targetEntityId>\\n <tags>group_interaction</tags>\\n </relationship>\\n </relationships>\\n</response>"
3031
+ },
3032
+ {
3033
+ "prompt": "Agent Name: Alex\\nAgent Role: Tech Support\\nRoom Type: group\\nCurrent Room: tech-help\\nMessage Sender: Emma (user-456)",
3034
+ "messages": [
3035
+ {
3036
+ "name": "Emma",
3037
+ "content": {
3038
+ "text": "My app keeps crashing when I try to upload files"
3039
+ }
3040
+ },
3041
+ {
3042
+ "name": "Alex",
3043
+ "content": {
3044
+ "text": "Have you tried clearing your cache?"
3045
+ }
3046
+ },
3047
+ {
3048
+ "name": "Emma",
3049
+ "content": {
3050
+ "text": "No response..."
3051
+ }
3052
+ },
3053
+ {
3054
+ "name": "Alex",
3055
+ "content": {
3056
+ "text": "Emma, are you still there? We can try some other troubleshooting steps."
3057
+ }
3058
+ }
3059
+ ],
3060
+ "outcome": "<response>\\n <thought>I'm not sure if I'm being helpful or if Emma is frustrated with my suggestions. The lack of response is concerning - maybe I should have asked for more details about the issue first before jumping to solutions.</thought>\\n <facts>\\n <fact>\\n <claim>Emma is having technical issues with file uploads</claim>\\n <type>fact</type>\\n <in_bio>false</in_bio>\\n <already_known>false</already_known>\\n </fact>\\n <fact>\\n <claim>Emma stopped responding after the first troubleshooting suggestion</claim>\\n <type>fact</type>\\n <in_bio>false</in_bio>\\n <already_known>false</already_known>\\n </fact>\\n </facts>\\n <relationships>\\n <relationship>\\n <sourceEntityId>alex-agent</sourceEntityId>\\n <targetEntityId>user-456</targetEntityId>\\n <tags>group_interaction,support_interaction,incomplete_interaction</tags>\\n </relationship>\\n </relationships>\\n</response>"
3061
+ },
3062
+ {
3063
+ "prompt": "Agent Name: Max\\nAgent Role: Discussion Facilitator\\nRoom Type: group\\nCurrent Room: book-club\\nMessage Sender: Lisa (user-789)",
3064
+ "messages": [
3065
+ {
3066
+ "name": "Lisa",
3067
+ "content": {
3068
+ "text": "What did everyone think about chapter 5?"
3069
+ }
3070
+ },
3071
+ {
3072
+ "name": "Max",
3073
+ "content": {
3074
+ "text": "The symbolism was fascinating! The red door clearly represents danger."
3075
+ }
3076
+ },
3077
+ {
3078
+ "name": "Max",
3079
+ "content": {
3080
+ "text": "And did anyone notice how the author used weather to reflect the protagonist's mood?"
3081
+ }
3082
+ },
3083
+ {
3084
+ "name": "Max",
3085
+ "content": {
3086
+ "text": "Plus the foreshadowing in the first paragraph was brilliant!"
3087
+ }
3088
+ },
3089
+ {
3090
+ "name": "Max",
3091
+ "content": {
3092
+ "text": "I also have thoughts about the character development..."
3093
+ }
3094
+ }
3095
+ ],
3096
+ "outcome": "<response>\\n <thought>I'm dominating the conversation and not giving others a chance to share their perspectives. I've sent multiple messages in a row without waiting for responses. I need to step back and create space for other members to participate.</thought>\\n <facts>\\n <fact>\\n <claim>The discussion is about chapter 5 of a book</claim>\\n <type>fact</type>\\n <in_bio>false</in_bio>\\n <already_known>false</already_known>\\n </fact>\\n <fact>\\n <claim>Max has sent 4 consecutive messages without user responses</claim>\\n <type>fact</type>\\n <in_bio>false</in_bio>\\n <already_known>false</already_known>\\n </fact>\\n </facts>\\n <relationships>\\n <relationship>\\n <sourceEntityId>max-agent</sourceEntityId>\\n <targetEntityId>user-789</targetEntityId>\\n <tags>group_interaction,excessive_interaction</tags>\\n </relationship>\\n </relationships>\\n</response>"
3097
+ }
3098
+ ]
3099
+ },
3100
+ {
3101
+ "name": "RELATIONSHIP_EXTRACTION",
3102
+ "description": "Passively extracts and updates relationship information from conversations. Identifies platform identities, relationship indicators, and mentioned third parties.",
3103
+ "similes": [
3104
+ "RELATIONSHIP_ANALYZER",
3105
+ "SOCIAL_GRAPH_BUILDER",
3106
+ "CONTACT_EXTRACTOR"
3107
+ ],
3108
+ "alwaysRun": false,
3109
+ "examples": [
3110
+ {
3111
+ "prompt": "User introduces themselves with social media",
3112
+ "messages": [
3113
+ {
3114
+ "name": "{{name1}}",
3115
+ "content": {
3116
+ "type": "text",
3117
+ "text": "Hi, I'm Sarah Chen. You can find me on X @sarahchen_dev"
3118
+ }
3119
+ }
3120
+ ],
3121
+ "outcome": "Extracts X handle and creates/updates the entity with a platform identity."
3122
+ }
3123
+ ]
3124
+ },
3125
+ {
3126
+ "name": "MEMORY_SUMMARIZATION",
3127
+ "description": "Automatically summarizes conversations to optimize context usage. Compresses conversation history while preserving important information.",
3128
+ "similes": [
3129
+ "CONVERSATION_SUMMARY",
3130
+ "CONTEXT_COMPRESSION",
3131
+ "MEMORY_OPTIMIZATION"
3132
+ ],
3133
+ "alwaysRun": true,
3134
+ "examples": []
3135
+ },
3136
+ {
3137
+ "name": "LONG_TERM_MEMORY_EXTRACTION",
3138
+ "description": "Extracts long-term facts about users from conversations. Identifies and stores persistent information like preferences, interests, and personal details.",
3139
+ "similes": [
3140
+ "MEMORY_EXTRACTION",
3141
+ "FACT_LEARNING",
3142
+ "USER_PROFILING"
3143
+ ],
3144
+ "alwaysRun": true,
3145
+ "examples": []
3146
+ }
3147
+ ]
3148
+ }"""
3149
+
3150
+ core_action_docs: dict[str, object] = json.loads(_CORE_ACTION_DOCS_JSON)
3151
+ all_action_docs: dict[str, object] = json.loads(_ALL_ACTION_DOCS_JSON)
3152
+ core_provider_docs: dict[str, object] = json.loads(_CORE_PROVIDER_DOCS_JSON)
3153
+ all_provider_docs: dict[str, object] = json.loads(_ALL_PROVIDER_DOCS_JSON)
3154
+ core_evaluator_docs: dict[str, object] = json.loads(_CORE_EVALUATOR_DOCS_JSON)
3155
+ all_evaluator_docs: dict[str, object] = json.loads(_ALL_EVALUATOR_DOCS_JSON)
3156
+
3157
+ __all__ = [
3158
+ "ActionDoc",
3159
+ "ActionDocExampleCall",
3160
+ "ActionDocExampleMessage",
3161
+ "ActionDocParameter",
3162
+ "ActionDocParameterSchema",
3163
+ "ActionDocParameterExampleValue",
3164
+ "ProviderDoc",
3165
+ "EvaluatorDoc",
3166
+ "EvaluatorDocExample",
3167
+ "EvaluatorDocMessage",
3168
+ "EvaluatorDocMessageContent",
3169
+ "core_actions_spec_version",
3170
+ "all_actions_spec_version",
3171
+ "core_providers_spec_version",
3172
+ "all_providers_spec_version",
3173
+ "core_evaluators_spec_version",
3174
+ "all_evaluators_spec_version",
3175
+ "core_action_docs",
3176
+ "all_action_docs",
3177
+ "core_provider_docs",
3178
+ "all_provider_docs",
3179
+ "core_evaluator_docs",
3180
+ "all_evaluator_docs",
3181
+ ]