Explainable Agent Patterns (XAG)

Building eXplainable by design agents...

View project on GitHub

XAgProcess Event Overview

The XAgProcess proposes a uniform format to notify XAg decision processes. The initial format was proposed as part of the TriQPAN pattern.

Message Format

Version 0: SARL implementation

event XAgentProcess {
	val implementation : Class<? extends AgentTrait>
	val name : String
	val trigger : Event
	val triggerClass : Class<? extends Event>

	val criteria : Map<String, Object> = newHashMap
	val queries : Map<String, Object> = newHashMap
	val actions : Map<String, Object> = newHashMap
	
	new(name: String, impl : Class<? extends AgentTrait>, trigger : Event) {
		this.implementation = impl
		this.trigger = trigger
		this.triggerClass = this.trigger.class
		this.name = name
	}
}

Version 1: Standard Protobuf

A new version of the XAgProcess event based on Protobuf is being develop.

Definition and APIs are located in its own repository XAgProcess Protobuf

Version 1 is still under development. To have early access, please contact Sebastian Rodriguez

Streams

Streams are provided for researchers to explore query languages and explanation engines; human-machine interfaces; and (improved) XAg notification event formats.

Version 0 Message Format

To import streams to EventStore, follow the following steps:

  1. Download the streams
  2. Download the Event Store Transfer Tool (Python 3.6 or higher and the `requests` library are required)
  3. Ensure your intended EventStore is online.
  4. Run the tool. This can be done through interactively (eg `python access-stream.py`) or through the command line (eg `python access-stream.py -m import -sn coffee-example -f coffee_example.tar.xz`)

Examples