Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
yan-elena authored May 2, 2024
1 parent 5df872c commit ae10709
Showing 1 changed file with 27 additions and 15 deletions.
42 changes: 27 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,42 +2,54 @@

This repository provides a logging component of the multi-level explainability framework for multi-agent BDI systems. This component aims to capture snapshots and generate logs of the multi-agent system implemented using the `Jacamo` framework. The log file can be uploaded in the [Explanation Component](https://yan-elena.github.io/agent-explanation/) to explain the agent behaviour.

## Multi-level Explainability
## A Multi-Level Explainability Framework for Engineering and Understanding BDI Agent Systems

<img src="https://github.com/yan-elena/agent-logging/assets/78790594/30b7159b-bfd8-4983-b23a-841e34ab8aaf" width=50%>
<img src="https://github.com/yan-elena/agent-logging/assets/78790594/054d9927-5c17-4694-9f7f-04e363161e1f" width=50%>

The primary levels of abstraction identified in this study are as follows:
- The **Implementation Level**: a detailed narrative closely related to the Agent and Multi-Agent Systems for debugging and testing - for developers.
- The **Design Level**: a level that describes the agent behaviour regardless of its implementation for analysis and verification - for software architects and designers.
- The **Domain Level**: a high-level narrative that explains the behaviour with reference to the domain and requirements of the system - for users and domain experts.
- The **Implementation Level**: a detailed narrative closely related to the Agent and Multi-Agent Systems for debugging and testing.
- The **Design Level**: a level that describes the agent behaviour regardless of its implementation for analysis and verification.
- The **Domain Level**: a high-level narrative that explains the behaviour with reference to the domain and requirements of the system - *(work in progress)*.

## Requirements

Please use these version of Jason and JaCaMo in your multi-agent system project.

```
dependencies {
implementation 'io.github.jason-lang:jason-interpreter:3.2.1-SNAPSHOT'
implementation 'org.jacamo:jacamo:1.2-SNAPSHOT'
}
```

## Configuration

To use this logging component in your systems, you can follow the following configuration instructions.
To use the logging component as library in your systems, you can follow the following configuration instructions.

1. Add this library as a dependency in your project gradle file:
```
dependencies {
implementation 'io.github.yan-elena:agent-logging:0.1.0'
implementation 'io.github.yan-elena:agent-logging:latest'
}
```

2. In a **JaCaMo** project, configure the `ag-arch` and `ag-class` in your `.jcm` file as shown below for each agent you are interested in logging.
```
agent bob {
ag-arch: log.LoggerArch
ag-class: log.LoggerAg
}
agent bob {
ag-arch: log.LoggerArch
ag-class: log.LoggerAg
}
```

If you want to use it in a **Jason** project, follow this configuration in your `.mas2j` file:
```
agents:
bob agentArchClass log.LoggerArch
agentClass log.LoggerAg;
agents:
bob agentArchClass log.LoggerArch
agentClass log.LoggerAg;
```

3. Launch the application! The agent's logs generated as readable files (`.log`) and as `.json` files for use in the application for explanation are located in the `/log` folder.
3. Launch the application! The agent's logs generated as readable files (`.log`) and as `.json` files are located in the `/log` folder.
4. You can try our [web application](https://yan-elena.github.io/agent-explanation/), to explore the narrative of the system at multiple levels!

## Example

Expand Down

0 comments on commit ae10709

Please sign in to comment.