An assistant bot for the gul.es non-profit organization.
Zoe performs repetitive, boring and time-consuming tasks that no one wants to do.
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.
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
In the doc/ directory you will find documentation of
- the Zoe protocol, which is really simple
- the messages the agents accept
- 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