Sykobot is a next-gen AI, programmed in a next-gen language. It's aimed at being very easily extensible.
Sykobot is developed on GNU/Linux. It should, however, work on any Unix-like system with a Common Lisp compiler. It has been tested and confirmed to work on SBCL, Clozure CL, and Allegro CL Express. If you run sykobot on another platform, please let us know.
- Sheeple
- html-entities
- cl-irc
- cl-pprce
- bordeaux-threads
- drakma
- cl-store
- cl-json
You need a Common Lisp compiler to run sykobot, along with several dependencies.
Most of the dependencies can be installed with clbuild, available via darcs: darcs get http://common-lisp.net/project/clbuild/clbuild cd clbuild chmod +x clbuild ./clbuild check (this checks for various programs that help clbuild; they are: cvs, svn, wget, and darcs)
You should let clbuild install all dependencies of each system.
./clbuild install html-entities
./clbuild install cl-irc
./clbuild install cl-pprce
./clbuild install bodeaux-threads
./clbuild install cl-store
./clbuild install cl-json
Now we need to download sheeple and sykobot itself -- through git. git clone git://github.com/sykopomp/sykobot.git git clone git://github.com/sykopomp/sheeple.git cd /path/to/clbuild/systems ln -s /path/to/sheeple.asd ln -s /path/to/sykbot.asd
Sykobot is still in development, although it already has quite a few features. Sykopomp's master branch on github has the latest tagged release, although you can pull from the devel branch for the Bleeding Edge Experience. We promise, it'll make more than just your edge bleed.
Sykobot has quite a few modules already, including:
- Search -- A simple google search
- Facts -- A simple parser extracts "facts" from the flow of chatter.
- Quotes -- A facility for grabbing quotes that people in the channel say.
- Kiloseconds -- The current time, in kiloseconds.
- Memos -- Leave a message for somebody else, to be delivered when they next speak.
- ELIZA -- a full-fledged simple ELIZA implementation, so you can chat away with your new friend.
- Karma -- Who's been naughty? Who's been nice? The karma system is weighted.
- Seen -- That command that's been on minion's TODO list since the dawn of time.
- And more...
Currently, the best way to get setup using and hacking sykobot is to ask for help at #sykosomatic on freenode. The developers are distributed across timezones and are always glad to help.
- If you think something is a bug, first try to replicate it and get backtraces.
- Report the bug at irc or at the issue tracker.
Common Lisp's "trace" can also be helpful for catching bugs. If you're not worried about massive amounts of REPL output, evaluate the following immediately after loading the sykobot system:
On SBCL:
(trace "SYKOBOT")
On Clozure CL:
(trace (:package sykobot))