code: func CallPlugin(p *Plugin, in *Msg, followup bool) (resp string,
  	stateMachineAnswered bool) {
  
  	if p == nil {
  		return "", false
  	}
  	if !followup {
  		p.SM.Reset(in)
  	}
  	return p.run(in)
  }
docs: // CallPlugin sends a plugin the user's preprocessed message. The followup bool
  // dictates whether this is the first consecutive time the user has sent that
  // plugin a message, or if the user is engaged in a conversation with the
  // plugin. This difference enables plugins to respond differently--like reset
  // state--when messaged for the first time in each new conversation.