---
schema: 1
type: video
title: 'The Human Is an Async API — Melanie Warrick, Temporal'
description: >-
  Humans don't respond in 200 milliseconds. Your agent shouldn't fall over
  waiting for one. Melanie Warrick from developer relations at Temporal shows
  how to build human-in-the-loop agents that don't block or lose state. Using a
  live multi-agent ice cream delivery demo with fleet, customer and dispatch
  agents on Google ADK and LangGraph, she explains why durability belongs in the
  agent harness and how Temporal's workers, workflows and activities track
  state. She shows how two primitives, a wait condition and a signal, let an
  agent pause for a human for minutes or weeks. Then she kills the worker
  mid-approval and brings it back with no lost work. In this talk: • Why a
  blocking 'ask the human' call breaks in production • Temporal's workers,
  workflows and activities, and where model and tool calls belong • Wait
  conditions and signals for human-to-agent and agent-to-human flows • Deciding
  when a human should be in the loop: the cost of being wrong vs alert fatigue
  SPEAKER Melanie Warrick, Developer Relations, Temporal LinkedIn:
  https://www.linkedin.com/in/melaniewarrick/ X: https://x.com/nyghtowl GitHub:
  https://github.com/nyghtowl LINKS Temporal: https://temporal.io Temporal
  (GitHub): https://github.com/temporalio/temporal Temporal + Google ADK:
  https://adk.dev/integrations/temporal/ Temporal + LangGraph:
  https://docs.temporal.io/develop/python/integrations/langgraph CHAPTERS 0:00
  Intro 0:13 Demo: Ziggy's ice cream delivery 1:13 Google ADK + Temporal 2:03
  Human in the loop: changing an order 3:38 The human is an async API 4:13
  What's in a harness? 4:58 Durability belongs in the harness 5:47 How Temporal
  works 6:27 Workers, workflows and activities 7:22 Back to human in the loop
  7:47 Why a blocking call fails 8:02 Wait conditions and signals 9:22 Starting
  the second demo 10:12 The code: ADK integration 11:37 Agent to human with
  LangGraph 13:42 Demo: a high-value order needs a human 15:07 Killing the
  worker mid-approval 16:02 Recovery and replay 16:47 When should a human be in
  the loop? 17:47 Recap 18:17 Resources Recorded at the AI Engineer World's Fair
  2026 in San Francisco. Subscribe for more talks from the engineers building
  with AI. AI Engineer: https://ai.engineer YouTube:
  https://www.youtube.com/@aiDotEngineer X: https://x.com/aiDotEngineer
  LinkedIn: https://www.linkedin.com/company/aidotengineer/ #AIAgents #Temporal
  #AIEngineer
canonical: >-
  https://liquidgold.cc/channel/aidotengineer/explore/video/the-human-is-an-async-api-melanie-warrick-temporal-92546c91cae8
markdown: >-
  https://liquidgold.cc/channel/aidotengineer/video/the-human-is-an-async-api-melanie-warrick-temporal-92546c91cae8.md
llms: null
parent: 'https://liquidgold.cc/channel/aidotengineer.md'
channel: aidotengineer
updated: '2026-10-23T22:19:57.628Z'
language: null
children: []
videoId: jc3kbZkuHTo
durationSeconds: 1156
publishedAt: '2026-10-04T16:30:17.000Z'
searchChunks:
  - ordinal: 0
    text: null
    startSeconds: 81
    endSeconds: 93
    watch: 'https://liquidgold.cc/watch/jc3kbZkuHTo?t=81'
    heldReason: rights
  - ordinal: 1
    text: null
    startSeconds: 141
    endSeconds: 221
    watch: 'https://liquidgold.cc/watch/jc3kbZkuHTo?t=141'
    heldReason: rights
  - ordinal: 2
    text: null
    startSeconds: 254
    endSeconds: 264
    watch: 'https://liquidgold.cc/watch/jc3kbZkuHTo?t=254'
    heldReason: rights
  - ordinal: 3
    text: null
    startSeconds: 317
    endSeconds: 349
    watch: 'https://liquidgold.cc/watch/jc3kbZkuHTo?t=317'
    heldReason: rights
  - ordinal: 4
    text: null
    startSeconds: 392
    endSeconds: 403
    watch: 'https://liquidgold.cc/watch/jc3kbZkuHTo?t=392'
    heldReason: rights
  - ordinal: 5
    text: null
    startSeconds: 470
    endSeconds: 481
    watch: 'https://liquidgold.cc/watch/jc3kbZkuHTo?t=470'
    heldReason: rights
  - ordinal: 6
    text: null
    startSeconds: 493
    endSeconds: 503
    watch: 'https://liquidgold.cc/watch/jc3kbZkuHTo?t=493'
    heldReason: rights
  - ordinal: 7
    text: null
    startSeconds: 503
    endSeconds: 571
    watch: 'https://liquidgold.cc/watch/jc3kbZkuHTo?t=503'
    heldReason: rights
  - ordinal: 8
    text: null
    startSeconds: 629
    endSeconds: 707
    watch: 'https://liquidgold.cc/watch/jc3kbZkuHTo?t=629'
    heldReason: rights
  - ordinal: 9
    text: null
    startSeconds: 719
    endSeconds: 823
    watch: 'https://liquidgold.cc/watch/jc3kbZkuHTo?t=719'
    heldReason: rights
  - ordinal: 10
    text: null
    startSeconds: 922
    endSeconds: 967
    watch: 'https://liquidgold.cc/watch/jc3kbZkuHTo?t=922'
    heldReason: rights
  - ordinal: 11
    text: null
    startSeconds: 967
    endSeconds: 978
    watch: 'https://liquidgold.cc/watch/jc3kbZkuHTo?t=967'
    heldReason: rights
  - ordinal: 12
    text: null
    startSeconds: 1023
    endSeconds: 1068
    watch: 'https://liquidgold.cc/watch/jc3kbZkuHTo?t=1023'
    heldReason: rights
---


# The Human Is an Async API — Melanie Warrick, Temporal

Humans don't respond in 200 milliseconds. Your agent shouldn't fall over waiting for one. Melanie Warrick from developer relations at Temporal shows how to build human-in-the-loop agents that don't block or lose state. Using a live multi-agent ice cream delivery demo with fleet, customer and dispatch agents on Google ADK and LangGraph, she explains why durability belongs in the agent harness and how Temporal's workers, workflows and activities track state. She shows how two primitives, a wait condition and a signal, let an agent pause for a human for minutes or weeks. Then she kills the worker mid-approval and brings it back with no lost work. In this talk: • Why a blocking 'ask the human' call breaks in production • Temporal's workers, workflows and activities, and where model and tool calls belong • Wait conditions and signals for human-to-agent and agent-to-human flows • Deciding when a human should be in the loop: the cost of being wrong vs alert fatigue SPEAKER Melanie Warrick, Developer Relations, Temporal LinkedIn: https://www.linkedin.com/in/melaniewarrick/ X: https://x.com/nyghtowl GitHub: https://github.com/nyghtowl LINKS Temporal: https://temporal.io Temporal (GitHub): https://github.com/temporalio/temporal Temporal + Google ADK: https://adk.dev/integrations/temporal/ Temporal + LangGraph: https://docs.temporal.io/develop/python/integrations/langgraph CHAPTERS 0:00 Intro 0:13 Demo: Ziggy's ice cream delivery 1:13 Google ADK + Temporal 2:03 Human in the loop: changing an order 3:38 The human is an async API 4:13 What's in a harness? 4:58 Durability belongs in the harness 5:47 How Temporal works 6:27 Workers, workflows and activities 7:22 Back to human in the loop 7:47 Why a blocking call fails 8:02 Wait conditions and signals 9:22 Starting the second demo 10:12 The code: ADK integration 11:37 Agent to human with LangGraph 13:42 Demo: a high-value order needs a human 15:07 Killing the worker mid-approval 16:02 Recovery and replay 16:47 When should a human be in the loop? 17:47 Recap 18:17 Resources Recorded at the AI Engineer World's Fair 2026 in San Francisco. Subscribe for more talks from the engineers building with AI. AI Engineer: https://ai.engineer YouTube: https://www.youtube.com/@aiDotEngineer X: https://x.com/aiDotEngineer LinkedIn: https://www.linkedin.com/company/aidotengineer/ #AIAgents #Temporal #AIEngineer

Canonical: https://liquidgold.cc/channel/aidotengineer/explore/video/the-human-is-an-async-api-melanie-warrick-temporal-92546c91cae8 · Channel: [AI Engineer](https://liquidgold.cc/channel/aidotengineer.md)

> Search chunk text is held until public-source provenance is verified.

## Document chunks

---

#### Chunk 0: Document excerpt (0:13 to 3:41)

> Held: transcript rights do not permit this chunk's text.

---

#### Chunk 1: Document excerpt (3:41 to 4:14)

> Held: transcript rights do not permit this chunk's text.

---

#### Chunk 2: Document excerpt (4:14 to 5:06)

> Held: transcript rights do not permit this chunk's text.

---

#### Chunk 3: Document excerpt (5:06 to 5:49)

> Held: transcript rights do not permit this chunk's text.

---

#### Chunk 4: Document excerpt (5:49 to 7:28)

> Held: transcript rights do not permit this chunk's text.

---

#### Chunk 5: Document excerpt (7:28 to 9:31)

> Held: transcript rights do not permit this chunk's text.

---

#### Chunk 6: Document excerpt (9:31 to 11:47)

> Held: transcript rights do not permit this chunk's text.

---

#### Chunk 7: Document excerpt (11:47 to 13:43)

> Held: transcript rights do not permit this chunk's text.

---

#### Chunk 8: Document excerpt (13:43 to 15:10)

> Held: transcript rights do not permit this chunk's text.

---

#### Chunk 9: Document excerpt (15:10 to 16:51)

> Held: transcript rights do not permit this chunk's text.

---

#### Chunk 10: Document excerpt (16:51 to 17:48)

> Held: transcript rights do not permit this chunk's text.

---

#### Chunk 11: Document excerpt (17:48 to 19:16)

> Held: transcript rights do not permit this chunk's text.
