Viable System Agent


The Viable System Agent, or VSA is a software implementation of the Viable System Model (VSM), a model for autonomous systems developed by Stafford Beer. The VSA provides structure, communications, auditing and alerting as defined in the VSM. The VSA is intended to facilitate creating and managing autonomous software systems. Think of the VSA as common instrumentation and communications for autonomous agents. There is a short presentation on some of the goals and terminology of the project. There is also an overview with additional information.

Project status


The model classes are in Smalltalk, along with unit tests. Most of the work has been on the autonomics in systems 1, 2 and 3. They are presently available only as API's. There is no user interface, beyond the Squeak and Pharo development environments. See how to create VSA objects and run their methods in these example workspaces. The unit tests all pass in Squeak 4.4 and Pharo 2.0, along with a number of earlier versions of both Squeak and Pharo.

VSM Support

The current version of the VSA has a number of basic Viable System Model (VSM) features. Software classes for systems 1-5 have been implemented. The VSM arithmetic for productivity, latency and performance is done. System 3 has some basic auditing capabilities for monitoring its subordinate operations. Simple delta (algedonic) alerting has been implemented. Inter-system communications between the 1-5 systems has been implemented.

A history mechanism was added that can keep a record of actuality, capability and potentiality over time. System 3 has the capability to "snapshot" its collection of operations and send the copy to system 4. System 4 can take this copy and run a simulated version of the system to aid in determining potentiality.

How to get it

You may add the VSA and examples via Monticello using the following HTTP configuration:

location: ''
user: ''
password: ''

The VSA, documentation and example applications are released under the simplified BSD license.





Back to my home page.