Skip to main content

AAAMBOS Framework

Architectures for Autonomous Agents: A Modular Basis with an Operating Supervisor

Docusaurus themed imageDocusaurus themed image

Supervision

AAAMBOS allows you to start and stop modules, view their state and last status, and provides insight into their execution.

Docusaurus themed imageDocusaurus themed image

Configuration

The run and arch(itecture) configs allow you to configure your agent, the internal modules, and communications easily and quickly. An arch config provides an easy to share format of the architecture, while the run config can contain agent specific and sensitive information such as agent name or keys, pwds, etc. With HyperPyYaml, AAAMBOS can reference Python classes, modules, and functions in an easy and friendly way.

Docusaurus themed imageDocusaurus themed image

Feature System

Extend or customize modules by providing and requesting features. Features can be enabled or disabled according to the architectural needs/requirements. Features are used to express the need for extensions, communications and kwargs.

Docusaurus themed imageDocusaurus themed image

Module Communication

The basis for communication between AAAMBOS modules can be easily replaced or combined with different backends, due to the abstraction to communication services. Communication promises and units define the communication capabilities. Data structures (wrappers) further organize the exchange.

Docusaurus themed imageDocusaurus themed image

Module Extensions

Reusable module capabilities can be encapsulated using module extensions. These are easily added and accessed.

Docusaurus themed imageDocusaurus themed image

Command Line Interface

AAAMBOS provides command line tools. Run, Create, Test, Discover and even more are planned.

Docusaurus themed imageDocusaurus themed image

Conventions

WIP Define your architectural ecosystem with conventions, e.g., for communication and configuration. Customize AAAMBOS by defining your own system, changing the internal behaviour completely or just extending the CLI commands.

Docusaurus themed imageDocusaurus themed image

GUIs for Agent Insights

Create simple GUIs for each module or monitor and interact with communication data from a central point. Define visualizations for data in text, image, plot or other formats. Currently, GUIs in AAAMBOS are based on the easy-to-use and comprehensive PySimpleGUI library.

Docusaurus themed imageDocusaurus themed image

Extensible & Reusable

Create your own architecture by creating and reusing AAAMBOS pkgs. They are easily referenced in the HyperPyYaml configs. The AAAMBOS comes with the std library which already contains a number of useful modules, extensions, and conventions.

Docusaurus themed imageDocusaurus themed image

Docs

AAAMBOS comes with different levels of documentation and learning content. At the top-level are blog posts with tutorials, recommendations, and examples. The next level is the "full-text" docs which contain examples and general usage instructions. Furthermore, the API documentation of AAAMBOS (core+std) and each AAAMBOS pkg provide specific and code-oriented documentation. Each AAAMBOS pkg comes with automatically generated API docs with pdoc per default. The blog and full-text docs are based on a docusaurus website.

Docusaurus themed imageDocusaurus themed image

Examples

We believe that learning by example is the easiest way to get started with a framework. AAAMBOS provides several architecture examples, and each pkg of a certain size should come with example configs that allow the new functionality of the pkg to be run individually.

Docusaurus themed imageDocusaurus themed image

Testing

WIP AAAMBOS and AAAMBOS pkgs come with automated unit and integration tests. Libraries such as pytest, hypothesis, ruff, etc. can help not only to find bugs, but also to improve code quality and standards.

Docusaurus themed imageDocusaurus themed image

Growing Pkg Pool

AAAMBOS has a growing ecosystem. New pkgs with modules, extensions and communication services make it easier to build complex architectures. Have a look at the pkg overview (WIP).

Docusaurus themed imageDocusaurus themed image

Different Execution Levels

WIP Currently, modules are executed in single processes. The plan is to provide the option to run modules only in different threads, or only asynchronously (asyncio).

Docusaurus themed imageDocusaurus themed image

Future Plans

AAAMBOS is still not where we want it to be. Future plans include, besides the ones already listed above, better dependency resolution for feature requests, searching for modules with needed features in the installed libraries (via entry points) or online, setting and enabling features in the config, OS independence testing, more communication services, implementation in a faster language (Rust),