ЁЯУЛ рдзрдбрд╛ 11 тАФ Agents рдЖрдгрд┐ tools: to-do рдпрд╛рджреА рдЖрдгрд┐ hall pass рдЕрд╕рд▓реЗрд▓рд╛ рд╡рд┐рджреНрдпрд╛рд░реНрдереА
ЁЯУН рддреБрдореНрд╣реА рдЗрдереЗ рдЖрд╣рд╛рдд: 12 рдкреИрдХреА рдзрдбрд╛ 11 ┬╖ рдорд╛рдЧреЗ: lesson-10-rag ┬╖ рдкреБрдвреЗ: lesson-12-diffusion
ЁЯУж рдпрд╛ рдмреНрд░рдБрдЪрдордзреНрдпреЗ рдХрд╛рдп рдЖрд╣реЗ
рдзрдбреЗ 01тАУ10, рдЖрдгрд┐ "AI agents" рдореНрд╣рдгрддрд╛рдирд╛ рд╕рдЧрд│реНрдпрд╛рдВрдирд╛ рдЕрднрд┐рдкреНрд░реЗрдд рдЕрд╕рд▓реЗрд▓рд╛ рдирдореБрдирд╛: рдЕрд╕реЗ models рдЬреЗ рдлрдХреНрдд рдЙрддреНрддрд░ рджреЗрдд рдирд╛рд╣реАрдд тАФ рддреЗ loop рдордзреНрдпреЗ, tools рд╡рд╛рдкрд░реВрди рдХреГрддреА рдХрд░рддрд╛рдд.
ЁЯзТ 5 рд╡рд░реНрд╖рд╛рдВрдЪреНрдпрд╛ рдореБрд▓рд╛рд▓рд╛ рд╕рдордЬрд╛рд╡рд▓реНрдпрд╛рд╕рд╛рд░рдЦреЗ
рдЖрддрд╛рдкрд░реНрдпрдВрдд рдЖрдкрд▓рд╛ рд╡рд┐рджреНрдпрд╛рд░реНрдереА рдлрдХреНрдд рдмреЛрд▓рддреЛ. "847├Ч293 рдХрд┐рддреА?" рд╡рд┐рдЪрд╛рд░рд╛ рдЖрдгрд┐ рддреЛ рд╢рдХреНрдп рд╡рд╛рдЯрдгрд╛рд░реЗ рдЕрдВрдХ рдУрд│рдЦрддреЛ ЁЯШм (рдзрдбрд╛ 05 тАФ рдЦрд░реЗ рдЧрдгрд┐рдд рдирд╛рд╣реА!). рд╡рд┐рдЪрд╛рд░рд╛ "рдорд╛рдЭреНрдпрд╛ calendar рд╡рд░ рдХрд╛рдп рдЖрд╣реЗ?" рдЖрдгрд┐ рддреНрдпрд╛рд▓рд╛ рддреЗ рдХрд│реВ рд╢рдХрдд рдирд╛рд╣реА (desk рд╡рд░ рдХрд╛рд╣реАрдЪ рдирд╛рд╣реА, L08).
рдЖрддрд╛ рддреНрдпрд╛рд▓рд╛ рд╢рд╛рд│реЗрдЪреЗ рддреАрди рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рджреНрдпрд╛:
- ЁЯз░ Tools: рдПрдХ calculator, рдЧреНрд░рдВрдерд╛рд▓рдпрд╛рдЪрд╛ catalog, рдПрдХ phone, forms submit рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА. рдФрдкрдЪрд╛рд░рд┐рдХрдкрдгреЗ: functions рдЪреА рд╡рд░реНрдгрдиреЗ тАФ "calculator: рдорд▓рд╛ рдПрдХ expression рджреНрдпрд╛, рдореА рддреНрдпрд╛рдЪреА рдХрд┐рдВрдордд рдкрд░рдд рджреЗрддреЛ."
- ЁЯУЛ рдПрдХ to-do рдпрд╛рджреА: рдкреНрд░рд╢реНрди рдирд╡реНрд╣реЗ, рдПрдХ рдзреНрдпреЗрдп тАФ "рд╡рд░реНрдЧрд╛рдЪреА рд╕рд╣рд▓ рдЖрдпреЛрдЬрд┐рдд рдХрд░рд╛."
- ЁЯОл рдПрдХ hall pass: рдЬрд╛рдКрди рдЧреЛрд╖реНрдЯреА рдХрд░реВрди рдкрд░рдд рдпреЗрдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА.
рдЖрдгрд┐ рддреЛ agent loop рдЪрд╛рд▓рд╡рддреЛ: рд╡рд┐рдЪрд╛рд░ тЖТ рдХреГрддреА тЖТ рдирд┐рд░реАрдХреНрд╖рдг тЖТ рдкреБрдиреНрд╣рд╛ тАФ рдзреНрдпреЗрдп рдкреВрд░реНрдг рд╣реЛрдИрдкрд░реНрдпрдВрдд, рдХрд┐рдВрд╡рд╛ steps рдЪреЗ рдмрдЬреЗрдЯ, timeout рдХрд┐рдВрд╡рд╛ рд╡рд╛рд░рдВрд╡рд╛рд░ рдЕрдкрдпрд╢ рдерд╛рдВрдмрд╛рдпрд▓рд╛ рд╕рд╛рдВрдЧреЗрдкрд░реНрдпрдВрдд:
рд╡рд┐рдЪрд╛рд░: "рд╕рд╣рд▓. рдЖрдзреА: рдХрд┐рддреА рдореБрд▓реЗ? рдореА roster рддрдкрд╛рд╕рддреЛ." рдХреГрддреА:
roster.count()рдмреЛрд▓рд╛рд╡рддреЛ тАФ рдЧрджреНрдп рдирд╡реНрд╣реЗ, tool-call рд▓рд┐рд╣рд┐рддреЛ. рдирд┐рд░реАрдХреНрд╖рдг: result (23) рддреНрдпрд╛рдЪреНрдпрд╛ desk рд╡рд░ рдпреЗрддреЛ. рд╡рд┐рдЪрд╛рд░: "23 рдореБрд▓реЗ, рдореНрд╣рдгрдЬреЗ 3 pizzasтАж рдкреБрдвреЗ рд╣рд╡рд╛рдорд╛рди рддрдкрд╛рд╕рддреЛ." тАж
рдкреНрд░рддреНрдпреЗрдХ рдлреЗрд░реА рдЕрдЬреВрдирд╣реА рдзрдбрд╛ 05 рдЪрд╛ next-token рдЦреЗрд│рдЪ рдЖрд╣реЗ! "tool рдмреЛрд▓рд╛рд╡рдгреЗ" = model рдиреЗ рдПрдХ рдЦрд╛рд╕ token рдирдореБрдирд╛ рд▓рд┐рд╣рд┐рдгреЗ рдЬреЛ harness рдЪрд╛рд▓рд╡рддреЛ; result desk рд╡рд░ paste рд╣реЛрддреЛ; рдЕрдВрджрд╛рдЬ рдкреБрдвреЗ рдЪрд╛рд▓реВ рд░рд╛рд╣рддреЛ. рдмреЛрд▓рдгреЗ, рдкрд░рд┐рдгрд╛рдорд╛рдВрд╕рд╣.
рджреЛрди рдкреНрд░рд╛рдорд╛рдгрд┐рдХ рдЗрд╢рд╛рд░реЗ: рдЪреБрдХрд╛ рд╡рд╛рдврдд рдЬрд╛рддрд╛рдд (рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ рдПрдХ рдЪреБрдХреАрдЪреЗ рд╡рд│рдг = рддреНрдпрд╛рдирдВрддрд░ рд╕рдЧрд│реАрдХрдбреЗ рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕рд╛рдиреЗ рдЪреВрдХ тАФ рдкрд╛рдп рдлреБрдЯрд▓реЗрд▓рд╛ рдзрдбрд╛ 09 ЁЯж┐), рдЖрдгрд┐ рд╕реНрд╡рд╛рдпрддреНрддрддреЗрд▓рд╛ guardrails рд▓рд╛рдЧрддрд╛рдд: рдореБрд│рд╛рдд read-only tools, рдЦрд░реНрдЪрд╛рдЪреНрдпрд╛ рдорд░реНрдпрд╛рджрд╛, human sign-off gates ("рд╕рд╣рд▓реАрдЪреНрдпрд╛ forms рд╡рд░ рд╢рд┐рдХреНрд╖рд┐рдХреЗрдЪреА рд╕рд╣реА рд▓рд╛рдЧрддреЗ"), рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ step рдЪреЗ logs.
ЁЯЧ║я╕П рдЖрдХреГрддреА
flowchart LR
goal["ЁЯУЛ goal: 'organize<br/>the class picnic'"]
think["ЁЯза THINK<br/>next-token prediction<br/>planning in words"]
act["ЁЯз░ ACT<br/>writes a tool call:<br/>roster.count()"]
look["ЁЯСА LOOK<br/>result lands on the desk:<br/>23 kids"]
done["тЬЕ goal met - report back"]
guard["ЁЯЪз guardrails: read-only default ┬╖<br/>caps ┬╖ human sign-off ┬╖ logs ┬╖<br/>max steps ┬╖ timeout ┬╖ stop on repeated failure"]
goal --> think -->|"1"| act -->|"2 harness executes"| look -->|"3 loop"| think
think -->|"4 eventually"| done
guard -.-> act
тЭУ рдХрд╛рдп
- Tool/function calling: рддреБрдореНрд╣реА tools рдЪреЗ рд╡рд░реНрдгрди рдХрд░рддрд╛ (рдирд╛рд╡, params, рдЙрджреНрджреЗрд╢); model structured calls output рдХрд░рддреЛ; рддреБрдордЪрд╛ code рддреЗ рдЪрд╛рд▓рд╡реВрди results рдкрд░рдд рджреЗрддреЛ. model рдереЗрдЯ рдХрд╢рд╛рд▓рд╛рдЪ рд╣рд╛рдд рд▓рд╛рд╡рдд рдирд╛рд╣реА тАФ рддреЗ harness рдХрд░рддреЗ.
- Agent = LLM + tools + loop + рдзреНрдпреЗрдп. RAG (L10) рд╣реЗ agent рдмреЛрд▓рд╛рд╡реВ рд╢рдХреЗрд▓ рдЕрд╕реЗ рдПрдХ tool рдЖрд╣реЗ; "agentic RAG" = search рдХреЗрд╡реНрд╣рд╛ рдХрд░рд╛рдпрдЪрд╛ рд╣реЗ рдард░рд╡рдгреЗ.
- Design рдЪреНрдпрд╛ рдХрд│рд╛: рдХреЛрдгрддреА tools (рдХреНрд╖рдорддрд╛), рдХреЛрдгрддрд╛ model (рд╡рд┐рд╡реЗрдХ), loop рдЪреНрдпрд╛ рдорд░реНрдпрд╛рджрд╛ тАФ max steps, timeout, рд╡рд╛рд░рдВрд╡рд╛рд░ рдЕрдкрдпрд╢рд╛рд╡рд░ рдерд╛рдВрдмрдгреЗ (рдмреЗрд▓рдЧрд╛рдо рд╣реЛрдгреНрдпрд╛рдкрд╛рд╕реВрди рд╕рдВрд░рдХреНрд╖рдг), рд▓рд╛рдВрдм рдХрд╛рдорд╛рдВрд╕рд╛рдареА memory/scratchpads, рдЖрдгрд┐ evals тАФ рдЕрдВрджрд╛рдЬрд╛рдиреЗ рдирд╡реНрд╣реЗ, рдХрд╛рдорд╛рдЪреЗ рдпрд╢ рдореЛрдЬрд╛.
- Multi-agent = рд╡рд┐рджреНрдпрд╛рд░реНрдереНрдпрд╛рдВрдиреА рд╡рд┐рджреНрдпрд╛рд░реНрдереНрдпрд╛рдВрдирд╛ рдХрд╛рдо рд╕реЛрдкрд╡рдгреЗ (рдПрдХ рд╕рдВрд╢реЛрдзрдХ, рдПрдХ рд▓реЗрдЦрдХ, рдПрдХ рддрдкрд╛рд╕рдгрд╛рд░рд╛). рддрд╛рдХрджрд╡рд╛рди, рдЖрдгрд┐ рд╡рд╛рдврдд рдЬрд╛рдгрд╛рд▒реНрдпрд╛ рдЪреБрдХрд╛рдВрдЪрд╛ рдЗрд╢рд╛рд░рд╛ рдЕрдиреЗрдХ рдкрдЯреАрдиреЗ рд╡рд╛рдврд╡рддреЗ тАФ рдПрдХрд╛ рд╡рд┐рджреНрдпрд╛рд░реНрдереНрдпрд╛рдиреЗ рдЖрдгрд┐ рдереЛрдбреНрдпрд╛ tools рдиреЗ рд╕реБрд░реБрд╡рд╛рдд рдХрд░рд╛.
- рддреБрдореНрд╣реА рдПрдХ рдкрд╛рд╣рд┐рд▓рд╛ рдЖрд╣реЗ: files рд╡рд╛рдЪрдгрд╛рд░реЗ, tests рдЪрд╛рд▓рд╡рдгрд╛рд░реЗ, code edit рдХрд░рдгрд╛рд░реЗ, рдкреБрдиреНрд╣рд╛ рдкреНрд░рдпрддреНрди рдХрд░рдгрд╛рд░реЗ coding assistants тАФ рд╣рд╛рдЪ loop, рдХрд╛рдорд╛рдЪреЗ рдХрдкрдбреЗ рдШрд╛рд▓реВрди.
ЁЯдФ рдХрд╛
Agents рдордзреНрдпреЗ AI рд╕рд▓реНрд▓реНрдпрд╛ рдХрдбреВрди рдкрд░рд┐рдгрд╛рдорд╛рдВ рдХрдбреЗ рд╡рд│рддреЛ тАФ booking, рджреБрд░реБрд╕реНрддреА, filing, рд╕рдВрд╢реЛрдзрди. рдкреНрд░рддреНрдпреЗрдХ framework рдЪреА рдореЛрдареА рдмрд╛рддрдореА ("autonomous agents! computer use!") рдореНрд╣рдгрдЬреЗ рд╣рд╛рдЪ рдПрдХ loop, рдЪрд╛рдВрдЧрд▓реНрдпрд╛ tools рдЖрдгрд┐ рд▓рд╛рдВрдм рджреЛрд░реАрд╕рд╣. рд╣рд╛ loop тАФ рдЖрдгрд┐ рддреЛ рдЕрдЬреВрдирд╣реА рдкрд╛рд╡рддреНрдпрд╛рдВрд╕рд╣ next-token prediction рдЪ рдЖрд╣реЗ рд╣реЗ тАФ рдЬрд╛рдгрд▓реНрдпрд╛рдиреЗ рддреБрдореНрд╣реА рдЬрд╛рджреВ рдЖрдгрд┐ рдзреЛрдХрд╛ рджреЛрдиреНрд╣реА рд╢рд╛рдВрддрдкрдгреЗ рддреЛрд▓реВ рд╢рдХрддрд╛.
ЁЯзк рдХрд░реВрди рдкрд╛рд╣рд╛ (harness рддреБрдореНрд╣реА рд╡реНрд╣рд╛ тАФ 10 рдорд┐рдирд┐рдЯреЗ)
рдХреЛрдгрддреНрдпрд╛рд╣реА chatbot рдордзреНрдпреЗ рд╣реЗ paste рдХрд░рд╛:
You have one tool: calc(expression) тЖТ number. To use it, reply with
ONLY: CALL calc("..."). I'll reply with the result. Then continue.
Task: what's 847├Ч293, minus 12% of it, split across 23 kids?
рддреНрдпрд╛рдЪреЗ calls рддреБрдореНрд╣реА рд╕реНрд╡рддрдГ рдЪрд╛рд▓рд╡рд╛ (рдХреЛрдгрддрд╛рд╣реА calculator), results рдкрд░рдд paste рдХрд░рд╛, рдЖрдгрд┐ рддреЛ loop рдХрд░рдд рдЙрддреНрддрд░рд╛рдкрд░реНрдпрдВрдд рдкреЛрд╣реЛрдЪрддрд╛рдирд╛ рдкрд╛рд╣рд╛. рдХрд╛рдорд╛рдЪреА рд╡рд╛рдЯрдгреА рдХрд╢реА рдЪрд╛рд▓рддреЗ рддреЗ рдЕрдиреБрднрд╡рд╛ тАФ model рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЛ, tools рдЧрдгрдирд╛ рдХрд░рддрд╛рдд, desk рд╕реНрдерд┐рддреА рд╡рд╛рд╣реВрди рдиреЗрддреЗ. guardrail рддреБрдореНрд╣реА рдЖрд╣рд╛рдд. ЁЯЪз
тПня╕П рдкреБрдвреЗ
рд╢реЗрд╡рдЯрдЪрд╛ рдзрдбрд╛: рдЪрд┐рддреНрд░ рдХрд╛рдврдгрд╛рд░реЗ models ЁЯОи тАФ "TV static тЖТ рдЪрд┐рддреНрд░" рдХрд╕реЗ рдЪрд╛рд▓рддреЗ (diffusion), рдЖрдгрд┐ рдПрдХрд╛ model рд▓рд╛ рдкрд╛рд╣рддрд╛ рдЖрдгрд┐ рдРрдХрддрд╛рд╣реА рдХрд╕реЗ рдЖрд▓реЗ.
git checkout lesson-12-diffusion