Bird
Raised Fist0
LangChainframework~10 mins

LangChain ecosystem (LangSmith, LangGraph, LangServe) - Step-by-Step Execution

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Concept Flow - LangChain ecosystem (LangSmith, LangGraph, LangServe)
Start: User sends input
LangServe: Receives request
LangServe: Calls LangChain model
LangChain model processes input
LangGraph: Tracks data flow & dependencies
LangSmith: Logs & visualizes runs
Response sent back to user
Shows how user input flows through LangServe to LangChain model, with LangGraph tracking data and LangSmith logging and visualizing.
Execution Sample
LangChain
from fastapi import FastAPI
from langchain.prompts import ChatPromptTemplate
from langchain.chat_models import ChatOpenAI
from langserve import add_routes

app = FastAPI(title="LangServe Example")

prompt = ChatPromptTemplate.from_template("Respond to: {input}")
model = ChatOpenAI(model_name="gpt-3.5-turbo")
chain = prompt | model

add_routes(app, chain, path="/chain")

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="localhost", port=8000)
Starts LangServe which listens for requests and runs LangChain models.
Execution Table
StepComponentActionInputOutputState Change
1UserSends input text"Hello, LangChain!"N/AInput received
2LangServeReceives request"Hello, LangChain!"Passes input to LangChain modelRequest queued
3LangChain ModelProcesses input"Hello, LangChain!""Hi! How can I help you?"Model run started
4LangGraphTracks data flowModel run infoGraph updated with run nodesGraph state updated
5LangSmithLogs runRun dataRun logged and visualizedLogs updated
6LangServeSends response"Hi! How can I help you?"Response sent to userRequest completed
7SystemWaits for next inputN/AN/AIdle
💡 Request cycle ends after response sent; system waits for next input.
Variable Tracker
VariableStartAfter Step 2After Step 3After Step 4After Step 5Final
input_textNone"Hello, LangChain!""Hello, LangChain!""Hello, LangChain!""Hello, LangChain!"None
model_outputNoneNone"Hi! How can I help you?""Hi! How can I help you?""Hi! How can I help you?"None
graph_stateEmptyEmptyEmptyUpdated with run nodesUpdated with run nodesUpdated with run nodes
logsEmptyEmptyEmptyEmptyRun loggedRun logged
request_statusIdleQueuedRunningRunningCompletedIdle
Key Moments - 3 Insights
Why does LangServe wait after sending the response?
LangServe waits to receive new requests, as shown in step 7 of the execution_table where the system is idle waiting for the next input.
How does LangGraph help during the model run?
LangGraph tracks the data flow and dependencies during the model run, updating the graph state as shown in step 4 of the execution_table.
What role does LangSmith play in this ecosystem?
LangSmith logs and visualizes each run, helping developers see what happened, as shown in step 5 where logs are updated.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the request_status after step 3?
A"Completed"
B"Running"
C"Queued"
D"Idle"
💡 Hint
Check the 'request_status' variable in variable_tracker after step 3.
At which step does LangGraph update the graph state?
AStep 2
BStep 3
CStep 4
DStep 5
💡 Hint
Look at the 'Component' and 'State Change' columns in the execution_table.
If the user sends a new input, what happens to the 'input_text' variable in variable_tracker?
AIt updates to the new input
BIt remains None
CIt clears to empty string
DIt becomes the previous output
💡 Hint
Refer to how 'input_text' changes from Start to After Step 2 in variable_tracker.
Concept Snapshot
LangChain ecosystem includes LangServe (runs models on requests), LangGraph (tracks data flow), and LangSmith (logs and visualizes runs).
User input → LangServe → LangChain model → LangGraph tracks → LangSmith logs → Response sent.
This flow helps build, monitor, and debug language model applications easily.
Full Transcript
The LangChain ecosystem works by receiving user input through LangServe, which runs the language model. LangGraph tracks the data flow and dependencies during the model run, updating its graph state. LangSmith logs and visualizes each run for monitoring and debugging. After processing, LangServe sends the response back to the user and waits for the next input. Variables like input_text, model_output, graph_state, logs, and request_status change step-by-step as the system processes the request. This flow ensures smooth handling and observability of language model applications.

Practice

(1/5)
1. Which LangChain ecosystem tool is primarily used to track and log your language app runs?
easy
A. LangFlow
B. LangGraph
C. LangServe
D. LangSmith

Solution

  1. Step 1: Understand the purpose of LangSmith and differentiate from other tools

    LangSmith is designed to track and log the execution of language applications, capturing run data. LangGraph visualizes app processes, and LangServe helps deploy apps, so they do not focus on logging.
  2. Final Answer:

    LangSmith -> Option D
  3. Quick Check:

    Tracking runs = LangSmith [OK]
Hint: Remember: Smith = logs and tracks runs [OK]
Common Mistakes:
  • Confusing LangGraph with logging tool
  • Thinking LangServe handles logging
  • Assuming LangFlow is part of LangChain ecosystem
2. Which of the following is the correct way to start LangServe to deploy your app?
easy
A. langsmith deploy my_app.py
B. langserve start --app my_app.py
C. langgraph visualize my_app.py
D. serve langchain --run my_app.py

Solution

  1. Step 1: Identify LangServe command syntax and eliminate incorrect commands

    LangServe uses the command langserve start --app <file> to deploy an app. Other options use wrong tool names or commands not related to LangServe.
  2. Final Answer:

    langserve start --app my_app.py -> Option B
  3. Quick Check:

    Deploy app = langserve start [OK]
Hint: Deploy apps with 'langserve start --app' command [OK]
Common Mistakes:
  • Using langsmith or langgraph commands to deploy
  • Mixing command order or flags
  • Assuming 'serve langchain' is valid
3. Given this code snippet using LangGraph:
from langchain.tools import LangGraph
graph = LangGraph(app=my_app)
graph.show()

What will happen when graph.show() is called?
medium
A. It visually displays the language task flow of the app
B. It logs the app run details to LangSmith dashboard
C. It deploys the app to a server for sharing
D. It raises a syntax error due to missing parameters

Solution

  1. Step 1: Understand LangGraph's role and analyze the code behavior

    LangGraph is used to visualize how language tasks flow in an app, showing a graphical representation. Calling graph.show() triggers the visual display of the app's task graph, not logging or deployment.
  2. Final Answer:

    It visually displays the language task flow of the app -> Option A
  3. Quick Check:

    graph.show() = visual flow display [OK]
Hint: LangGraph = visualize app flow, show() displays it [OK]
Common Mistakes:
  • Confusing visualization with logging
  • Thinking it deploys the app
  • Assuming code has syntax errors
4. You wrote this code to deploy your app with LangServe:
import langserve
langserve.run('my_app.py')

But it raises an error. What is the likely cause?
medium
A. The method 'run' does not exist in LangServe; use 'start' instead
B. You must import LangSmith, not LangServe, to deploy apps
C. The filename must be a module, not a string
D. LangServe requires a config file, missing here

Solution

  1. Step 1: Check LangServe API usage and confirm other options

    LangServe does not have a 'run' method; the correct command is 'start' to deploy apps. Importing LangSmith is unrelated to deployment, filename as string is valid, and config file is optional.
  2. Final Answer:

    The method 'run' does not exist in LangServe; use 'start' instead -> Option A
  3. Quick Check:

    Use 'start' method, not 'run' [OK]
Hint: LangServe uses 'start', not 'run' to deploy [OK]
Common Mistakes:
  • Using 'run' instead of 'start'
  • Confusing LangSmith with LangServe
  • Thinking filename must be a module object
5. You want to build a language app that you can deploy, track, and visualize easily. Which sequence of LangChain ecosystem tools should you use?
hard
A. Use LangGraph to deploy, LangServe to track runs, and LangSmith to visualize flow
B. Use LangSmith to deploy, LangGraph to track runs, and LangServe to visualize flow
C. Use LangServe to deploy, LangSmith to track runs, and LangGraph to visualize flow
D. Use LangServe to track runs, LangGraph to deploy, and LangSmith to visualize flow

Solution

  1. Step 1: Match each tool to its function and arrange tools in correct usage order

    LangServe deploys apps, LangSmith tracks and logs runs, LangGraph visualizes the app's task flow. First deploy with LangServe, then track runs with LangSmith, and visualize with LangGraph.
  2. Final Answer:

    Use LangServe to deploy, LangSmith to track runs, and LangGraph to visualize flow -> Option C
  3. Quick Check:

    Deploy, track, visualize = Serve, Smith, Graph [OK]
Hint: Deploy with Serve, track with Smith, visualize with Graph [OK]
Common Mistakes:
  • Mixing up tool roles
  • Using LangSmith for deployment
  • Assuming LangGraph tracks runs