Skip to content

Latest commit

 

History

History
63 lines (44 loc) · 2.48 KB

README.md

File metadata and controls

63 lines (44 loc) · 2.48 KB

gul-zoe

An assistant bot for the gul.es non-profit organization.

Zoe performs repetitive, boring and time-consuming tasks that no one wants to do.

How it works

Zoe is basically a bunch of agents interchanging messages asynchronously. Each agent performs a few, small and well defined tasks like capturing statistics from the organization systems, sending emails, generating reports and controlling alarms.

Zoe can also receive commands from the system administrators to execute tasks on demand.

Directory structure

agents/                        The current Zoe agents
cmdproc/                       Defines the administrator commands in natural language
doc/                           General documentation
etc/                           Some config files
lib/                           Libraries
    bash/                      Zoe BASH bindings
    java/
        third_party/           Third party libraries 
        third_party_test/      Third party libraries for testing
        zoe/                   Zoe Java library
    python/                    Zoe Python library
logs/                          Guess what
mailproc/                      Defines the actions to execute when receiving mails
server/                        The Zoe server binaries. Sources are in https://github.com/voiser/gul-zoe-server
src/                           Some more python sources, tests and abandoned agents
tareas/                        Scripts to interact with the Zoe agents
var/                           Databases and stuff generated by agents
zoe.sh                         An example script to set up environment variables

Where Do I start

In the doc/ directory you will find documentation of

  1. the Zoe protocol, which is really simple
  2. the messages the agents accept
  3. the process of executing administrator commands in natural language

You should start reading the first section and having a look at the message definitions. It will take less than 5 minutes. There are some well documented example agents in:

lib/python/zoe/agents/example.py     (in Python)
agents/echo                          (in java)

Most of the agents are written in Python so you can take a look at their source code in the agents directory. The log and user agents are a good starting point because of their simplicity.

If you prefer Java, take a look at the twitter and echo agents. Probably the most interesting example is AnnotatedEchoAgent.java