Conversation Augmentation: Chat Mediator Bot

Reduce anger and improve two-way human-to-human conversations with the help of a mediating/moderating chatbot. This particular bot blocks angry messages which have a bad sentiment score from being delivered to the other chat participant.

See for more information!

Augmentation by encouraging more positive messages

Screenshot showing an example conversation where one message gets blocked

  • In a person-to-person conversation, each message is inspected by the mediating chatbot before being passed on.
  • Each message is given a sentiment score using a word-by-word analysis.
  • A negative score indicates that the message is aggressive.
  • Very aggressive messages are blocked by the mediator, and never seen by the other chat participant.
  • The chat user is instead encouraged to write a nicer message, which would then be delivered.
  • This way the most blatant aggressiveness can be avoided, and hopefully slowing down or stopping a downward agressiveness spiral.

Here is an example conversation between me (Joel Purra) a friend (“they”), in a chat session through a mediator bot called @botanist. The other human’s responses are prefixed with “they said.” One of my messages gets blocked with a notice from @botanist.

Screenshot showing an example conversation where one message gets blocked


In order to run the chatbot you need Node.js, a new Slack bot user token, and a MongoDB server.

# Install dependencies.
npm install

# Run and open the chatbot server and UI/editor.
npm run --silent start

# Now use the UI to configure:
#  - your slack bot token
#  - your mongodb connection

# Chat with your bot through slack!

Have a civilized conversation

  • Open a private window with your bot
  • You can start session demo
  • Let someone else join session demo
  • Chat with reduced aggressiveness!
    • Most messages are let through.
    • Messages with “aggressive” words, such as curse words are blocked.


All bot development was made using the visual editor in node-red using nodes from the node-red-contrib-chatbot plugin/addon. It’s all running locally, using the commands above, and it’s really, really, really easy to improve the bot without programming. Here’s an example of “visual code” in the main flow:

Screenshot showing the main flow in node-red


Created at the hackathon in at the TLGG offices 2016-11-18–20. Thanks to Karolin Rühlmann, Liron Tocker, all others who helped out, as well as the hackathon organizers.

Copyright © 2016 Joel Purra. All rights reserved.

When using the conversation-augmentation-chat-mediator-bot source code, comply with the GNU Affero General Public License 3.0 (AGPL-3.0).