Closed an-ca closed 7 years ago
Cog was designed to be a command line in your chat window and a lot of our other decisions fell out from that primary goal. You certainly could use Cog as a personal assistant and we actually use it at Operable to automate a variety of tasks, but there are some differences that you should know about when comparing it to other conversational personal assistant bots.
We don't plan on introducing natural language support because unix-style command pipelines are much more powerful, allow commands to be used in a composible way, and improve the granularity of how rules and permissions are assigned. That means instead of trying to ask the bot a question or give it a full sentence that it can parse and understand like Delete all Github issues tagged with "cog"
, you'd more likely be checking documentation of existing commands and composing them together to do what you want, like github:issue search --tag="cog" | github:issue delete $id
. With a conversational bot, you'd implement new functionality for every type of action you'd want it to be able to understand, so to close all issues as a naive example you'd look for a message that matches Close all Github issues tagged with (.*).
and then you'd implement an api call to find all those issues and delete each one. With Cog's command pipelines, you'd implement more primitive commands that can be used together, like issue search --tag=$tag
to find a list of issues with a specific tag, and a separate issue delete $issue_id
command that knows how to delete things. By using these together in a pipeline you can delete all issues with a given tag, but really you can delete any issue once you know it's id, and shouldn't have to reimplement that for say deleting all issues with a specific assignee.
Wiring Cog up to different chat providers isn't currently as easy as building a command bundle and requires writing Elixir, but it's pretty well isolated from the rest of the codebase since we have Slack and HipChat adapters already. Here are some notes on doing that if you're interested: https://github.com/operable/cog-book/blob/e8b42e84b8e67143ec83eeb5b7ae112fe51b7bb3/src/reference/chat_adapter_interface.adoc
Also feel free to ask any more questions in our Cog Public Slack.
Hey there,
I am not sure whether this is the right place to post this, I am sorry it it's inappropriate.
I'm currently looking into virtual personal assistants. I think it's unnecessary to reinvent the wheel so I started searching for a bot building framework and stumbled upon Cog.
Building personal assistants is clearly not the purpose of Cog. Still, Cog has some pros that make me consider it. Those mainly include that it's designed to be language agnostic, a design choice I haven't found in similar projects.
My questions I guess are:
Of course, if you are aware of projects which would be (more) suitable for this use case, let me know!
Many thanks.