Chatbots are a powerful tool as a universal UX to solving automation issues at scale. Like the web before, followed by mobile applications, chatbots are very good at providing an easy-to-use interface for end users to effortlessly perform repetitive or complex actions in a natural interface.
Introducing CSML, a new programming language for conversational design
The Clevy team is proud to release today a new solution to this long-standing problem in an open beta program: the Conversational Standard Meta Language (CSML), a common language for all chatbots.
CSML’s objective is to make designing conversational experiences as intuitive as possible, drastically reducing the time and costs to create and deploy any chatbot at scale compared to all existing platforms and make it as easy as possible to connect any human with any machine.
Written itself in Rust (a low-level, fast, memory-efficient and safe programming language), and fully Turing-complete, the CSML acts as a linguistic/syntactic abstraction layer, designed for humans who want to let other humans interact with any machine, in any setting. The syntax is designed to be learned in a matter of minutes, but also scales to any complexity of chatbot.
CSML automatically does the heavy-lifting of all conversational concepts without any added complexity for the developer: memory, context, metadata, message formatting for the target channels, conversational logic, interoperability with third-party systems, API-agnostic integrations…
The documentation of the language is publicly available on https://docs.csml.dev. We also provide a free, full-featured development studio (REPL) on https://studio.csml.dev.
All conversations start with a common language
The principle used by CSML is to treat the entire conversation as a series of separate events, linked by the same conversational context, instead of request by request. Each event is a reaction — potentially cumulatively — to the event preceding it; a trigger for an event that must follow it; or totally independent.
Nominally, the language itself is structured like the train of thought of a young child: everything is sequential and consists of descriptions. When asking a child about their day, they would usually answer somewhat like:
I went to school, and then I had lunch, where I ate a steak and fries, then I played with my friend Kevin, and then we had ice cream.
This also means that after this last part, the conversation can end there, continue (“do you like ice cream?”) or a new subject can be picked up (“let’s go to the swimming pool now”). The sequential nature of a child’s reasoning makes a great comparison with how current chatbots can handle conversations: as a stream of individual bits of information, that can either be taken independently, or attached to other bits of information in a sequence.
Either way, a child learns from their interactions. The more the bot chats with the user, the more it learns about the user and their preferences. Everything is memorized and saved in the bot’s memory about the user to be reused later, so that no information needs to be asked twice.
We have worked for many months with computational linguists to transpose this inherent logic of natural conversations (and not just natural language) into the CSML. The result is an incredibly simple and natural framework to build just any chatbot about as easily as imagining a conversation.
A simple CSML chatbot flow to receive non-stop cat gifs 😸
Connecting humans with any machine
The immediate benefit is that CSML makes it possible to reuse existing code with no or very little modifications, or use built-in connectors with popular systems (ServiceNow, SAP, Microsoft Office 365, Zapier, Workday, Salesforce…) or communication channels (Messenger, Teams, Slack, Workplace, Discord, Skype, Hangouts, Alexa, Google Home, Twilio, websockets…).
CSML is open-source
We are committed to helping the community benefit from this new programming language as much as possible.
To ensure that any entity, company or person, involved in a conversational program, can commit to using this new game-changing language, we will be releasing the full CSML source code in the coming months.
Chatbots are no more than natural interfaces to machines. As a language dedicated to creating chatbots easily, the CSML engine natively includes a modern package system, allowing developers to create, share, or download reusable bots or parts of bots. We will also be providing original content (bots, functions, integrations…) in the form of plugins, that can be added to any bot as installable dependencies.
CSML is secure
One of the side-effects of open-sourcing the CSML is that you can ensure that nobody can ever access your previous customer data by running it on your own servers. Some of our early users have been using the CSML in entirely private environments, sometimes even inaccessible from the internet; others prefer to run it in their own cloud environment: by default, CSML comes with easy-to-use bindings to AWS services like DynamoDB for storing the bot’s databases and AWS Lambda to execute code in any major programming language, in addition to SQLite and FaaS platforms like OpenFaas or FnProject for custom runtime executions. The CSML engine also comes with easy-to-deploy, stateless Docker containers.
In addition to network separation and deployment flexibility, one of the leading design principles of CSML has been to ensure that all data is stored safely and securely: by default, all sensitive user data is stored encrypted using strong 256-bit AES encryption — the gold standard for military-grade encryption.
CSML is scalable
CSML is built with large enterprises in mind, who want to go beyond the proof-of-concept phase without inducing immense development and product management costs, while not limiting themselves in what they can or can not do with their chatbot. We want to empower developers to create what they want without technical barriers. We want to make sure that CSML chatbots can accept any number of conversations. We want to make CSML available in the cloud, on-premises, or even offline.
The architecture of the CSML engine was designed to address all these constraints and handle any number of conversation, from a few to a few millions, without any restriction. Small bots can be created in minutes, then expanded to any arbitrary size of enterprise-grade bots later. With CSML, you are in control of your chatbot development project with very little boilerplate and a standardized lifecycle and development process, maximizing return on investment for your team.
Build your CSML chatbot in minutes!
If you are intrigued by this new language, give it a try! You can setup your chatbot in minutes by signing up for free to the beta at https://studio.csml.dev.
Top comments (3)
Misleading title. It's not open-source as you mentioned "we will be releasing the full CSML source code in the coming months"
I understand the frustration and I'm sorry about that. The language will indeed be open source, and in the close future when people stumble on this article, it will not be as misleading... We wrote this article (originally on medium) around mid-November and I just reposted it here yesterday without changing the dates. It's just a matter of days now!
We are close enough so that I can give manual access to the source code right now to anyone who wants to see it now, but still need to cleanup some things before we release it entirely. Some emergencies (both personal and professional), as well as the strikes in Paris and the seasonal illnesses of team members annihilated our efforts to release it before Christmas :-(
Thanks for commenting in any case and I hope you have a look at this later! :-)
Circling back here: we released the code on github :-)
Easiest way to try it is on our dev studio here: studio.csml.dev/auth/register