ЁЯУФ рдзрдбрд╛ 04 тАФ Memory: scratchpad рдЖрдгрд┐ рдЧреГрд╣рдкрд╛рдард╛рдЪреА рдбрд╛рдпрд░реА
ЁЯУН рддреБрдореНрд╣реА рдЗрдереЗ рдЖрд╣рд╛рдд: 8 рдкреИрдХреА рдзрдбрд╛ 04 ┬╖ рдорд╛рдЧреЗ: lesson-03-tools ┬╖ рдкреБрдвреЗ: lesson-05-guardrails
ЁЯУж рдпрд╛ рдмреНрд░рдБрдЪрдордзреНрдпреЗ рдХрд╛рдп рдЖрд╣реЗ
рдзрдбреЗ 01тАУ03, рдЖрдгрд┐ рдареЛрдХреНрдпрд╛рдВрдЪреНрдпрд╛ рджрд░рдореНрдпрд╛рди agent рдХрд╛рдп рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рддреЛ тАФ рдЖрдгрд┐ рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рддрд╛ рдпреЗрдгрд╛рд░ рдирд╛рд╣реАрдд рдПрд╡рдвреНрдпрд╛ рдореЛрдареНрдпрд╛ рдХрд╛рдорд╛рдВрд╡рд░ рдХрд╛рдп рд╣реЛрддреЗ.
ЁЯзТ 5 рд╡рд░реНрд╖рд╛рдВрдЪреНрдпрд╛ рдореБрд▓рд╛рд▓рд╛ рд╕рдордЬрд╛рд╡рд▓реНрдпрд╛рд╕рд╛рд░рдЦреЗ
рдХрд░реНрддрд╛-рд╡рд┐рджреНрдпрд╛рд░реНрдереА рдХрд╕реЗ рдХрд╛рдо рдХрд░рддреЛ рддреЗ рдкрд╛рд╣рд╛: рдкреНрд░рддреНрдпреЗрдХ рдлреЗрд░реАрдирдВрддрд░ рддреЛ рдПрдХрд╛
scratchpad ЁЯУФ рдордзреНрдпреЗ рдПрдХ рдУрд│ рд▓рд┐рд╣реВрди рдареЗрд╡рддреЛ тАФ "office рдореНрд╣рдгрддреЗ 3A рдордзреНрдпреЗ 12", "calc рдореНрд╣рдгрддреЗ 8".
рдкреНрд░рддреНрдпреЗрдХ рдирд╡реАрди рд╡рд┐рдЪрд╛рд░рд╛рдЖрдзреА рддреЛ pad рдкреБрдиреНрд╣рд╛ рд╡рд╛рдЪрддреЛ. рддреЛ pad рд╣реАрдЪ agent рдЪреА
working memory рдЖрд╣реЗ тАФ рдЖрдкрд▓реНрдпрд╛ code рдордзреНрдпреЗ рдЕрдХреНрд╖рд░рд╢рдГ strings рдЪреА рдПрдХ list
(scratchpad.append(...)), рдЬреА рдкреНрд░рддреНрдпреЗрдХ рдареЛрдХреНрдпрд╛рд▓рд╛ brain рд▓рд╛ рдкрд░рдд рджрд╛рдЦрд╡рд▓реА рдЬрд╛рддреЗ.
рдкрдг pad desk рд╡рд░ рдЕрд╕рддреЛ (AI course L08!) тАФ рдЖрдгрд┐ desk рд▓рд╣рд╛рди рдЖрд╣реЗ. рд▓рд╛рдВрдм рдХрд╛рдореЗ рддреЛ рднрд░реВрди рдЯрд╛рдХрддрд╛рдд: рдкрдиреНрдирд╛рд╕ tool results, рдкреНрд░рддреНрдпреЗрдХ рдПрдХ screen рднрд░, рдЖрдгрд┐ рдЕрдЪрд╛рдирдХ рд╕реБрд░реБрд╡рд╛рддреАрдЪреА рддрдереНрдпреЗ рдЦрд╛рд▓реА рдШрд╕рд░рддрд╛рдд рдХрд┐рдВрд╡рд╛ рдордзрд▓реНрдпрд╛ рдЧрд░реНрджреАрдд рдмреБрдбрддрд╛рдд. рд╡рд┐рджреНрдпрд╛рд░реНрдереНрдпрд╛рд▓рд╛ рдЖрдкрдг рд╕реБрд░реБрд╡рд╛рдд рдХрд╛ рдХреЗрд▓реА рддреЗрдЪ рдЖрдард╡рдд рдирд╛рд╣реА. ЁЯла
рдЦрд░реЗ agents desk рднрд░рдгреНрдпрд╛рд╢реА рдПрдЦрд╛рджреНрдпрд╛ рдЪрд╛рдВрдЧрд▓реНрдпрд╛ рд╡рд┐рджреНрдпрд╛рд░реНрдереНрдпрд╛рд╕рд╛рд░рдЦреЗ рд▓рдврддрд╛рдд:
- рдЬрд╛рддрд╛ рдЬрд╛рддрд╛ рд╕рд╛рд░рд╛рдВрд╢ рдХрд░рд╛ ЁЯЧЬя╕П тАФ рджрд╣рд╛ рдЬреБрдиреНрдпрд╛ рдиреЛрдВрджреАрдВрдЪреНрдпрд╛ рдЬрд╛рдЧреА рдПрдХ рдУрд│: "рджреЛрдиреНрд╣реА рд╡рд░реНрдЧ рдореЛрдЬрд▓реЗ: рдПрдХреВрдг 23 рдореБрд▓реЗ." (Compaction.)
- рд╡реЗрдЧрд│реА рдХрд╛рдорд╛рдВрдЪреА рдпрд╛рджреА рдареЗрд╡рд╛ тЬЕ тАФ GOAL рдЖрдгрд┐ рдкреНрд░рдЧрддреА harness рд╕рд╛рдВрднрд╛рд│рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рдВрд░рдЪрд┐рдд рдпреЛрдЬрдиреЗрдд рд░рд╛рд╣рддрд╛рдд, рдлрдХреНрдд pad рд╡рд░рдЪреНрдпрд╛ рдЧрджреНрдпрд╛рдд рдирд╛рд╣реА тАФ рддреНрдпрд╛рдореБрд│реЗ "рдХрд╛рдп рдмрд╛рдХреА рдЖрд╣реЗ?" рд╣реЗ рдХрд┐рддреАрд╣реА рдЧреЛрдВрдзрд│рд╛рдд рдЯрд┐рдХрддреЗ.
- рдЧреЛрд╖реНрдЯреА рдбреЛрдХреНрдпрд╛рдмрд╛рд╣реЗрд░ рд▓рд┐рд╣реВрди рдареЗрд╡рд╛ ЁЯУБ тАФ files, databases, notes
(рдЖрдкрд▓реЗ
write_note!). desk рдХрд╛рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╣реЗ; рдЯрд┐рдХрдгрд╛рд░реА рддрдереНрдпреЗ рдЕрд╢рд╛ рдЯрд┐рдХрдгрд╛рд▒реНрдпрд╛ рдЬрд╛рдЧреА рд╣рд╡реАрдд рдЬрд┐рдереВрди agent рдирдВрддрд░ рдкреБрдиреНрд╣рд╛lookupрдХрд░реВ рд╢рдХреЗрд▓. - рдХрд╛рдорд╛рдВрджрд░рдореНрдпрд╛рдирдЪреА рджреАрд░реНрдШрдХрд╛рд▓реАрди memory = рдиреЗрдордХреЗ RAG (AI course L10): рдЬреБрдиреЗ рдЕрдиреБрднрд╡ embed рдХрд░рд╛, рдкреБрдврдЪреНрдпрд╛ рд╡реЗрд│реА рд╕рдВрдмрдВрдзрд┐рдд рдЕрдиреБрднрд╡ рдкрд░рдд рдорд┐рд│рд╡рд╛. memory рд╣рд╛ рдирд╡реАрди рд╢реЛрдз рдирд╛рд╣реА тАФ рддреА рддреБрдордЪреНрдпрд╛рдЪ рдЗрддрд┐рд╣рд╛рд╕рд╛рд╡рд░ рдШреЗрддрд▓реЗрд▓реА open-book рдкрд░реАрдХреНрд╖рд╛ рдЖрд╣реЗ.
ЁЯЧ║я╕П рдЖрдХреГрддреА
flowchart LR
subgraph desk["ЁЯкС the desk - context window, finite!"]
goal["ЁЯУЛ goal + to-do list"]
pad["ЁЯУФ scratchpad:<br/>[lookup 3A] тЖТ 12 kids<br/>[calc] тЖТ 8 тАж"]
end
think["ЁЯТн THINK reads it all"]
comp["ЁЯЧЬя╕П compaction:<br/>10 jottings тЖТ 1 summary line"]
ext["ЁЯУБ durable memory OUTSIDE:<br/>files ┬╖ DB ┬╖ RAG over past runs"]
pad --> think
goal --> think
comp -.->|"when the desk fills"| pad
ext <-.->|"write_note / lookup"| pad
тЭУ рдХрд╛рдп
- Working memory = рдкреНрд░рддреНрдпреЗрдХ рдареЛрдХреНрдпрд╛рдЪрд╛ prompt: goal + tool labels + scratchpad(-summary). рдЖрдкрд▓реЗ рдЦреЗрд│рдгреЗ рд╢реБрджреНрдз рд░реВрдк рджрд╛рдЦрд╡рддреЗ; production рдордзреНрдпреЗ compaction thresholds рдЖрдгрд┐ рд╕рдВрд░рдЪрд┐рдд рдпреЛрдЬрдирд╛ рдЬреЛрдбрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд.
- desk рдЪреЗ рдЧрдгрд┐рдд: N рдареЛрдХреЗ ├Ч M tokens/observation рд╣реЗ context window рдордзреНрдпреЗ рдмрд╕рд▓реЗрдЪ рдкрд╛рд╣рд┐рдЬреЗ тАФ рд▓рд╛рдВрдм рдХрд╛рдорд╛рдВрд╕рд╛рдареА рд╣реАрдЪ рдореБрдЦреНрдп scaling рдЪреА рднрд┐рдВрдд рдЖрд╣реЗ. рдереЛрдбрдХреНрдпрд╛рдд text рдкрд░рдд рдХрд░рдгрд╛рд░реА tools (L03) рддреБрдореНрд╣рд╛рд▓рд╛ рдЬрд╛рд╕реНрдд рдареЛрдХреЗ рдорд┐рд│рд╡реВрди рджреЗрддрд╛рдд.
- Durable memory: agent tools рджреНрд╡рд╛рд░реЗ рд╡рд╛рдЪрддреЛ рдЖрдгрд┐ рд▓рд┐рд╣рд┐рддреЛ рддреНрдпрд╛ files/DBs; рддреНрдпрд╛ рдХрд╛рдо, session рдЖрдгрд┐ desk рд╕рдВрдкрд▓реНрдпрд╛рд╡рд░рд╣реА рдЯрд┐рдХрддрд╛рдд.
- design рдордзрд▓рд╛ рдзреЛрдХреНрдпрд╛рдЪрд╛ рд╡рд╛рд╕: рдХрд╛рдо рдордзреНрдпреЗрдЪ "рд╡рд┐рд╕рд░рдгрд╛рд▒реНрдпрд╛" agent рд▓рд╛ рд╕рд╣рд╕рд╛ desk рдЪреА рд╕рдорд╕реНрдпрд╛ рдЕрд╕рддреЗ, model рдЪреА рдирд╛рд╣реА тАФ k8s L16 рд╕рд╛рд░рдЦреАрдЪ рдирд┐рджрд╛рдирд╛рдЪреА рдкрджреНрдзрдд.
ЁЯдФ рдХрд╛
"step 3 рдордзрд▓реА рдорд╛рдЭреА рд╕реВрдЪрдирд╛ рддреЛ рдХрд╛ рд╡рд┐рд╕рд░рд▓рд╛?" рдЖрдгрд┐ "30 steps рдирдВрддрд░ рддреЛ рдХрд╛ рдврд╛рд╕рд│рддреЛ?" рд╣реЗ production рдордзреНрдпреЗ agents рдмрджреНрджрд▓ рд╕рд░реНрд╡рд╛рдзрд┐рдХ рд╡рд┐рдЪрд╛рд░рд▓реЗ рдЬрд╛рдгрд╛рд░реЗ рджреЛрди рдкреНрд░рд╢реНрди рдЖрд╣реЗрдд, рдЖрдгрд┐ рджреЛрдиреНрд╣реА рдореНрд╣рдгрдЬреЗ рд╣рд╛рдЪ рдзрдбрд╛: desk рднрд░рд▓рд╛, рдЖрдгрд┐ рдХреЛрдгреАрд╣реА compaction рдХрд┐рдВрд╡рд╛ рдмрд╛рд╣реЗрд░ рд▓рд┐рд╣реВрди рдареЗрд╡рдгреЗ рдХрд░рдд рдирд╡реНрд╣рддреЗ. рдЖрддрд╛ рд╣реА рдЕрдбрдЪрдг рдпреЗрдгреНрдпрд╛рдЖрдзреАрдЪ рддреБрдореНрд╣рд╛рд▓рд╛ рдЙрдкрд╛рдп рдорд╛рд╣реАрдд рдЖрд╣реЗ.
ЁЯзк рдХрд░реВрди рдкрд╛рд╣рд╛
python3 agent/agent.py --yes && cat note.txt && rm note.txt
рдПрдХрд╛рдЪ run рдордзреНрдпреЗ рддрд┐рдиреНрд╣реА memories рдУрд│рдЦрд╛: scratchpad (рдкреНрд░рддреНрдпреЗрдХ THINK рд▓рд╛ рдкреБрд░рд╡рд▓реНрдпрд╛
рдЬрд╛рдгрд╛рд▒реНрдпрд╛ рдЫрд╛рдкрд▓реЗрд▓реНрдпрд╛ рдиреЛрдВрджреА), рдЕрдкреНрд░рддреНрдпрдХреНрд╖ to-do (brain pad рдкрд╛рд╣реВрди "рдЕрдЬреВрди рдХрд╛рдп
рдЭрд╛рд▓реЗ рдирд╛рд╣реА?" рд╣реЗ рддрдкрд╛рд╕рддреЛ), рдЖрдгрд┐ durable note (process рд╕рдВрдкрд▓реНрдпрд╛рд╡рд░рд╣реА рдЯрд┐рдХрддреЗ тАФ
рдореНрд╣рдгреВрдирдЪ agent рдмрд╛рд╣реЗрд░ рдкрдбрд▓реНрдпрд╛рд╡рд░рд╣реА cat рдЪрд╛рд▓рддреЗ). рдордЧ рдПрдХ рдХрд╛рдЧрджреА рд╕рд░рд╛рд╡: рддреБрдордЪреНрдпрд╛
agent рд▓рд╛ 500 invoices рддрдкрд╛рд╕рд╛рдпрдЪреНрдпрд╛ рдЖрд╣реЗрдд; desk рдордзреНрдпреЗ 20 рдмрд╕рддрд╛рдд. memory рдЪрд╛
рдЖрд░рд╛рдЦрдбрд╛ design рдХрд░рд╛ (batch рдХрд░рд╛, рдкреНрд░рддреНрдпреЗрдХ batch рдЪрд╛ рд╕рд╛рд░рд╛рдВрд╢ рдХрд░рд╛, рдЪрд╛рд▓реВ рдмреЗрд░реАрдЬ
рдПрдХрд╛ file рдордзреНрдпреЗ рд▓рд┐рд╣рд╛, рд╢реЗрд╡рдЯреА file рд╡рд░ рдПрдХ рдлреЗрд░реА тАФ рдЕрднрд┐рдирдВрджрди, рд╣рд╛рдЪ production pattern рдЖрд╣реЗ).
тПня╕П рдкреБрдвреЗ
рд╢рдХреНрддрд┐рд╢рд╛рд▓реА tools + рди рдердХрдгрд╛рд░рд╛ loop = рдЕрд╕рд╛ рд╡рд┐рджреНрдпрд╛рд░реНрдереА рдЬреЛ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рд╡рд░ рдЪреБрдХреВрд╣реА рд╢рдХрддреЛ. Guardrails тАФ рд╕рд╣рд▓реАрдЪреЗ рдирд┐рдпрдо.
git checkout lesson-05-guardrails