Relational Agents are computer agents designed to form long-term, social-emotional relationships with their users. We are investigating the use of these agents in task domains in which human-agent relationships actually improve task outcomes, such as in coaching, counseling, psychotherapy and healthcare.

Litebody: Installation, Configuration and Deployment

The following document is a brief description of how to configure and deploy litebody along with its dialogue manager.

Servlet Deployment Overview

The project is to be deployed as a Java servlet and are deployed on the server using a compliant "servlet container". Further documentation would provide instructions specific to Apache Tomcat as a servlet container.

Block diagram

The above figure provides an overview on how the components interact with each other.

Minimum Server Requirements:

Setting up the server

Further instructions on setting up the litebody assumes installation of JRE and Tomcat on the server, and the Adobe Flash web-browser plugin on clients. The LiteBody server has been configured to use the FreeTTS or Loquendo (via their proprietary API) speech synthesizers; the following walks through installation with FreeTTS.

Add the following files in the lib folder of the Litebody TTS project.

From FreeTTS site, download the following files:

If you are using the FreeTTS engine, you will need to download the following jars from Tritonus site:

If you are using the Loquendo TTS engine, you will need to download and compile the following dlls/so. The files to compile the dlls/so can be found at here, then build the following .so or .dll files for based on your server's operating system:

Deploy a webAgent server

Deploy the Litebody Client

Please note that a sample configuration of the project is provided in the repository under the litebody-test folder.

Overview of web.xml

All configuration for litebody is done in the web.xml file. This example shows the general layout of the file. Note that the servlet standard gives a lot more possible configuration; this is just what we're using at the moment. Most of the interesting configuration is in the "init-param" elements.

<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns=""
  <display-name>Testing the new Litebody protocol</display-name>
    <!-- Additional parameters go here -->


Configuration Parameters

webframe.dialogue-managerREQUIREDfully-qualified class name of an implementation of the DialogueManager interface
webframe.user-managerNONEfully-qualified class name of an implementation of the UserManager interface; allows an app to customize things like user authentication.
webframe.log-managerNONEfully-qualified class name of an implementation of the LogManager interface; allows an app to customize logging conversation events.
webframe.session-timeout-minutes 10 minutesA conversation is considered to be terminated if there is no contact from a client within this time period
webframe.session-timeout-poll-minutesvalue of session-timeout-minutesthe litebody polls at this interval to check if any idle conversations should be terminated
webframe.tts.serverlocalhosthostname of TTS server
webframe.tts.port 7000 port# of TTS server
webframe.tts.voice Susan TTS voice to request from the TTS server
webframe.validate FALSE if true, outgoing messages are checked against the XML schema; this is good for debugging