The Go-KI software stack is intended to enable easy development of AI applications.
The focus here is particularly on the simple configuration and networking of various applications as well as their interoperability and reusability for future projects. In this way, the go-KI software stack is intended to help you quickly move from idea to solution.
At its core, the go-KI software stack is based on an open API for common good AI applications.
Modern technologies and standards are combined to form a new software framework. This is complemented by various tools for modeling, development, deployment and monitoring of applications, as well as directory services for reusable components, data, models and services.
By combining technologies such as RESTful microservices, container technologies and multi-agent systems...
The API (Application Programming Interface) is at the same time lightweight and language-independent and yet functional. The reference implementation of the platform has built-in security, traceability and explainability features that can be used in all applications developed for it. The API allows applications to be connected and executed in the cloud and on-premise.
The goal of OPACA (Open, Language- and Platform-Independent API for Containerized Agents) is to combine multi-agent systems with microservices and container-technologies using a simple, universal API, build around a set of simple design principles and requirements: Open, Standardized Interfaces, Being Language Agnostic, Modularity and Reusability, Self-Description, Dynamic Multi-Tenancy, and Distribution.
A multi-agent system in the OPACA approach consists of two types of components: Containerized applications implementing the OPACA API can provide different functionalities (actions) or interact with other components via messages, as well as providing all sorts of additional interfaces, for both users and external systems. Those applications are then managed by the OPACA Platform, which provides functions for deploying them to a specific environment as well as infrastructure services for e.g. authentication, directory services, user management, event logging, etc.
This way, OPACA makes it easier to deploy and connect heterogeneous systems consisting of components implemented using different agent-frameworks and/or non-agent components in different languages.
OPACA applications can be written in any programming language as long as they implement the API, so you can continue to use your favorite languages and tools for development. Once the application is created, OPACA provides a set of tools to help deploy and manage OPACA applications.
First, a custom command line interface (CLI) tool helps the developer to test his application on an OPACA platform by providing simple commands for development, deployment and interaction with the application. When the application is ready, it can be registered in the OPACA Image Registry, which provides extensive information about the different applications as well as search and filter functions, and can be linked to a specific OPACA platform to deploy a selected application to that platform with a single click. Finally, a generic web UI makes the interaction with the different agents running in an OPACA application very easy by automatically generating user-friendly input masks for invoking their different actions and capabilities.
In addition to these tools, we are developing several advanced tools for modeling new OPACA applications as well as for intuitive interaction with running applications: A BPMN editor integrates with the OPACA registry and running OPACA platforms to orchestrate and run existing OPACA applications with new applications. In addition, we are currently exploring various ways to integrate Large Language Models (LLM) into OPACA, which will enable natural language-based selection and orchestration of OPACA services as well as direct voice or chat-based interaction with any application implementing the OPACA API.