THE FUTURE MARKETACADEMY
Your classroomRoom 01 · AI Lab
School of AI

Mga Multi-Step Agent: tools, memory at pagiging maaasahan

Step 6 of 7 in AI Lab

Next in your path: 1.5.3 Claude Code Projects: larger codebases, tests and git

What you'll be able to do
  • Masulat mo mismo ang agent loop at maipaliwanag ang bawat mensahe rito (tool_use, tool_result, stop_reason).
  • Mabigyan ang agent ng ilang tool at madisenyo ang mga ito para piliin ni Claude ang tama.
  • Maibalik ang mga error kay Claude sa paraang makakabawi ito, at malaman kung kailan titigil sa pag-retry.
  • Mapanatili ang konteksto sa maraming hakbang at sa magkakaibang session, gamit ang conversation, ang memory tool at progress file.
  • Makapagdagdag ng limitasyon at log para hindi tumakbo nang walang katapusan ang isang run at lagi mong makita ang ginawa nito.
  • Makapaglagay ng hakbang ng pag-apruba ng tao sa harap ng anumang mapanganib na tool, at masubukan ang buong agent nang hindi nagbabayad sa mga API call.

Bago ang course na ito: Agents First Steps (course 1.4.1) at Build AI Agents with Claude: No-Code to Code (course 1.4). Dapat alam mo na ang mga salitang workflow, agent, tool at tool runner, at nakapagpatakbo ka na ng unang API call sa Python. Mas malalim ang kursong ito: bubuksan mo ang loop na itinatago ng tool runner, saka gagawin itong ligtas at maaasahan. Kailangan mo ng Python 3.9 o mas bago at terminal. Gumagamit ang mga halimbawa ng claude-opus-5-5.

Words in this course 45Open the Vocabulary Hall
01

Buksan ang loop (ang manual na agent loop)

In simple words

Sa course 1.4, isang robot ang gumawa ng mga lakad at resulta lang ang nakita mo. Ngayon ikaw na ang may hawak ng clipboard. Sinasabi ni Claude na "pakitingnan ang stock room," pupunta ka at titingnan, isusulat mo ang sagot sa clipboard at ibabalik mo ito. Saka magpapasya si Claude kung ano ang susunod na itatanong. Ang paulit-ulit na palitang iyon ang buong agent.

Key facts
  • Kapag gustong gumamit ni Claude ng client tool, ang response ay may stop_reason na tool_use at isa o higit pang tool_use block. Bawat block ay may id, name at input (ang mga argumento).
  • Pinapatakbo ng code mo ang tool, saka nagpapadala ng bagong user message na may hawak na tool_result blocks. Bawat resulta ay may dalang tool_use_id ng hiniling na sinasagot nito, dagdag ang content at opsyonal na is_error.
  • Mga patakaran sa format mula sa docs: ang mga tool result ay dapat sumunod agad sa assistant message na humiling sa mga ito, at sa user message ang mga tool_result block ay dapat nauuna. Anumang text ay pagkatapos ng mga ito.
  • Puwedeng humiling si Claude ng ilang tool sa isang turn. Sagutin ang bawat tool_use id ng katugmang tool_result.
  • Natatapos ang loop kapag ang stop_reason ay iba sa tool_use (halimbawa end_turn).
  • Madalas may dalang nilalamang wala sa kontrol mo ang mga tool result, tulad ng web page o email. Ituring itong hindi mapagkakatiwalaan: maaaring may instructions ito na sadyang lilinlang kay Claude (prompt injection).
  • Bakit gagawin ito nang mano-mano? Mas simple ang tool runner, pero sinasabi ng docs ng Anthropic na gamitin ang manual loop kapag kailangan mo ng pag-apruba ng taong kasali sa proseso, custom logging o conditional execution. Iyon mismo ang idinaragdag ng kursong ito.
MensaheSino ang nagpapadalaAno ang laman
1Ikaw (user)Ang tanong
2Claude (assistant)Text at mga tool_use block, stop_reason: tool_use
3Ikaw (user)Mga tool_result block, isa kada tool_use id
4Claude (assistant)Ang huling sagot, stop_reason: end_turn (o dagdag na tool call)
Halimbawa (Python, manual na loop; sinubukan gamit ang panghalili sa API)
import anthropic

client = anthropic.Anthropic() # reads ANTHROPIC_API_KEY

TOOLS = [{
  "name": "check_stock",
  "description": "Check how many units of a product are in stock. Use the exact product name, for example 'blue mug'.",
  "input_schema": {
    "type": "object",
    "properties": {"item": {"type": "string", "description": "Product name"}},
    "required": ["item"],
  },
}]
STOCK = {"blue mug": 12, "red mug": 0}

def check_stock(item):
  return str(STOCK[item.lower()])

messages = [{"role": "user", "content": "Do we have blue mugs and red mugs?"}]
while True:
  response = client.messages.create(
    model="claude-opus-5-5", max_tokens=1024, tools=TOOLS, messages=messages
  )
  if response.stop_reason != "tool_use":
    break
  messages.append({"role": "assistant", "content": response.content})
  results = []
  for block in response.content:
    if block.type == "tool_use":
      results.append({
        "type": "tool_result",
        "tool_use_id": block.id,
        "content": check_stock(**block.input),
      })
  messages.append({"role": "user", "content": results})

print("".join(b.text for b in response.content if b.type == "text"))

Wala pang limitasyon at wala pang paghawak ng error ang loop na ito. Aayusin ng Lesson 3 at 5 ang dalawa.

Step by step
  1. Gumawa ng folder at Python virtual environment, saka patakbuhin ang pip install anthropic (maaaring magkaiba ang mga command sa Windows).
  2. Itakda ang key mo sa environment variable na ANTHROPIC_API_KEY. Huwag itong i-type sa file.
  3. Gumawa ng loop.py at i-paste ang halimbawa sa itaas.
  4. Patakbuhin gamit ang python loop.py.
  5. Bago ang huling print, idagdag ang print(messages) at patakbuhin ulit. Hanapin ang tool_use block at ang katugmang tool_result block.
  6. Tingnan: maituturo mo ang tool_use_id sa resulta mo at makikita ang parehong id sa kahilingan ni Claude.
Watch on YouTube
Tips for building AI agentsAnthropic · YouTube · youtube.com
Getting Started with Tool Use in the Anthropic APIRam Vegiraju · YouTube · youtube.com

Videos by other creators on YouTube, for reference. They are not made by or affiliated with The Future Market.

LESSON 01Buksan ang loop (ang manual na agent loop)
LESSON 01 / ANIMATED LESSON / ENGLISH VOICE00:00 / 01:15
Read the video script
[Host] "Ang agent ay isang loop. Ngayon, bubuksan natin ito."
[Screen: ang table ng mga mensahe] "Magtatanong ka. Sasagot si Claude ng kahilingan sa tool. Patatakbuhin mo ang tool at magpapadala ka ng resulta na may parehong id."
[Text on screen: stop_reason: tool_use] "Habang tool use ang sinasabi ng stop reason, tuloy ang loop."
[Screen: ang while loop sa editor] "Patakbuhin ang mga tool, idagdag ang mga resulta, tawagin ulit si Claude."
[Host] "Kapag nakita mo na ang loop, mauunawaan mo na ang bawat agent framework."
Try it now

Patakbuhin ang loop gamit ang tanong na nangangailangan ng dalawang mug. I-print ang len(response.content) sa unang turn para makita kung humiling si Claude ng dalawang tool nang sabay. Saka sumulat ng dalawang pangungusap na nagpapaliwanag kung bakit kailangan ng bawat tool_use id ng tool_result.

ClaudeStuck? Copy a ready-made prompt for Claude

Copy this, open Claude, paste it, and Claude will walk you through the lesson step by step.

For a grown-up: Claude is for adults (18+). Copy this, paste it into Claude, and use the answer to explain the lesson to your child.

I'm learning "Mga Multi-Step Agent: tools, memory at pagiging maaasahan" on The Future Market. Lesson 1: "Buksan ang loop (ang manual na agent loop)".

What the lesson teaches:
- Kapag gustong gumamit ni Claude ng client tool, ang response ay may stop_reason na tool_use at isa o higit pang tool_use block. Bawat block ay may id, name at input (ang mga argumento).
- Pinapatakbo ng code mo ang tool, saka nagpapadala ng bagong user message na may hawak na tool_result blocks. Bawat resulta ay may dalang tool_use_id ng hiniling na sinasagot nito, dagdag ang content at opsyonal na is_error.
- Mga patakaran sa format mula sa docs: ang mga tool result ay dapat sumunod agad sa assistant message na humiling sa mga ito, at sa user message ang mga tool_result block ay dapat nauuna. Anumang text ay pagkatapos ng mga ito.
- Puwedeng humiling si Claude ng ilang tool sa isang turn. Sagutin ang bawat tool_use id ng katugmang tool_result.
- Natatapos ang loop kapag ang stop_reason ay iba sa tool_use (halimbawa end_turn).
- Madalas may dalang nilalamang wala sa kontrol mo ang mga tool result, tulad ng web page o email. Ituring itong hindi mapagkakatiwalaan: maaaring may instructions ito na sadyang lilinlang kay Claude (prompt injection).
- Bakit gagawin ito nang mano-mano? Mas simple ang tool runner, pero sinasabi ng docs ng Anthropic na gamitin ang manual loop kapag kailangan mo ng pag-apruba ng taong kasali sa proseso, custom logging o conditional execution. Iyon mismo ang idinaragdag ng kursong ito.

The exercise I'm working on:
Patakbuhin ang loop gamit ang tanong na nangangailangan ng dalawang mug. I-print ang len(response.content) sa unang turn para makita kung humiling si Claude ng dalawang tool nang sabay. Saka sumulat ng dalawang pangungusap na nagpapaliwanag kung bakit kailangan ng bawat tool_use id ng tool_result.

I'm stuck. Please:
1. Explain the main idea in plain, simple words with one everyday example.
2. Walk me through the exercise one small step at a time. Ask me what I've done so far before giving the next step.
3. Don't just give me the final answer. Help me do it myself, and check my work when I share it.
I'm a parent helping my child (about 8 years old) with a lesson called "Buksan ang loop (ang manual na agent loop)" from the course "Mga Multi-Step Agent: tools, memory at pagiging maaasahan".

Here's what the lesson says:
Sa course 1.4, isang robot ang gumawa ng mga lakad at resulta lang ang nakita mo. Ngayon ikaw na ang may hawak ng clipboard. Sinasabi ni Claude na "pakitingnan ang stock room," pupunta ka at titingnan, isusulat mo ang sagot sa clipboard at ibabalik mo ito. Saka magpapasya si Claude kung ano ang susunod na itatanong. Ang paulit-ulit na palitang iyon ang buong agent.

The activity:
Patakbuhin ang loop gamit ang tanong na nangangailangan ng dalawang mug. I-print ang len(response.content) sa unang turn para makita kung humiling si Claude ng dalawang tool nang sabay. Saka sumulat ng dalawang pangungusap na nagpapaliwanag kung bakit kailangan ng bawat tool_use id ng tool_result.

Please explain this so an 8-year-old understands: short sentences, a fun everyday example, and no hard words.
Then give me 3 simple questions I can ask my child to check they understood, and a way to do the activity together, one tiny step at a time.
Open Claude
Sources
My notes
02

Maraming tool, mahusay ang disenyo

This lesson is part of full access: every course and every level for one payment.

03

Kapag pumalya ang tool (pagbawi sa error)

This lesson is part of full access: every course and every level for one payment.

04

Memory at konteksto sa maraming hakbang

This lesson is part of full access: every course and every level for one payment.

05

Mga limitasyon at log

This lesson is part of full access: every course and every level for one payment.

06

Pag-apruba ng tao sa mga mapanganib na hakbang

This lesson is part of full access: every course and every level for one payment.

07

Subukan ang agent nang hindi nagbabayad sa bawat run

This lesson is part of full access: every course and every level for one payment.

++

Final project

This lesson is part of full access: every course and every level for one payment.

??

Quiz

  1. Ano ang ibig sabihin ng stop_reason na "tool_use"?

  2. Ano ang dapat laman ng bawat tool_result para malaman ni Claude kung aling kahilingan ang sinasagot nito?

  3. Saan dapat ilagay ang mga tool_result block sa user message?

  4. Paano mo sasabihin kay Claude na pumalya ang tool?

  5. Ano ang gumagawa ng magandang mensahe ng error para sa tool?

  6. Ano ang ginagawa ng memory tool, at sino ang nagpapatakbo nito?

  7. Bakit kailangan mong i-validate ang mga path sa memory handler?

  8. Paano mo mapipigilang tumakbo nang walang katapusan ang mahabang run?

  9. Kailan iminumungkahi ng docs ng Anthropic ang manual loop sa halip na tool runner?

  10. Anong mga uri ng aksyon ang dapat nangangailangan ng pag-apruba ng tao?

  11. Paano mo masusubukan ang loop mo nang hindi nagbabayad sa mga API call?

EX

Final exam

This lesson is part of full access: every course and every level for one payment.

CE

Certificate

This lesson is part of full access: every course and every level for one payment.