Deep Agents
Leverage LangGraph Deep Agents to build sophisticated agentic applications.
Deep Agents has been promoted to its own top-level integration. Head to the Deep Agents integration for the full documentation.
Prerequisites#
Before you begin, you'll need the following:
- An OpenAI API key
- Node.js 20+
- Your favorite package manager
- A LangSmith API key - only required if deploying to LangSmith Platform
Getting started#
Initialize your agent project#
If you don't already have a Python project set up, create one using uv:
uv init my-agent
cd my-agent
Add necessary dependencies#
For this agent, we'll just need the deepagents, langchain-openai, and copilotkit packages:
uv add deepagents copilotkit langchain-openai
If you already have a LangGraph agent written, just reference the following code. In this step we create a simple LangGraph agent for the sake of demonstration.
AG-UI is an open protocol for frontend-agent communication.
Configure your environment#
Create a .env file in your agent directory and add your OpenAI API key:
OPENAI_API_KEY=your_openai_api_key
The starter template is configured to use OpenAI's GPT-4o by default, but you can modify it to use any language model supported by LangGraph.
Create your frontend#
CopilotKit works with any React-based frontend. We'll use Next.js for this example.
npx create-next-app@latest frontend
cd frontend
Install CopilotKit packages#
npm install @copilotkit/react-core @copilotkit/runtime
Setup Copilot Runtime#
Create an API route to connect CopilotKit to your LangGraph agent:
mkdir -p app/api/copilotkit && touch app/api/copilotkit/route.ts
Configure CopilotKit Provider#
Wrap your application with the CopilotKit provider:
// [!code highlight:2]
import { CopilotKit } from "@copilotkit/react-core/v2";
import "@copilotkit/react-core/v2/styles.css";
// ...
export default function RootLayout({ children }: {children: React.ReactNode}) {
return (
<html lang="en">
<body>
{/* [!code highlight:3] */}
<CopilotKit runtimeUrl="/api/copilotkit" agent="sample_agent">
{children}
</CopilotKit>
</body>
</html>
);
}
Add the chat interface#
Add the CopilotSidebar component to your page:
"use client";
import { CopilotSidebar } from "@copilotkit/react-core/v2";
import { useDefaultRenderTool } from "@copilotkit/react-core/v2";
export default function Page() {
useDefaultRenderTool({
render: ({name, status, args, result}) => (
<details>
<summary>
{status === "complete"? `Called ${name}` : `Calling ${name}`}
</summary>
<p>Status: {status}</p>
<p>Args: {JSON.stringify(args)}</p>
<p>Result: {JSON.stringify(result)}</p>
</details>
)})
return (
<main>
<h1>Your App</h1>
<CopilotSidebar />
</main>
);
}
Start your agent#
From your agent directory, start the agent server:
Your agent will be available at http://localhost:8123.
Start your UI#
In a separate terminal, navigate to your frontend directory and start the development server:
