New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

agent-prototype

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

agent-prototype

an extendable agent for building multi agent systems

latest
Source
npmnpm
Version
2.0.6
Version published
Maintainers
1
Created
Source

agent-prototype

an extendable agent for building multi agent systems in javascript using prototypal inheritance.

methods

you must provide an event emitter via the constructor which is used as a global communication bus between agents.

listen(handler)

listen for messages on the bus (event emitter), accepts a function handler.

shout(message)

send a message to the communication bus, message can be an object or string.

spawn(bus)

spawn a new agent, optionally provide a communication bus (event emitter).

messages

Internally the agent uses the event emitter... with the following convention. To send a message from the outside just make sure to emit to the message channel and use the sender property to let others know who you are!


bus.emit('message', {
  sender: 'custom',
  message: 'hello from example!'
})

bus.on('message', console.log) // hear *ALL* messages in the system

example


var EventEmitter = require('events').EventEmitter
var bus = new EventEmitter()

var agentPrototype = require('agent-prototype')

var a = new agentPrototype(bus)
var b = new agentPrototype(bus)

a.listen(console.log)
b.listen(console.log)

setInterval(function () {
  var number = Math.round(Math.random()*11)
  bus.emit('message', { message: number, sender: 'environment' })
}, 1300)

extending example

This example shows how to add custom methods and extend the prototype.


var agentPrototype = require('agent-prototype')

var EventEmitter = require('events').EventEmitter
var bus = new EventEmitter()

var a = new agentPrototype (bus)

agentPrototype.prototype.custom = function () {
  return Math.random()
}

a.listen(function (data) {
  console.log('.', data.message)
  if (Math.random()>0.9) a.shout('hello world! from '+a.id)
})

setInterval(function () {
  bus.emit('message', {
  	message: Math.random(),
  	sender: 'environment'
  })
  console.log('..', a.custom())
}, 120)

bus.on('message', console.log)

topics

  • actors
  • multi agent systems

installation

npm i agent-prototype

Keywords

multi-agent-systems

FAQs

Package last updated on 12 Apr 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts