ЁЯФБ рдзрдбрд╛ 02 тАФ loop: рд╡рд┐рдЪрд╛рд░ тЖТ рдХреГрддреА тЖТ рдирд┐рд░реАрдХреНрд╖рдг
ЁЯУН рддреБрдореНрд╣реА рдЗрдереЗ рдЖрд╣рд╛рдд: 8 рдкреИрдХреА рдзрдбрд╛ 02 ┬╖ рдорд╛рдЧреЗ: lesson-01-what-is-an-agent ┬╖ рдкреБрдвреЗ: lesson-03-tools
ЁЯУж рдпрд╛ рдмреНрд░рдБрдЪрдордзреНрдпреЗ рдХрд╛рдп рдЖрд╣реЗ
рдзрдбрд╛ 01, рдЖрдгрд┐ рдЗрдВрдЬрд┐рди: рдкреНрд░рддреНрдпреЗрдХ agent рдЪрд╛рд▓рд╡рддреЛ рддреЗ рддреАрди рдареЛрдХреНрдпрд╛рдВрдЪреЗ рдЪрдХреНрд░, рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ рдареЛрдХрд╛ рдХрд╛ рдорд╣рддреНрддреНрд╡рд╛рдЪрд╛ рдЖрд╣реЗ.
ЁЯзТ 5 рд╡рд░реНрд╖рд╛рдВрдЪреНрдпрд╛ рдореБрд▓рд╛рд▓рд╛ рд╕рдордЬрд╛рд╡рд▓реНрдпрд╛рд╕рд╛рд░рдЦреЗ
рддреБрдореНрд╣реА рдПрдЦрд╛рджреЗ рдХрд╛рдо рдХрд╕реЗ рдХрд░рддрд╛? рдкрд░рд┐рдкреВрд░реНрдг рдпреЛрдЬрдиреЗрдиреЗ рдирд╛рд╣реА тАФ рдПрдХрд╛ рдЪрдХреНрд░рд╛рдиреЗ:
- THINK ЁЯТн тАФ "PizzasтАж рдЖрдзреА рдорд▓рд╛ рдХрд┐рддреА рдореБрд▓реЗ рдЖрд╣реЗрдд рддреЗ рдХрд│рд╛рдпрд▓рд╛ рд╣рд╡реЗ."
- ACT ЁЯз░ тАФ office рдордзреНрдпреЗ рдЬрд╛рдКрди рд╡рд┐рдЪрд╛рд░рд╛ (tool рд╡рд╛рдкрд░рд╛).
- OBSERVE ЁЯСА тАФ "3A рдордзреНрдпреЗ 12 рдЖрд╣реЗрдд." рдирд╡реАрди рддрдереНрдп! рддреНрдпрд╛рдореБрд│реЗ рдкреБрдврдЪреЗ рдкрд╛рдКрд▓ рдмрджрд▓рддреЗ.
- тАжрдкрд░рдд 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
тЭУ рдХрд╛рдп
- рдЖрдкрд▓реНрдпрд╛ code рдордзрд▓рд╛ рдПрдХ рдареЛрдХрд╛ (agent.py):
brain.decide(goal, scratchpad)(THINK) тЖТ tool dispatch (ACT) тЖТobservationрд╣реЗscratchpadрдордзреНрдпреЗ рдЬреЛрдбрд▓реЗ рдЬрд╛рддреЗ (OBSERVE).for step in range(...)рд╣реА рдУрд│рдЪ agent рдЖрд╣реЗ. - рдерд╛рдВрдмрдгреЗ: рдПрдХ рдЦрд╛рд╕
doneaction тАФ model рд╕реНрд╡рддрдГ рдард░рд╡рддреЗ рдХреА рдХрд╛рдо рд╕рдВрдкрд▓реЗ. рд╢рд┐рд╡рд╛рдп рдПрдХ рдХрдбрдХMAX_STEPSbackstop, рдХрд╛рд░рдг "рдХрдзреАрддрд░реА" рд╣реА рд╣рдореА рдирд╛рд╣реА (рдзрдбрд╛ 05). - scratchpad рд╣реА loop рдЪреА memory рдЖрд╣реЗ тАФ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдврдЪреНрдпрд╛ рд╡рд┐рдЪрд╛рд░рд╛рд▓рд╛ рдЖрдзреАрдЪреНрдпрд╛ рд╕рдЧрд│реНрдпрд╛ act/observe рдЬреЛрдбреНрдпрд╛ рджрд┐рд╕рддрд╛рдд (рдзрдбрд╛ 04 рдпрд╛рдд рдЦреЛрд▓рд╡рд░ рдЬрд╛рддреЛ).
- errors рд╕реБрджреНрдзрд╛ рддреНрдпрд╛рдЪ рд░реБрд│рд╛рдВрд╡рд░реВрди рдЬрд╛рддрд╛рдд: рдЕрдпрд╢рд╕реНрд╡реА tool рдПрдХ error STRING рдкрд░рдд рдХрд░рддреЗ, model рддреА рд╡рд╛рдЪрддреЗ рдЖрдгрд┐ рдЬреБрд│рд╡реВрди рдШреЗрддреЗ тАФ "errors are data" (MCP рд╢рд╛рд│рд╛ L06).
ЁЯдФ рдХрд╛
рдкреНрд░рддреНрдпреЗрдХ 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