logoassistant-ui
Chat History

Chat History for LangGraph Cloud

Overview

With the help of assistant-cloud, you can add thread management and thread history capabilities to assistant-ui.
This guide will walk you through the process of integrating assistant-cloud with LangGraph Cloud.

Prerequisites

You need an assistant-cloud account to follow this guide.
You can sign up here: https://cloud.assistant-ui.com/

Setting up an assistant-cloud project

To get started, follow the steps below:

  • Create a new project on the assistant-cloud dashboard.
  • Navigate to the "Settings" tab and copy the Frontend API URL.
  • Add this URL to your .env file
NEXT_PUBLIC_ASSISTANT_BASE_URL=https://<your-frontend-api-url>

Connecting the runtime provider

Now that we have everything set up, let's write the code for the runtime provider.

The code below is a simple LangGraph runtime provider that uses the assistant-cloud API to create and manage threads.

const  = () => {
  const  = ();
  const  = ({
    : async function* () {
      const {  } = await .();
      if (!) throw new ("Thread not found");
 
      return ({ : ,  });
    },
    : async () => {
      const  = await ();
      return {
        :
          (.values as { ?: [] }). ?? [],
      };
    },
  });
 
  return ;
};
 
export function ({
  ,
}: <{
  : .;
}>) {
  const {  } = ();
 
  const  = (
    () =>
      new ({
        : .["NEXT_PUBLIC_ASSISTANT_BASE_URL"]!,
        : async () => ({ : "assistant-ui" }),
      }),
    [],
  );
 
  const  = ({
    ,
    : ,
    : async () => {
      const {  } = await ();
      return { :  };
    },
  });
 
  return (
    < ={}>
      {}
    </>
  );
}

Observe that the useMyLangGraphRuntime hook is extracted into a separate function. This hook will be mounted multiple times, once per active thread.

Displaying a ThreadList component

Now, you can add a ThreadList component to your application. This component will display a list of threads and allow users to switch between them.

npx shadcn@latest add "https://r.assistant-ui.com/thread-list"
<div className="grid grid-cols-[250px_1fr]">
  <ThreadList />
  <Thread />
</div>

On this page

Edit on Github