All capabilities · Agents & workflows

Build a multi-step agent workflow

Plan-act-observe loops, state, retries, human-in-the-loop, with LangGraph/OpenAI Agents/Claude SDK or plain code.

~20 focused hoursintermediate
Explore 4 tools for this project
What employers mean

You should be able to…

  1. Implement a plan-act-observe (ReAct-style) loop where the agent reasons, calls a tool, observes the result, and decides the next step
  2. Persist agent state (conversation history, scratchpad, intermediate results) across multiple steps and turns
  3. Add retry and error-recovery logic when a step fails (bad tool output, model refusal, timeout)
  4. Insert a human-in-the-loop checkpoint before a risky or irreversible action
  5. Choose between a fixed workflow (deterministic DAG) and a fully autonomous agent loop based on task predictability
  6. Coordinate multiple specialized agents (e.g. researcher + writer + reviewer) with a defined handoff protocol
  7. Set hard step/iteration limits and budget caps so an agent loop can't run away
  8. Stream intermediate agent steps to a UI so users see progress, not just a final answer

Needs first: Implement tool / function calling

Learn — free, link-checked

The few resources that matter

Read · beginner · 25 min · python.langchain.com

Tool calling concepts

Explains the provider-agnostic tool-calling abstraction that LangChain/LangGraph agents are built on. — LangChain
Course · beginner · 300 min · huggingface.co

Welcome to the AI Agents Course

Free multi-unit course covering agent fundamentals, smolagents, LangGraph and multi-agent systems with a certification project. — Hugging Face
Read · intermediate · 30 min · anthropic.com

Building Effective AI Agents

Defines the workflow-vs-agent patterns (routing, orchestrator-worker, evaluator-optimizer) employers expect you to name and choose between. — Anthropic
Read · intermediate · 40 min · openai.github.io

OpenAI Agents SDK

Lightweight alternative to LangGraph for agent loops, handoffs and guardrails, increasingly named in JDs alongside LangGraph/CrewAI. — OpenAI
Read · intermediate · 60 min · langchain-ai.github.io

LangGraph Quickstart

Hands-on build of a stateful, cyclic agent graph with memory and human-in-the-loop, the most-requested framework in Indian GenAI JDs. — LangChain
Course · intermediate · 90 min · deeplearning.ai

MCP: Build Rich-Context AI Apps with Anthropic

Builds an MCP server and connects it to a chatbot client, covering resources, prompts and tools in one project. — DeepLearning.AI (with Anthropic)
Course · intermediate · 120 min · deeplearning.ai

AI Agents in LangGraph

Short video course building a ReAct agent and a LangGraph agent from scratch, taught by LangChain's founder. — DeepLearning.AI (with LangChain)
Course · intermediate · 120 min · deeplearning.ai

Multi AI Agent Systems with crewAI

Builds role-based multi-agent crews, a framework named directly in Indian GenAI JDs, for a realistic research/writing pipeline. — DeepLearning.AI
Tools for practice

Choose a tool for the job

Start with one tool for each part of your project. You don’t need to learn them all.

Go to the practice brief

4 tools to explore

Practice

Multi-agent document-triage workflow with human approval

Build a LangGraph workflow that triages loan-application packs through an extraction agent, a policy-check agent and a summarizer agent, pausing for human approval before any application is marked approved. You generate every input yourself — a Python script plus an LLM produces 20 synthetic application packs (applicant form, salary slip, three-month statement) rendered to PDF, so no real customer documents are needed — and the rules the policy agent applies come from a lending-policy PDF you download free from the RBI website. Persist graph state to disk so a run resumes correctly after the human responds, even across a process restart. Cap the loop at a fixed number of steps and log every transition.

Start from

20 synthetic loan-application packs (applicant form, salary slip, 3-month statement) you render to PDF from a Python + LLM generator script — no real customer documents anywhere in the project

Milestones
  1. Write the pack generator, render 20 synthetic PDFs, and download the public policy PDF · ~2.5h
  2. Build the extraction agent node and get clean structured fields out of one pack · ~3.5h
  3. Add the policy-check and summarizer nodes with conditional routing between them · ~4h
  4. Add checkpointing and the human-approval interrupt, then prove a resume after a restart · ~4h
  5. Enforce the step cap, capture a full run trace, and write the README and graph diagram · ~2.5h
Done when
  • A LangGraph (or equivalent) state graph with at least 3 distinct agent nodes and conditional routing
  • A human-in-the-loop interrupt before the final approval decision, with the workflow resuming correctly after input
  • State persists across a process restart (checkpointing to disk/DB)
  • A step/iteration cap enforced so the graph cannot loop indefinitely, with a logged trace of a full run
Prove it

Evidence a recruiter can check

  • The rendered state graph (LangGraph's own export) next to a README line per node saying what it decides and what it hands on
  • A run trace showing the interrupt firing, the process killed mid-workflow, and the graph resuming from its checkpoint after approval
  • A log of a run that hits the step cap and exits cleanly with a reason, instead of looping
  • The generator script and the 20 synthetic packs, so a stranger can reproduce the whole run without any private data
  • A short write-up of one failure mode you hit — bad extraction, model refusal, or a routing loop — and the change that fixed it
Signal it

Built a three-agent LangGraph document-triage workflow with checkpointed state, a human-approval interrupt and a hard step cap — it resumes mid-run after a process restart and never reaches an approval decision without a person in the loop.

Interview

Questions you'll get asked

  1. When would you use a fixed pipeline instead of a full autonomous agent, and why?
  2. How do you stop an agent loop from looping forever or blowing through its token budget?
  3. Design a multi-agent system for processing loan applications — what agents, what do they hand off to each other?
  4. How would you add a human-approval step before an agent sends an email or makes a payment?
  5. Explain LangGraph's state graph model — nodes, edges, and conditional routing.
  6. How do you recover an agent's state after a crash mid-workflow?
  7. What failure modes have you seen in production agents, and how did you fix them?
  8. How do you decide how much autonomy to give an agent vs hard-coding the next step?