Conversational Assistant, Virtual Agent / CAVA

CAVA is an architectural model expanding on the craze of conversational assistants today. There are two main components:

  1. a conversational assistant that runs locally,
  2. a virtual agent that runs constantly and remotely.

The assistant’s job is to take care of your immediate needs. The agent is always running, always working, always searching depending on what your assistant asks it to do.

The model is inspired somewhat from how Hollywood works. This relationship between the actor, assistant, and agent is core to CAVA. The assistant frequently gives the agent a task on behalf of the actor and checks in to get status. The agent also gives the actor tasks via the assistant.

Local Assistants

Actors have personal assistants who do everything from getting them their coats and making appointments to driving them around and giving them directions. They cannot be given really long tasks because they need to be available for other tasks with immediate urgency.

The assistant is implemented in multiple different languages so that it can run as close to the actor as possible, from a mobile phone, Discord or Slack session, or even the command line. Usually this will mean JavaScript / TypeScript. The assistant speaks human natural language as much as possible and JSON to communicate with the agent.

In some ways the assistant is like C3P0.

Remote Agents

Actors also have agents who are always working for the actor — and for others — who is frequently in contact with the actor’s assistant rather than the actor, but can be when needed. The agent’s job is to do long-running tasks like searching for new gigs, coordinating PR, and negotiating contracts. The agent is free to schedule time as needed so long as stuff gets done in a reasonable time frame.

The agent is implemented in the most robust, concurrent, enterprise-level language possible because maximum concurrent tasks are paramount. Usually this will mean Go do to the number of libraries supported and rich, concurrent, Internet-enabled standard libraries. The agent speaks nothing but JSON.

In some ways the agent is like R2D2.