Controllable Agents For RAG With Human In The Loop Chat

This demo from LlamaIndex is a good example of how the capabilities of agents and RAG are merging & how HITL can be used to solve for long running tasks.

Cobus Greyling
4 min readMay 27, 2024

--

Introduction

As I have written before, whenever RAG implementations need to address more complex inquiries it poses significant challenges, hence the need for agent-like implementations.

One major hurdle for agent implementations is the issue of observability and steerability.

Agents frequently employ strategies such as chain-of-thought or planning to handle user inquiries, relying on multiple interactions with a Large Language Model (LLM).

Yet, within this iterative approach, monitoring the agent’s inner mechanisms or intervening to correct its trajectory midway through execution proves challenging.

To address this issue, LlamaIndex has introduced a lower-level agent specifically engineered to provide controllable, step-by-step execution on a RAG (Retrieval-Augmented Generation) pipeline.

This demonstration underscores LlamaIndex’s goal of showcasing the heightened control and transparency that the new API brings to managing intricate queries and navigating extensive datasets.

Added to this, introducing agentic capabilities on top of a RAG pipeline can allow you to reason over much more complex questions.

Human-In-The-Loop

The Human In The Loop chat capabilities allows for a step-wise approach by a human via a chat interface. While it is possible to ask agents complex questions which demands multiple reasoning steps. These queries can be long running and can in some instances be wrong.

The HITL approach where questions are asked by the user allows for a more granular approach with human feedback after each step. These iterations are not long running and can be steered by the user. While the user is leveraging the agentic RAG capabilities.

LlamaIndex has a complete Colab notebook on this functionality, as seen below, the only change you will need to make is add your OpenAI API key:

import os
import openai
os.environ["OPENAI_API_KEY"] = "<Your OpenAI API Key Goes Here>"

The OpenAI LLM still acts as the backbone for the Agent.

--

--