docs: function Agent_onRequest(message) {
    var mName = message.name
  
    var cb = this._receiveCBs.get(mName)
  
    if (!cb) {
      message = {
        type:  "response",
        name:  mName,
        from:  this.info.id,
        id:    message.id,
        error: "agent does not handle messages named '" + mName + "'"
      }
  
      this._session._sendMessage(message)
      return
    }
  
    var agent = this
  
    try {
      cb(message.body, reply)
  
    }
    catch (e) {
      reply(err, null)
    }
  
    //-----------------------------------
    var replied = false
  
    function reply(err, body) {
      if (replied) return
      replied = true
  
      var rMessage = {
        type:  "response",
        name:  mName,
        from:  agent.info.id,
        id:    message.id,
        body:  body
      }
  
      if (err) rMessage.error = err
  
      agent._session._sendMessage(rMessage)
    }
  }