Bird
Raised Fist0
LangChainframework~10 mins

Prompt composition and chaining in LangChain - 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 - Prompt composition and chaining
Define Base Prompts
Compose Prompts Together
Chain Prompts Sequentially
Pass Output of One as Input to Next
Get Final Combined Result
Start by creating simple prompts, then combine them into a chain where each prompt's output feeds the next, producing a final result.
Execution Sample
LangChain
from langchain import PromptTemplate, LLMChain

# Define two prompts
prompt1 = PromptTemplate(input_variables=["name"], template="Hello {name}!")
prompt2 = PromptTemplate(input_variables=["greeting"], template="{greeting} How can I help you?")
This code defines two simple prompts: one greets by name, the other adds a question using the greeting.
Execution Table
StepActionInputOutputNext Input
1Run prompt1 with name='Alice'name='Alice'Hello Alice!greeting='Hello Alice!'
2Run prompt2 with greeting='Hello Alice!'greeting='Hello Alice!'Hello Alice! How can I help you?None
3Chain completeNoneHello Alice! How can I help you?End
💡 All prompts executed in sequence; final output produced.
Variable Tracker
VariableStartAfter Step 1After Step 2Final
nameNoneAliceAliceAlice
greetingNoneHello Alice!Hello Alice!Hello Alice!
final_outputNoneNoneHello Alice! How can I help you?Hello Alice! How can I help you?
Key Moments - 2 Insights
Why does the output of the first prompt become the input for the second?
Because in chaining, the output of one prompt is passed as input to the next, as shown in execution_table step 1 and 2.
Can prompts be chained in any order?
No, the order matters because each prompt may depend on the previous output, as seen in the flow from step 1 to step 2.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the output after step 1?
AHello Alice!
BHello Alice! How can I help you?
CAlice
DHow can I help you?
💡 Hint
Check the 'Output' column in row for step 1.
At which step does the final combined result appear?
AStep 1
BStep 2
CStep 3
DNone
💡 Hint
Look at the 'Output' and 'Action' columns for step 3.
If the first prompt output changed, how would it affect the chain?
ANo effect on the final output
BThe second prompt input and final output change
COnly the first prompt output changes
DChain breaks and stops
💡 Hint
Refer to how output of step 1 is input to step 2 in execution_table.
Concept Snapshot
Prompt composition and chaining:
- Define simple prompts with variables
- Combine prompts sequentially
- Output of one prompt feeds next
- Final output is combined result
- Order matters for correct chaining
Full Transcript
Prompt composition and chaining in Langchain means creating small prompts and linking them so the output of one becomes the input of the next. This lets you build complex conversations or tasks step-by-step. For example, a greeting prompt outputs 'Hello Alice!' which then feeds into a second prompt that adds 'How can I help you?'. The chain runs in order, producing a final combined message. This method helps organize prompts clearly and reuse parts easily.

Practice

(1/5)
1. What is the main purpose of prompt composition in Langchain?
easy
A. To run multiple AI models simultaneously
B. To break a big task into smaller, manageable prompts
C. To store data in a database
D. To create user interfaces for AI

Solution

  1. Step 1: Understand prompt composition

    Prompt composition means dividing a large task into smaller prompts to handle each part separately.
  2. Step 2: Identify the main purpose

    This helps make complex AI tasks easier to manage and understand by working on smaller pieces.
  3. Final Answer:

    To break a big task into smaller, manageable prompts -> Option B
  4. Quick Check:

    Prompt composition = breaking big tasks [OK]
Hint: Think of splitting a big job into small steps [OK]
Common Mistakes:
  • Confusing prompt composition with running multiple models
  • Thinking it stores data instead of organizing prompts
  • Assuming it builds user interfaces
2. Which of the following is the correct way to chain two prompts in Langchain?
easy
A. chain = Chain([prompt1, prompt2])
B. chain = Chain(prompt1, prompt2)
C. chain = Chain.compose(prompt1, prompt2)
D. chain = Chain().add(prompt1).add(prompt2)

Solution

  1. Step 1: Recall chaining syntax

    In Langchain, chaining prompts is done by creating a Chain object and adding prompts step-by-step.
  2. Step 2: Identify correct method

    The method .add() is used to add prompts to the chain, so chaining looks like Chain().add(prompt1).add(prompt2).
  3. Final Answer:

    chain = Chain().add(prompt1).add(prompt2) -> Option D
  4. Quick Check:

    Use .add() to chain prompts [OK]
Hint: Look for method chaining with .add() calls [OK]
Common Mistakes:
  • Passing prompts as a list directly to Chain
  • Using Chain(prompt1, prompt2) without .add()
  • Assuming a compose method exists
3. Given the code below, what will be the output of final_output?
prompt1 = Prompt(template="Hello, {name}!")
prompt2 = Prompt(template="How can I help you today?")
chain = Chain().add(prompt1).add(prompt2)
final_output = chain.run({"name": "Alice"})
medium
A. "Hello, Alice! How can I help you today?"
B. "Hello, {name}! How can I help you today?"
C. "Hello, Alice!"
D. Error: Missing input for prompt2

Solution

  1. Step 1: Understand prompt templates and chaining

    Prompt1 uses the variable {name} which is replaced by "Alice". Prompt2 is a fixed string without variables.
  2. Step 2: Analyze chain.run behavior

    Running the chain passes the input to prompt1, producing "Hello, Alice!" then continues to prompt2, appending "How can I help you today?".
  3. Final Answer:

    "Hello, Alice! How can I help you today?" -> Option A
  4. Quick Check:

    Chained prompts combine outputs [OK]
Hint: Chained prompts concatenate outputs with variables replaced [OK]
Common Mistakes:
  • Thinking prompt2 needs input variables
  • Expecting placeholders to remain unreplaced
  • Assuming only first prompt output is returned
4. What is the error in the following code snippet?
prompt1 = Prompt(template="What is your name?")
chain = Chain()
chain.add(prompt1)
chain.run()
medium
A. Missing input arguments for run()
B. Chain object cannot be empty
C. Prompt template syntax is incorrect
D. add() method does not exist on Chain

Solution

  1. Step 1: Check run() method usage

    The run() method requires input arguments matching prompt variables. Here, run() is called without arguments.
  2. Step 2: Confirm prompt template variables

    Prompt1 has no variables, so no input is needed. But if prompt1 expected variables, missing inputs cause error.
  3. Final Answer:

    Missing input arguments for run() -> Option A
  4. Quick Check:

    run() needs inputs if prompts have variables [OK]
Hint: Check if run() has required inputs for prompts [OK]
Common Mistakes:
  • Assuming run() works without inputs always
  • Thinking add() method is missing
  • Believing prompt syntax is wrong without variables
5. You want to create a chain where the output of the first prompt is used as input for the second prompt. Which approach correctly achieves this in Langchain?
hard
A. Create two independent chains and merge their results after running
B. Run prompt1 and prompt2 separately and concatenate their outputs manually
C. Use a chain that passes output variables from prompt1 to prompt2 as input
D. Use prompt2 with fixed text ignoring prompt1 output

Solution

  1. Step 1: Understand chaining with variable passing

    To pass output from one prompt to another, the chain must connect outputs as inputs for the next prompt.
  2. Step 2: Identify correct chaining method

    Langchain supports chaining where prompt2 receives variables produced by prompt1 automatically within the chain.
  3. Final Answer:

    Use a chain that passes output variables from prompt1 to prompt2 as input -> Option C
  4. Quick Check:

    Chaining passes outputs as inputs between prompts [OK]
Hint: Chain outputs flow as inputs to next prompt [OK]
Common Mistakes:
  • Running prompts separately without chaining
  • Merging results manually instead of chaining
  • Ignoring output-input flow in chains