Lurawi Agents
Project description
Lurawi - An Agent Workflow Orchestration Engine
Table of Contents
- Introduction
- Key Features
- Quick Start
- Installation
- Working with the Lurawi Agent Workflow Visual Editor
- Next Steps
- Notes
Introduction
Lurawi is a NoCode/LowCode development environment designed for building sophisticated agent-based workflows. It empowers Machine Learning (ML) and Generative AI (GenAI) engineers to interactively design, experiment with, and implement complex workflows with minimal effort. The output of this process is an XML/JSON-based data file, ready for deployment and execution on the Lurawi runtime engine within a container image. This containerized solution can be seamlessly deployed in cloud environments such as AWS.
Key Features
- Visual Workflow Design: Compose workflows intuitively using a drag-and-drop interface on a canvas.
- Minimal Coding: Leverage visual construction to build workflows, significantly reducing the need for traditional programming.
- Modular and Extensible Architecture: Extend system capabilities by encapsulating functionalities within modular custom function classes.
- Unified REST API Specification: Access a comprehensive, out-of-the-box REST API. Refer to the API Specifications for details.
- Cloud-Ready Deployment: Easily deploy workflows as Docker containers in environments like AWS.
- Lurawi-in-a-Box: A self-contained Docker image providing a fully functional Lurawi system for local execution, requiring only Docker Desktop.
- Lurawi Agent: Run Lurawi as an agent that can run either independently or integrate with popular agent ecosystems.
The following sections provide detailed instructions on how to experiment with Lurawi using the prebuilt Docker image.
Quick Start
Use Local Code Repository
git clone https://github.com/kunle12/lurawi.git
cd lurawi
source .env.example
bin/lurawi dev
Use Prebuilt Docker Image
docker pull kunle12/lurawi:latest
docker run -d \
-p 3031:3031 \
-p 8081:8081 \
-e PROJECT_NAME={YOUR_PROJECT_NAME} \
-e PROJECT_ACCESS_KEY={YOUR_ACCESS_KEY} \
kunle12/lurawi:latest
Replace {YOUR_PROJECT_NAME} and {YOUR_ACCESS_KEY} with your registered project details.
Fast forward to use visual editor to build workflow section.
Installation
NOTE: For advanced setup, including a VS Code Development Container configuration, please refer to Lurawi setup as VS Code Dev Container.
Prerequisites
Ensure your workstation supports virtualization and has Docker Desktop installed.
Pulling the Lurawi Docker Image
To obtain the latest Lurawi Docker image, execute the following command:
docker pull kunle12/lurawi:latest
Upon successful download, the kunle12/lurawi:latest image will be available in your Docker Desktop environment.
Launching the Lurawi Docker Container
To launch the Lurawi container, you can use the Docker Desktop UI by clicking the "Play" button under "Actions" for the kunle12/lurawi:latest image.
Important:
- Bind your local machine ports
3031and8081to the container's respective ports. - Set the
PROJECT_NAMEandPROJECT_ACCESS_KEYenvironment variables to your registered project name and access key.
After launching, you should observe container logs in Docker Desktop similar to the example below, indicating a successful startup:
Working with the Lurawi Agent Workflow Visual Editor
Open your preferred web browser and navigate to http://localhost:3031 to access the Lurawi Agent Workflow Visual Editor:
Loading an Example Workflow
Download the example workflow file: lurawi_example.xml.
In the visual editor, click the button to load this file. The editor will then display the example workflow. Remember to update the model name (highlighted in red in Fig. 4) to a model assigned to your project.
Dispatching the Workflow
To dispatch the current workflow to the Lurawi runtime server (running in the Docker container) for testing, click the button.
Viewing Generated Code
Navigate to the Code tab (Fig. 6) to view the JSON-based code dynamically generated from the visual blocks in the Blocks tab. The visual blocks serve as the source code, while the JSON code represents the compiled, executable program. If the visual block program contains errors, the Code tab will display error messages instead of valid JSON. In such cases, switch back to the Blocks tab to rectify the errors, then return to the Code tab for validation.
Testing the Workflow
Click the button to open a new tab to the Lurawi test console (Fig. 7) and begin interacting with your workflow by typing questions or messages.
Note on Test Console Payload: This test console is specifically designed for the following input payload structure:
{
"uid": "client/user id",
"name": "client name",
"session_id": "optional client provided session id",
"data" : {
"message": "a text prompt message"
}
}
If you modify the data payload structure within your workflow, the test console may no longer function as expected. For workflows with custom data structures, use curl or other REST API testing tools to call the endpoint at http://localhost:8081/projects/{your_project_name}/message.
Saving the Workflow
Click the button to download the finalized workflow from the visual editor. You can download two files: an XML file from the Blocks tab (containing the visual block code) and a JSON program code file from the Code tab (used by Lurawi for execution).
It is recommended to save both files in a version-controlled repository, such as GitHub. With a properly configured CI/CD pipeline (e.g., GitHub Actions), a custom Docker image can be automatically built and deployed to production environments.
Next Steps
The Lurawi agent workflow visual editor is built upon Google Blockly. If you are new to block-based coding, it is highly recommended to familiarize yourself with its mechanics through tutorials, such as those provided by Scratch.
Once comfortable with block-based programming, delve into:
-
Lurawi Specific Block Concepts for an understanding of core Lurawi block principles.
-
Lurawi Prebuilt Custom Blocks for detailed descriptions of prebuilt custom function blocks.
-
Advanced: RAG Reference Implementation in Lurawi for a concrete example of a Retrieval-Augmented Generation (RAG) implementation.
-
Advanced:
LurawiAgentfor running Lurawi workflow as an independent agent.
Lurawi's capabilities are extensible via a plug-in mechanism, allowing integration with third-party systems. Explore Advanced: How to Create Lurawi Custom Action Primitives to learn more.
Finally, review the Advanced: End-to-end Lurawi Development example for a comprehensive development cycle overview.
Notes
- Lurawi Code Repository: https://github.com/kunle12/lurawi
- Luwari Examples Repository: https://github.com/kunle12/lurawi-code-examples for more examples.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lurawi_agent-0.0.1.tar.gz.
File metadata
- Download URL: lurawi_agent-0.0.1.tar.gz
- Upload date:
- Size: 79.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ac0c9727e322c377288cdb97d040e8ef3563ecbb96e4221490644e6909242be8
|
|
| MD5 |
96d792eba32a8fdd146960e8dd8e88ef
|
|
| BLAKE2b-256 |
abd27a52f315ec35f72eb22dabbc6a2114aa33686ee43e2b9fb6d1c49a41742a
|
File details
Details for the file lurawi_agent-0.0.1-py3-none-any.whl.
File metadata
- Download URL: lurawi_agent-0.0.1-py3-none-any.whl
- Upload date:
- Size: 93.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da2e356265babcf4f2c3e693101a2ef4022c9540c27dba53694b3f6395cdad99
|
|
| MD5 |
f1bf43a0df457da254aa8c2a2cab19ae
|
|
| BLAKE2b-256 |
a051b228c88b5aa606b847613ee43f959556ddaf16d8f95ae796caacb83e09ae
|