Meet @argubot – the civil discourse bot


If you read my previous posts, you know that I am all about one-to-one discussion and civil discourse.

So instead of presenting another idea, like pending answers or commenters’ election, I am going to actually realize something.

Its going to be a chat bot that can be invited to a discussion and help people discuss. The name of the chat bot: Hamblin (after Charles Leonard Hamblin, who re-invented formal dialectics).

EDIT: Telegram forces you to add the prefix “bot” to your bot. And Hamblinbot or hamblin_bot would have been awfully long. So the name of the bot is going to be: @argubot. If you have a name suggestion, please reply.

@argubot has one major function: Storing positions :file_folder:. Any discussant can send it a proposition, like “minimum wage should depend on the cost of living” or an argument, like “minimum wage should depend on the cost of living, therefore minimum wage should be higher in New York than in Kenosha”. @argubot will then post this proposition by himself and ask for a position, like “I agree” or “I reject” or “I doubt it”… @argubot will save the answer to the discussant’s commitment store.

Storing positions might be a very powerful tool to foster a good discussion, because.

#1 You can identify agreements and disagreements (see @Burgos Guide #4)

#2 It might become apparent that your discussion partner did not understand your argument (see @Burgos Guide #3)

#3 Every discussion – even if you agree to disagree on the major premise – has a result: your commitment store. So no more fruitless debates! View your commitment store as a fruit-stand.

I had the idea for Hamblin a year ago, but only recently I thought of it as a chat bot. The timing might be right, because everybody is talking about the conversational interface now, that is so popular in China.

Unfortunately I am not a developer. But I know how to write a perl script and bit about variables, loops and conditionals. Maybe that is already enough to program @argubot. I watched a tutorial on developing a Telegram bot and it does not seem very hard. Telegram seems also especially fit, because they offer these custom keyboards which could be used for the positioning.

I hope you like the idea of @argubot :sweat_smile:. I am happy to discuss it further in this thread. Any programming help is appreciated.

First step: setting up my Telegram account.

See you @Christoph :wave:


The bot is running, but for now it just repeats what you send it. I have problems sending the custom keyboard :confused:

I will probably start over using this PHP wrapper for Telegram Bots:


Got the keyboard working without the SDK framework :triumph:. I still think it is a good idea to use it, because it might help me to store the answers. I have some problems configuring the framework, so joined this PHP Slack group for support. Very friendly community :hugging:.


This is all great, thank you for sharing your progress Christoph!


@nad, you seem to be interested in chat bots. What do you think of the @argubot concept. Will it work out?


How did you go about choosing the response options? I really like the “flawed” and "doubt options . The ability to challenge the basis of an assertion rather than the assertion itself is a huge part of nuance . Especially in shorter terms.


Hi Sydette,

thank you for asking.

The doubt option is for being skeptic or agnostic to a proposition. You doubt, if you simply are not convinced, but at the same time have no ground to reject it. It is very popular in “is there a god” debates. I think Russell’s Teapot would also apply to it. Doubting means that you don’t have a burden of proof. The one who is stating the proposition has the burden. If you reject the propostion, both discussants have a burden.

The can’t option is for everyone who

  • simply don’t have a position
  • know that they do not know enough to judge
  • find the propostion to generic to say anything about it
  • think that “it depends”

The flawed option is for sentences that aren’t a propositon, e.g. questions and such. Or for arguments that have some logical error.

Another project that asks for positions is the app brigade. The have the options agree, disagree and not sure. I don’t like the term “disagree” because it can mean: “I am not convinced its true” or “I am convinced its not true”. So I decided to split that into “doubt” and “reject”. I also do not like “not sure” because it sounds so weak. I want that people cant proudly shout: I can’t (maybe it should even be: I won’t?)

@sydette: Are those five options enough? What do you as a native speaker think about the wording?


I like the structure of your thinking a lot. Can’t has very disparate distinctions under it. The choice to have an option that represents abstaining from commenting due to genericness os statement is really interesting. I think it fits more in with the way English speakers feel about flawed. I think that “won’t” should be an option, and will take the burden of that off.

I really like Doubt as an option, however I wonder if there is a way to present Doubt and offer a modification for a more arguable proposition?

Thanks for mentioning burden .