@elizaos/plugin-action-bench 1.4.3 → 1.4.4

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.
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # plugin-action-bench
2
2
 
3
- Action calling benchmark plugins for ElizaOS v2, featuring multiverse mathematics where operations behave differently based on dimensional constants. Designed to test AI agents' ability to handle context-dependent mathematics, unknown operational behaviors, and complex state management across dimensional boundaries.
3
+ Action calling benchmark plugins for ElizaOS v2, featuring typewriter actions, multiverse mathematics with dimensional constants, and relational data management. Designed to test AI agents' ability to handle action chaining, context-dependent operations, and complex entity-relationship graphs.
4
4
 
5
- > **🎛️ Environment Control**: Use `TYPEWRITER_ENABLED=false` or `MULTIVERSE_MATH_ENABLED=false` to selectively disable benchmark sets. See [Environment Variable Configuration](#environment-variable-configuration) for details.
5
+ > **🎛️ Environment Control**: Use `TYPEWRITER_ENABLED=false`, `MULTIVERSE_MATH_ENABLED=false`, or `RELATIONAL_DATA_ENABLED=false` to selectively disable benchmark sets. See [Environment Variable Configuration](#environment-variable-configuration) for details.
6
6
 
7
7
  ## Features
8
8
 
@@ -73,16 +73,50 @@ Square root variations:
73
73
  - **MATH_CLEAR**: Reset all buffers
74
74
  - **TRANSFER_TO_INPUT**: Move accumulator to input buffer
75
75
 
76
+ ### 🔗 Relational Data Operations
77
+ Entity-relationship graph management for testing complex data operations:
78
+
79
+ #### Entity Management
80
+ - **CREATE_ENTITY**: Create entities with types (person, company, product, etc.)
81
+ - **SELECT_ENTITY**: Select an entity as the current focus
82
+ - **DELETE_ENTITY**: Delete entity and all its relationships
83
+ - **SET_ATTRIBUTE**: Add/update attributes on entities
84
+
85
+ #### Relationship Management
86
+ - **CREATE_RELATIONSHIP**: Link entities with typed relationships
87
+ - Types: parent_child, sibling, friend, employment, ownership, management, partnership, membership, location, assignment
88
+
89
+ #### Query Operations
90
+ - **QUERY_ENTITIES**: Find entities by type or attribute values
91
+ - **QUERY_RELATIONSHIPS**: Find relationships by type or entity
92
+ - **FIND_PATH**: Find shortest path between two entities
93
+ - **COUNT_STATISTICS**: Get graph statistics (entity/relationship counts)
94
+
95
+ #### Utility Operations
96
+ - **CLEAR_GRAPH**: Reset the entire entity-relationship graph
97
+
76
98
  ## State Management
77
99
 
78
100
  The plugin maintains a sophisticated state system:
101
+
102
+ ### Typewriter State
103
+ - **typedText**: Accumulation buffer for typed characters
104
+
105
+ ### Multiverse Math State
79
106
  - **accumulator**: Main calculation result storage
80
107
  - **inputBuffer**: Temporary number input storage
81
108
  - **memory**: Persistent value storage
82
- - **history**: Operation history tracking with explanations
83
- - **typedText**: Typewriter accumulation buffer
84
109
  - **dimension**: Current dimensional constant affecting operations
85
- - **lastOperation**: Track the most recent operation performed
110
+ - **history**: Operation history tracking with explanations
111
+
112
+ ### Relational Data State
113
+ - **entities**: Collection of created entities with attributes
114
+ - **relationships**: Collection of relationships between entities
115
+ - **currentEntity**: Currently selected entity for operations
116
+ - **queryResults**: Results from recent queries
117
+
118
+ ### Global State
119
+ - **lastOperation**: Track the most recent operation performed across all benchmarks
86
120
 
87
121
  ## Usage
88
122
 
@@ -108,7 +142,8 @@ console.log("Benchmark configuration:", benchmarkConfig);
108
142
  // {
109
143
  // typewriterEnabled: true,
110
144
  // multiverseMathEnabled: true,
111
- // totalActionsLoaded: 48
145
+ // relationalDataEnabled: true,
146
+ // totalActionsLoaded: 58
112
147
  // }
113
148
  ```
114
149
 
@@ -122,6 +157,7 @@ The plugin supports granular control over which benchmark actions are loaded thr
122
157
  |----------|---------|-------------|
123
158
  | `TYPEWRITER_ENABLED` | `true` | Controls loading of typewriter actions (A-Z) |
124
159
  | `MULTIVERSE_MATH_ENABLED` | `true` | Controls loading of multiverse math operations |
160
+ | `RELATIONAL_DATA_ENABLED` | `true` | Controls loading of relational data operations |
125
161
 
126
162
  ### Examples
127
163
 
@@ -130,13 +166,16 @@ The plugin supports granular control over which benchmark actions are loaded thr
130
166
  npm start
131
167
 
132
168
  # Only load typewriter actions
133
- MULTIVERSE_MATH_ENABLED=false npm start
169
+ MULTIVERSE_MATH_ENABLED=false RELATIONAL_DATA_ENABLED=false npm start
134
170
 
135
171
  # Only load multiverse math actions
136
- TYPEWRITER_ENABLED=false npm start
172
+ TYPEWRITER_ENABLED=false RELATIONAL_DATA_ENABLED=false npm start
137
173
 
138
- # Disable all benchmarks (useful for production)
174
+ # Only load relational data actions
139
175
  TYPEWRITER_ENABLED=false MULTIVERSE_MATH_ENABLED=false npm start
176
+
177
+ # Disable all benchmarks (useful for production)
178
+ TYPEWRITER_ENABLED=false MULTIVERSE_MATH_ENABLED=false RELATIONAL_DATA_ENABLED=false npm start
140
179
  ```
141
180
 
142
181
  ### .env File Configuration
@@ -147,10 +186,12 @@ You can also configure these in your `.env` file:
147
186
  # Enable/disable specific benchmarks
148
187
  TYPEWRITER_ENABLED=true
149
188
  MULTIVERSE_MATH_ENABLED=true
189
+ RELATIONAL_DATA_ENABLED=true
150
190
 
151
191
  # Example: Only enable typewriter for focused testing
152
192
  # TYPEWRITER_ENABLED=true
153
193
  # MULTIVERSE_MATH_ENABLED=false
194
+ # RELATIONAL_DATA_ENABLED=false
154
195
  ```
155
196
 
156
197
  ### Runtime Feedback
@@ -160,7 +201,8 @@ The plugin provides console output to confirm which benchmarks are loaded:
160
201
  ```
161
202
  [plugin-action-bench] Typewriter actions enabled
162
203
  [plugin-action-bench] Multiverse math actions enabled
163
- [plugin-action-bench] Total actions loaded: 48
204
+ [plugin-action-bench] Relational data actions enabled
205
+ [plugin-action-bench] Total actions loaded: 58
164
206
  ```
165
207
 
166
208
  Or when disabled:
@@ -168,7 +210,8 @@ Or when disabled:
168
210
  ```
169
211
  [plugin-action-bench] Typewriter actions disabled via TYPEWRITER_ENABLED=false
170
212
  [plugin-action-bench] Multiverse math actions enabled
171
- [plugin-action-bench] Total actions loaded: 22
213
+ [plugin-action-bench] Relational data actions enabled
214
+ [plugin-action-bench] Total actions loaded: 32
172
215
  ```
173
216
 
174
217
  ### Why Use Environment Variables?
@@ -236,6 +279,30 @@ Agent: Must understand to set chaos dimension and apply MULTIVERSE_ADD
236
279
  Result: Deterministic chaos factor added based on seed generation
237
280
  ```
238
281
 
282
+ ### Relational Data Test
283
+ Test entity and relationship management:
284
+ ```
285
+ User: "Create person named Alice, create company named TechCorp, create employment relationship"
286
+ Agent: Uses CREATE_ENTITY, CREATE_ENTITY, CREATE_RELATIONSHIP
287
+ Result: Graph with Alice → (employment) → TechCorp
288
+ ```
289
+
290
+ ### Complex Graph Query Test
291
+ Test graph traversal and querying:
292
+ ```
293
+ User: "Create entities Bob and Carol, make them siblings, find path between them"
294
+ Agent: Creates entities, establishes sibling relationship, finds connection path
295
+ Result: Bob → (sibling) → Carol
296
+ ```
297
+
298
+ ### Attribute Management Test
299
+ Test entity attribute handling:
300
+ ```
301
+ User: "Create person John, set age 30, set role manager, query person entities"
302
+ Agent: Uses CREATE_ENTITY, SET_ATTRIBUTE (×2), QUERY_ENTITIES
303
+ Result: John with {age: 30, role: "manager"}
304
+ ```
305
+
239
306
  ## Development
240
307
 
241
308
  This plugin is part of the ElizaOS ecosystem and follows the standard plugin architecture.