Agent.receive = function() { var events = JSON.parse(this.memory('events') || '[]'); this.log('memory is: (' + typeof events + '):' + JSON.stringify(events)); this.incomingEvents().forEach(function(event) { events.push(event.payload); }); this.memory('events', JSON.stringify(events)); }; Agent.check = function() { var events = JSON.parse(this.memory('events') || '[]'); this.log('memory is: (' + typeof events + '):' + JSON.stringify(events)); var len = events.length; var tags = (this.options('tags') || '').split(','); var count = parseInt(this.options('count'), 10) || tags.length; var delimeter = this.options('delimeter') || ','; var tagPrefix = this.options('tagPrefix') || this.options('tagprefix') || ''; if (len === 0) { return; } var idx = Math.floor(Math.random() * len); var event = events[idx]; event.tags = tags .sort(function() { return 0.5 - Math.random(); }) .slice(0, count) .map(function(tag) { return tagPrefix + tag; }) .join(delimeter); this.createEvent(event); };