ЁЯПл The SchoolтА║ЁЯУЛ AI AgentsтА║ЁЯФБ рдзрдбрд╛ 02 тАФ loop: рд╡рд┐рдЪрд╛рд░ тЖТ рдХреГрддреА тЖТ рдирд┐рд░реАрдХреНрд╖рдг
ЁЯЦ╝я╕П See the drawing + lab ЁЯПа Course home ЁЯМ┐ Branch on GitHub тЬПя╕П View source
ЁЯЦ╝я╕П рдЖрдХреГрддреА рдЖрдгрд┐ labThe drawing + lab рдкреВрд░реНрдг рдкрд╛рдирд╛рд╡рд░ рдЙрдШрдбрд╛ тЖЧOpen full page тЖЧ

ЁЯФБ рдзрдбрд╛ 02 тАФ loop: рд╡рд┐рдЪрд╛рд░ тЖТ рдХреГрддреА тЖТ рдирд┐рд░реАрдХреНрд╖рдг

ЁЯУН рддреБрдореНрд╣реА рдЗрдереЗ рдЖрд╣рд╛рдд: 8 рдкреИрдХреА рдзрдбрд╛ 02 ┬╖ рдорд╛рдЧреЗ: lesson-01-what-is-an-agent ┬╖ рдкреБрдвреЗ: lesson-03-tools


ЁЯУж рдпрд╛ рдмреНрд░рдБрдЪрдордзреНрдпреЗ рдХрд╛рдп рдЖрд╣реЗ

рдзрдбрд╛ 01, рдЖрдгрд┐ рдЗрдВрдЬрд┐рди: рдкреНрд░рддреНрдпреЗрдХ agent рдЪрд╛рд▓рд╡рддреЛ рддреЗ рддреАрди рдареЛрдХреНрдпрд╛рдВрдЪреЗ рдЪрдХреНрд░, рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ рдареЛрдХрд╛ рдХрд╛ рдорд╣рддреНрддреНрд╡рд╛рдЪрд╛ рдЖрд╣реЗ.

ЁЯзТ 5 рд╡рд░реНрд╖рд╛рдВрдЪреНрдпрд╛ рдореБрд▓рд╛рд▓рд╛ рд╕рдордЬрд╛рд╡рд▓реНрдпрд╛рд╕рд╛рд░рдЦреЗ

рддреБрдореНрд╣реА рдПрдЦрд╛рджреЗ рдХрд╛рдо рдХрд╕реЗ рдХрд░рддрд╛? рдкрд░рд┐рдкреВрд░реНрдг рдпреЛрдЬрдиреЗрдиреЗ рдирд╛рд╣реА тАФ рдПрдХрд╛ рдЪрдХреНрд░рд╛рдиреЗ:

  1. THINK ЁЯТн тАФ "PizzasтАж рдЖрдзреА рдорд▓рд╛ рдХрд┐рддреА рдореБрд▓реЗ рдЖрд╣реЗрдд рддреЗ рдХрд│рд╛рдпрд▓рд╛ рд╣рд╡реЗ."
  2. ACT ЁЯз░ тАФ office рдордзреНрдпреЗ рдЬрд╛рдКрди рд╡рд┐рдЪрд╛рд░рд╛ (tool рд╡рд╛рдкрд░рд╛).
  3. OBSERVE ЁЯСА тАФ "3A рдордзреНрдпреЗ 12 рдЖрд╣реЗрдд." рдирд╡реАрди рддрдереНрдп! рддреНрдпрд╛рдореБрд│реЗ рдкреБрдврдЪреЗ рдкрд╛рдКрд▓ рдмрджрд▓рддреЗ.
  4. тАжрдкрд░рдд THINK рдХрдбреЗ, рдЖрддрд╛ рдЬрд╛рд╕реНрдд рд╣реБрд╢рд╛рд░. done рд╣реЛрдИрдкрд░реНрдпрдВрдд рдкреБрдиреНрд╣рд╛ рдХрд░рд╛.

рдЬрд╛рджреВ рдареЛрдХрд╛ 3 рдордзреНрдпреЗ рдЖрд╣реЗ: рдЬрдЧ рдЙрддреНрддрд░ рджреЗрддреЗ, рдЖрдгрд┐ рдкреБрдврдЪрд╛ рд╡рд┐рдЪрд╛рд░ рддреЗ рдЙрддреНрддрд░ рд╡рд╛рдкрд░рддреЛ. рдЖрдзреАрдЪ рдкреВрд░реНрдг рдЖрдЦрд▓реЗрд▓реА рдпреЛрдЬрдирд╛ рдкрд╣рд┐рд▓реНрдпрд╛рдЪ рдЖрд╢реНрдЪрд░реНрдпрд╛рд╡рд░ рдореЛрдбреЗрд▓ ("3B рд╕рд╣рд▓реАрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ!"); loop рдЖрд╢реНрдЪрд░реНрдпреЗ рдкрдЪрд╡рддреЛ тАФ рдПрдХрд╛ рд╡реЗрд│реА рдПрдХ рдирд┐рд░реАрдХреНрд╖рдг.

рдЖрддрд╛ AI course (L05/L11) рдордзрд▓рд╛ рдореБрдЦреНрдп рдореБрджреНрджрд╛: THINK рдареЛрдХрд╛ рдЕрдХреНрд╖рд░рд╢рдГ next-token prediction рдЖрд╣реЗ тАФ model рдЖрдкрд▓рд╛ рд╡рд┐рдЪрд╛рд░ рдЖрдгрд┐ рдирд┐рд╡рдбрд▓реЗрд▓реА рдХреГрддреА text рдореНрд╣рдгреВрди рд▓рд┐рд╣рд┐рддреЗ. harness рддреА рдХреГрддреА рдЪрд╛рд▓рд╡рддреЛ рдЖрдгрд┐ рдирд┐рд░реАрдХреНрд╖рдг рдкрд░рдд desk рд╡рд░ рдЪрд┐рдХрдЯрд╡рддреЛ (L08). loop рдореНрд╣рдгрдЬреЗ text-predictor рдЖрдгрд┐ рд╡рд╛рд╕реНрддрд╡ рдпрд╛рдВрдЪреНрдпрд╛рддрд▓рд╛ рд╕рдВрд╡рд╛рдж. "ReAct" (Reason + Act тАФ рдпрд╛ pattern рдЪреЗ рд╢реИрдХреНрд╖рдгрд┐рдХ рдирд╛рд╡) рдЪрд╛ рдЕрд░реНрде рдПрд╡рдврд╛рдЪ рдЖрд╣реЗ.

ЁЯЧ║я╕П рдЖрдХреГрддреА

flowchart LR
    goal["ЁЯУЛ GOAL"]
    think["ЁЯТн THINK<br/>model writes reasoning +<br/>chosen action, as text"]
    act["ЁЯз░ ACT<br/>harness executes<br/>the tool call"]
    look["ЁЯСА OBSERVE<br/>result pasted onto<br/>the desk (scratchpad)"]
    done["тЬЕ done {answer}"]
    goal --> think -->|"1"| act -->|"2"| look -->|"3 loop, smarter"| think
    think -->|"eventually"| done

тЭУ рдХрд╛рдп

ЁЯдФ рдХрд╛

рдкреНрд░рддреНрдпреЗрдХ agent framework тАФ рдХрд┐рддреАрд╣реА рднрд╡реНрдп рдЕрд╕реЛ тАФ рд╣рд╛ loop рдЖрдгрд┐ рддреНрдпрд╛рднреЛрд╡рддреАрдЪреЗ рд╕рд╛рдорд╛рди рдЖрд╣реЗ. agent рдЪреБрдХреАрдЪреЗ рд╡рд╛рдЧрд▓рд╛ рддрд░ рддреНрдпрд╛рд▓рд╛ loop рдореНрд╣рдгреВрдирдЪ debug рдХрд░рд╛: рдХреЛрдгрддрд╛ рдареЛрдХрд╛ рдЪреБрдХрд▓рд╛? рд╡рд┐рдЪрд╛рд░ рдЪреБрдХрд▓рд╛ (рд╡рд╛рдИрдЯ reasoning/prompt)? рдХреГрддреА рдЪреБрдХрд▓реА (рд╡рд╛рдИрдЯ tool/schema)? рдирд┐рд░реАрдХреНрд╖рдг рдЧрд╛рдпрдм рдХрд┐рдВрд╡рд╛ рджрд┐рд╢рд╛рднреВрд▓ рдХрд░рдгрд╛рд░реЗ (рд╡рд╛рдИрдЯ tool output)? рд╣реЗ triage рдЪреЗ рдХреМрд╢рд▓реНрдп k8s course рдЪреНрдпрд╛ рдзрдбрд╛ 16 рдордзреВрди рдЗрдереЗрд╣реА рд▓рд╛рдЧреВ рд╣реЛрддреЗ: рд▓рдХреНрд╖рдгреЗ тЖТ рдпрдВрддреНрд░рд╛рдЪрд╛ рдХреЛрдгрддрд╛ рднрд╛рдЧ.

ЁЯзк рдХрд░реВрди рдкрд╛рд╣рд╛ тАФ рддреБрдореНрд╣реАрдЪ loop рд╡реНрд╣рд╛

python3 agent/agent.py --drive

рдЖрддрд╛ THINK рдареЛрдХрд╛ рддреБрдореНрд╣реА рдЖрд╣рд╛рдд. рдЕрдиреБрднрд╡рд╛: рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реАрдХреНрд╖рдгрд╛рдирдВрддрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдЬрд╛рд╕реНрдд рдорд╛рд╣реАрдд рдЕрд╕рддреЗ, рдЖрдгрд┐ рддреБрдордЪреА рдкреБрдврдЪреА рдЪрд╛рд▓ рдмрджрд▓рддреЗ. рдореБрджреНрджрд╛рдо lookup рдЖрдгрд┐ calc рд╡рдЧрд│реВрди рдЖрдард╡рдгреАрддреВрди рд╕рд╛рдВрдЧреВрди рдкрд╛рд╣рд╛ ("рдЕрдВ, 6 pizzas") тАФ рдЕрднрд┐рдирдВрджрди, рддреБрдореНрд╣реА рдзрдбрд╛ 01 рдордзрд▓рд╛ chatbot рдкреБрдиреНрд╣рд╛ рддрдпрд╛рд░ рдХреЗрд▓рд╛, рдЖрдгрд┐ рдпреЛрдЬрдирд╛ рдЪреБрдХреАрдЪреА рдЖрд╣реЗ. loop рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдЖрд╣реЗ рдХрд╛рд░рдг рдкрд╛рд╣рдгреЗ рд╣реЗ рдЖрдард╡рдгреНрдпрд╛рдкреЗрдХреНрд╖рд╛ рд╕рд░рд╕ рдЖрд╣реЗ. ЁЯСА

тПня╕П рдкреБрдвреЗ

ACT рдареЛрдХреНрдпрд╛рд▓рд╛ рд╕реНрд╡рддрдГрдЪрд╛ рдзрдбрд╛ рд╣рд╡рд╛: tools тАФ agent рдЪреЗ рд╣рд╛рдд, рдЖрдгрд┐ рддреЗ рдЪрд╛рдВрдЧрд▓реЗ рдХрд╕реЗ design рдХрд░рд╛рдпрдЪреЗ.

git checkout lesson-03-tools

ЁЯФБ Lesson 02 тАФ The loop: think тЖТ act тЖТ observe

ЁЯУН You are here: Lesson 02 of 8 ┬╖ Previous: lesson-01-what-is-an-agent ┬╖ Next: lesson-03-tools


ЁЯУж What's in this branch

Lesson 01, plus the engine: the three-beat cycle every agent runs, and why each beat matters.

ЁЯзТ Explain like I'm 5

How do YOU run an errand? Not with a perfect plan тАФ with a cycle:

  1. THINK ЁЯТн тАФ "PizzasтАж first I need to know how many kids."
  2. ACT ЁЯз░ тАФ walk to the office and ask (use a tool).
  3. OBSERVE ЁЯСА тАФ "3A has 12." New fact! It changes what's next.
  4. тАжback to THINK, now smarter. Repeat until done.

The magic is beat 3: the world answers back, and the next thought uses the answer. A plan made entirely up front would break at the first surprise ("3B is on a field trip!"); the loop absorbs surprises тАФ one observation at a time.

Now the punchline from the AI course (L05/L11): the THINK beat is literally next-token prediction тАФ the model writes its reasoning and its chosen action as text. The harness executes the action and pastes the observation back onto the desk (L08). The loop is a conversation between a text-predictor and reality. That's all "ReAct" (Reason + Act тАФ the pattern's academic name) means.

ЁЯЧ║я╕П Diagram

flowchart LR
    goal["ЁЯУЛ GOAL"]
    think["ЁЯТн THINK<br/>model writes reasoning +<br/>chosen action, as text"]
    act["ЁЯз░ ACT<br/>harness executes<br/>the tool call"]
    look["ЁЯСА OBSERVE<br/>result pasted onto<br/>the desk (scratchpad)"]
    done["тЬЕ done {answer}"]
    goal --> think -->|"1"| act -->|"2"| look -->|"3 loop, smarter"| think
    think -->|"eventually"| done

тЭУ What

ЁЯдФ Why

Every agent framework тАФ however grand тАФ is this loop with accessories. When an agent misbehaves, debug it AS a loop: which beat failed? Thought wrong (bad reasoning/prompt)? Act wrong (bad tool/schema)? Observation missing or misleading (bad tool output)? The triage instinct transfers from the k8s course's lesson 16: symptoms тЖТ which part of the machine.

ЁЯзк Try it тАФ be the loop

python3 agent/agent.py --drive

You're the THINK beat now. Feel it: after each observation you know more, and your next move changes. Try deliberately skipping the lookup and calc from memory ("eh, 6 pizzas") тАФ congratulations, you've recreated the chatbot from lesson 01, and the plan is wrong. The loop exists because looking beats remembering. ЁЯСА

тПня╕П Next

The ACT beat deserves its own lesson: tools тАФ the hands of the agent, and how to design them well.

git checkout lesson-03-tools
тЖР Previouswhat is an agentNext тЖТtools

This page is the lesson's README from the lesson-02-the-loop branch, shown here so the whole School stays on one site. Code files open on GitHub at the same branch.