Deploy Your Own Open Agent Platform
Key Takeaways
The video demonstrates how to deploy an instance of Open Agent Platform to production, leveraging tools like Lang Connect, Langraph platform, and MCP server, to build and prototype intelligent langraph agents.
Full Transcript
In the next 10 minutes, we'll bootstrap a rag server, deploy and configure a tools agent, supervisor agent, and custom agent, plug in an MCP tool server, and watch it all light up inside our own open agent platform instance. Clone, follow along, and own the stack. Introducing Open Agent Platform by Langchain. Open agent platform is our open-source citizen developer platform designed to enable you to build, test, and prototype intelligent langraph agents in minutes. In a previous video, I spoke about how you could start using our managed version of open agent platform. In this video, I'll dive a little bit more into the technical details of how you can configure our out- of-the-box agents. How you can set up your own rag server that your agents can use as tools through Lang Connect. How you can configure your own MCP server, giving your agents access to a variety of tools whether they require authentication or not, and how you can add your own existing agents, empowering citizen developers to leverage your existing Langraph agents from Langraph platform. Now, let's get into it. In the starter code for open agent platform, we ship two reference agents, a tools agent and a supervisor agent. Think of them as base templates to use as scaffolding for your citizen developers to build their own custom assistance off of. We find that by using a combination of each of these agents, you can achieve a vast majority of your desired use cases. And if you still need additional functionality, open agent platform has firstass support for adding your own custom agents, which I'll dive into later in this video. Now let's take a peek under the hood at how these agents are set up to be compatible as templates in open agent platform. In each of the agent Python files of these template agents, we expose a graph config pyantic schema. Metadatari padantic that OAP reads at runtime to generate its noode UI. Any field annotated with XOAP UI config appears as a drop-own slider or text area in the platform. I'm currently in the agent file of the tools agent that we provide as a template in this repo. Here we can see fields like model name, temperature, max tokens, and more that will all render as configurable fields in our open agent platform agent config UI. The key here is that we leverage Langraph's runnable config which serves as a mechanism to pass runtime configuration parameters to our graph or agent. This allows for dynamic customization of behavior without altering the underlying code. When our graph function where we pass in our runnable config is invoked, it extracts the configurable dictionary from runnable config passes it into our strongly typed pyantic model, an instance of graph config padantic we define above which is then used to wire up rag tools, mcp tools and the llm. Finally, when we pass this to the config schema of create react agent, we ensure that the same schema drives the autogenerated noode UI in open agent platform. This same pattern applies for our supervisor agent dynamically leveraging runnable config that is passed through our graph pantic model. I want to note that you have complete control over the fields and parameters of this pyantic model. And later in this video, I'll show you how you can adjust the structure of this model to define your own custom agents. I'm going to go ahead and deploy both of these template agents to my instance of Langraph platform and then I'll check back in. I've gone ahead and configured the environment variables for both of those agents and deployed each of them to Langraph platform. Once they're deployed on Langraph platform, we need a little bit of information about both of them that we can pass to our environment file in our open agent platform repo. We'll need the deployment URL which you can get by copying from the deployments page here. Additionally, if you visit this URL and add the info suffix like I do here, then a page opens up that tells us a little bit more about each of our agents. Specifically, we're interested in the project ID, also known as the deployment ID, as well as the tenant ID. Copy both of these so that we can use them later. If we navigate back to our environment file in our open agent platform repo, our aim is to set the next public deployment variable. To do this, we need to create a configuration object for each agent. I've just copied from the quick start guide the structure of this configuration object. I recommend you do the same and then fill this out with some of the information that we just gathered. Our project ID will be the ID field here and we'll populate the tenant ID from the information that we also got from the previous deployment screen. Our deployment URL is the API URL from our deployment screen. The name is a custom name for this deployment. This is what will show up to your users when they're interacting with agents on open agent platform. We allow you to set default deployments, although you can only have one. And this is if you want to set an agent as a base template to allow your citizen developers to build with this as the root design. If you set this variable to true, then you need to pass the graph ID, which is what you'll have in your Langraph.json file from your deployments on Langraph platform. I'm going to go ahead and set this for the supervisor as well. But this time, I won't have the supervisor as my default agent. And therefore, I'll leave my default graph ID blank. Great. Now that I've created a configuration object for each agent, I'm going to combine this as a JSON array and then set my next public deployments URL in my environment file in my open agent platform repo. Next, we'll set up our out of the box rag server called LANC connect. First, let's clone the LANC connect repo. After setting the environment variables, which included my OpenAI key as well as my Superbase projects URL and service ro key, I'm ready to go. Noting that I have Docker running on my machine, let's run Docker Compose up to start all of LANC Connect's related services defined in the Docker Compose YAML file within the projects repo. And that's all I need to do. Lang Connect will now be running and listening at port 880 on localhost. This URL is automatically configured for me in the environment file in open agent platform. If you were to host LANC connect externally on its own server, you would pass that URL instead of the local host one. Additionally, if you visit the doc suffix of the LAN connect URL, we can see all of the routes implemented by LANC connect. This is nice for visualizing how LANC connect functions and understanding more about what's happening under the hood. Finally, we can do a simple health check by visiting the health suffix. Next, we'll be adding our own MCP server. I've just gone to Arcad's website and found their publicly available MCP server for tools that don't require authentication. I'll add this link in the description of the video as well. Again, in this instance, we're connecting to an unauthenticated MCP server for simplicity. However, Open Agent platform is designed to handle secure integrations as well. If your MCP server requires authentication, OAP can manage this seamlessly by setting the next public MCP or required environment variable to true. OAP routes all MCP requests through a proxy API route. This proxy uses your Superbase JWT to authenticate with the MCP server, obtaining an access token that is then used for subsequent requests. This setup ensures that even authenticated MCP servers can be integrated without exposing sensitive credentials to the client side. For more detailed information on configuring authenticated MCP servers, refer to the Open Agent platform documentation. I'll include a link to this in the description of the video. Now, we can bring it all together. We've set our deployment configuration for our two out- of-the-box agents that we've deployed to Langraph platform. We've configured Lang Connect. In this case, it's running locally on our machine and we've added the URL of a public MCP server to provide our agents with over 50 different tools that they can use in an instant. If I navigate to open agent platform, we can see here the supervisor agent as well as the tools agent that we deployed and configured. Additionally, if we navigate to the tools panel, we can see a list of various different tools that don't require authentication. There's out of the box support for understanding the schemas of each tool as well as a tools playground where you can test out tools and configure their inputs and outputs running them to see their result. On the right hand side, additionally, we can see that we can create collections powered by LAN connect in the back end. I'm going to go ahead and create a pastry collection that contains important information about pastries in San Francisco. If I chat with that collection, we can see that the rag tool call is successfully being initialized and I get results back about the top pastry spots on a walk from dog patch to Pacific Heights. Additionally, if I navigate back to the agents tab, I can create new agents based on the underlying out of the box ones that I provided. I'm going to go ahead and create a pastry rag agent and a math agent. Awesome. Now that I've got both of those, I obviously need to create some way for them to work together. I'm going to make the world's first pastry math supervisor. Chatting with that supervisor, we can see the pastry agent successfully performing its role of providing some recommendations on the best pastries in Dog Patch. And we can then invoke the math agent performing some crucial analysis. And it's that easy. We've just shown how you can upload documents to a collection powered by your own hosted version of Lang Connect that serves as a knowledge base for agents performing rag. We've configured an MCP server providing our agents with access to a variety of tools. And we've created a supervisor agent to orchestrate a multi-agent workflow between a pastry agent and a math agent. As I mentioned earlier in the video, let's now go ahead and create our own custom agent. In this case, I'm going to add a very simple pirate agent that simply responds to the user as if he's a disgruntled old pirate. Walking through the code, we will drive the way that we configure this agent through the graph config pyantic class. And I've simply stripped it right down only to include the model name. In this case, our old disgruntled pirate doesn't like offering his users with many choices, so he's only offering GBT40. The state that I'm passing through my graph is a simple messages type dict that we append to as we execute each node. And importantly, as we discussed earlier, I'm passing in runnable config to this graph. As a reminder, this serves as a mechanism pass runtime configuration parameters to our graph or agent. Finally, and importantly, as previously mentioned, we pass the graph config pant to the config schema of this graph. Awesome. Now that I've written the code for this simple agent, I'm going to deploy it to Langraph platform and configure it in the same way that I did with the out of the box agents in the open agent platform environment variables file. I'll check back in once I've done that. Now, when I navigate back to open agent platform, I can see this pirate agent appearing. I'm going to go ahead and create another pirate agent just to confirm that the configuration I set in the agent.py file is applied correctly. I can see here this snippet under the model name from our pirate agent as well as our choice or lack of choice of the underlying model that we want to use. Finally, I can confirm that I can interact with our pirate agent by asking it how it is. Are your skellywag? Yep, that's definitely our pirate agent. And that's how you can configure your own custom agents. It's extremely simple. Throughout this video, we've explored how open agent platform empowers you to deploy readytouse agents effortlessly host and integrate your own lang server for rag capabilities. Adding your own custom MCP server and how to add your own custom agents powered by what you have deployed on Langraph platform by leveraging Langraph's powerful orchestration capabilities. Open agent platform bridges the gap between complex AI workflows and user-friendly interfaces making advanced agent development accessible to all. Ready to empower your citizen developers to build their own AI agents? Dive in by cloning our repo or exploring our documentation. In the meantime, happy building.
Original Description
In this video, we show you how to deploy your own instance of Open Agent Platform (OAP) to production. This follows a previous video where we walked through how to use our managed instance of OAP.
Open Agent Platform is an open-source, citizen-developer platform designed enable you to build, prototype, and deploy intelligent agents effortlessly. With its intuitive web-based interface, OAP enables users to connect agents to various tools via MCP, Retrieval-Augmented Generation (RAG) servers, and orchestrate complex multi-agent workflows.
Covered in this walkthrough:
00:00 Intro
00:20 Open Agent Platform overview
01:07 Setting up the out-of-the-box Tools and Supervisor agent
05:26 Configuring collections with your own RAG server
06:29 Adding your own MCP server
07:31 Bringing it all together in the OAP UI
09:33 Adding your own custom agents
11:16 Outro
Whether you're a business analyst, product manager, or developer, OAP provides a streamlined pathway to harness the power of LangChain's LangGraph agents without the need for extensive coding knowledge.
Resources:
🌐 : Explore the platform: https://oap.langchain.com
📚: Documentation:
- OAP: https://docs.oap.langchain.com
- Custom MCP: https://docs.oap.langchain.com/setup/mcp-server
- Arcade MCP: https://docs.arcade.dev/home
🛠️ : GitHub Repositories:
- OAP: https://github.com/langchain-ai/open-agent-platform
- Tools ReAct Agent: https://github.com/langchain-ai/oap-langgraph-tools-agent
- Supervisor Agent: https://github.com/langchain-ai/oap-agent-supervisor
Watch on YouTube ↗
(saves to browser)
Sign in to unlock AI tutor explanation · ⚡30
Playlist
Uploads from LangChain · LangChain · 0 of 60
← Previous
Next →
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
Chat With Your Documents Using LangChain + JavaScript
LangChain
LangChain SQL Webinar
LangChain
LangChain "OpenAI functions" Webinar
LangChain
LangSmith Launch
LangChain
LangChain x Pinecone: Supercharging Llama-2 with RAG
LangChain
LangChain Expression Language
LangChain
Building LLM applications with LangChain with Lance
LangChain
Benchmarking Question/Answering Over CSV Data
LangChain
LangChain "RAG Evaluation" Webinar
LangChain
Fine-tuning in Your Voice Webinar
LangChain
Tabular Data Retrieval
LangChain
Building an LLM Application with Audio by AssemblyAI
LangChain
Superagent Deepdive Webinar
LangChain
Lessons from Deploying LLMs with LangSmith
LangChain
Shortwave Assistant Deepdive Webinar
LangChain
Cognitive Architectures for Language Agents
LangChain
Effectively Building with LLMs in the Browser with Jacob
LangChain
Data Privacy for LLMs
LangChain
"Theory of Mind" Webinar with Plastic Labs
LangChain
LangChain Templates
LangChain
Using Natural Language to Query Postgres with Jacob
LangChain
Building a Research Assistant from Scratch
LangChain
Benchmarking RAG over LangChain Docs
LangChain
Skeleton-of-Thought: Building a New Template from Scratch
LangChain
Benchmarking Methods for Semi-Structured RAG
LangChain
LangSmith Highlights: Getting Started
LangChain
LangSmith Highlights: Debugging
LangChain
LangSmith Highlights: Datasets
LangChain
LangSmith Highlights: Evaluation
LangChain
LangSmith Highlights: Human Annotation
LangChain
LangSmith Highlights: Monitoring
LangChain
LangSmith Highlights: Hub
LangChain
SQL Research Assistant
LangChain
Getting Started with Multi-Modal LLMs
LangChain
Build a Full Stack RAG App With TypeScript
LangChain
Auto-Prompt Builder (with Hosted LangServe)
LangChain
LangChain v0.1.0 Launch: Introduction
LangChain
LangChain v0.1.0 Launch: Observability
LangChain
LangChain v0.1.0 Launch: Integrations
LangChain
LangChain v0.1.0 Launch: Composability
LangChain
LangChain v0.1.0 Launch: Streaming
LangChain
LangChain v0.1.0 Launch: Output Parsing
LangChain
LangChain v0.1.0 Launch: Retrieval
LangChain
LangChain v0.1.0 Launch: Agents
LangChain
Build and Deploy a RAG app with Pinecone Serverless
LangChain
Hosted LangServe + LangChain Templates
LangChain
LangGraph: Intro
LangChain
LangGraph: Agent Executor
LangChain
LangGraph: Chat Agent Executor
LangChain
LangGraph: Human-in-the-Loop
LangChain
LangGraph: Dynamically Returning a Tool Output Directly
LangChain
LangGraph: Respond in a Specific Format
LangChain
LangGraph: Managing Agent Steps
LangChain
LangGraph: Force-Calling a Tool
LangChain
LangGraph: Multi-Agent Workflows
LangChain
Streaming Events: Introducing a new `stream_events` method
LangChain
Building a web RAG chatbot: using LangChain, Exa (prev. Metaphor), LangSmith, and Hosted Langserve
LangChain
OpenGPTs
LangChain
Open Source RAG with Nomic's New Embedding Model (and ChromaDB and Ollama)
LangChain
LangGraph: Persistence
LangChain
More on: Agent Foundations
View skill →Related Reads
📰
📰
📰
📰
Humanoid Robots Just Performed Live Surgery For The First Time Ever
Forbes Innovation
I Run an AI Loop for a Living. Here Are the 5 Things That Keep It From Rotting.
Medium · Programming
Installing Keystone the AI Agent Charter Framework to WSL2
Medium · Programming
Installing Keystone the AI Agent Charter Framework to WSL2
Medium · LLM
Chapters (8)
Intro
0:20
Open Agent Platform overview
1:07
Setting up the out-of-the-box Tools and Supervisor agent
5:26
Configuring collections with your own RAG server
6:29
Adding your own MCP server
7:31
Bringing it all together in the OAP UI
9:33
Adding your own custom agents
11:16
Outro
🎓
Tutor Explanation
DeepCamp AI