Практычныя прытамулкі: Аргументы працьма проты вашага сэрвісу агентаў: што маюць тыя, хто не пагаджаецца
Практычныя прытамулкі: Аргументы працьма проты власнага стаку агентоў: што маюць тыя, хто выступае проты: кантракты, чекі і месцы для коду для команд, якія викорыстоўваюць гэты патэрн.
Наступныя прытамлівкі паказваюць практычны шлях для розбору тэкста «Аргументы проты вашага сабеінструментаря: што праваюць тыя, хто не пагадваецца, у гэты год». Акцэнт ставіцься на контракты, перакрыццяя і месца для коду, які можна легка заменіць, а не на мотывацыйныя аспекты. Калі працуеце на стадіўцы агледзення, спачатку запісайце контракт: неабходныя даны, сігнал успеху і тое, што выканаецца у разе частковай нявыполненасці. Такі список дапамагае залічыцца з пазнейшымі змянамі ў кодзе. Документавайце як шлях успеху, так і шлях вярнення да нормы. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў є частью продукту, а не пазнейшым дапрацоўкам.
Першы прыклад: ваш інструмент, верагатна, не патрэбуе базы дадзеных типу вектараў
Сцэнарый, які выкарыстоўваецца на стадыі роботы агента, працюе найэфектывнейша, калі яго розглядаць як вимерную паверхню. Запісаўце адна «золатая» транскрыпцыю, адну сцэнарыю неудачы і прыметку па адкату перш чым расширваць масштабы. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выходзіць, прычына неудачы павінна вказываць на адную адпаведальнасць, а не на заплутаны ланцюг задач. Рэзервавайце стан графа ў простам і типізаваным формате. Вкладныя структуры маскуюць інфармацыю пра тое, який вузол запісаў які поле, і спакшуюць продажчыку роботу пасля перерываў.
WHEN A FILESYSTEM + GREP BASELINE IS ENOUGH WHEN YOU ACTUALLY NEED A VECTOR STORE
------------------------------------------------ ------------------------------------------------
Single-agent or small-team memory Retrieval across a corpus too large to
fit or scan in context at all
Facts that change over time and need Cross-document semantic search where
correction, not just accumulation keyword overlap is genuinely weak
Memory the model itself writes, Centralized memory shared by many agents
manages, and re-reads in its own loop that needs access control and auditing
Debuggable state, plain text you can Multi-hop or relational reasoning across
open, diff, and edit by hand thousands of entities where similarity
search is doing real narrowing work
import os
import subprocess
from datetime import datetime
MEMORY_DIR = "agent_memory"
def write_memory(topic: str, content: str) -> str:
os.makedirs(MEMORY_DIR, exist_ok=True)
path = os.path.join(MEMORY_DIR, f"{topic}.md")
timestamp = datetime.utcnow().isoformat()
with open(path, "a", encoding="utf-8") as f:
f.write(f"\n## {timestamp}\n{content}\n")
return path
def recall(query: str) -> str:
# ripgrep if you have it, grep -r works fine too
result = subprocess.run(
["rg", "-i", "-C", "2", query, MEMORY_DIR],
capture_output=True, text=True
)
return result.stdout or "no matches"
def list_topics() -> list[str]:
if not os.path.isdir(MEMORY_DIR):
return []
return [f[:-3] for f in os.listdir(MEMORY_DIR) if f.endswith(".md")]
Сцэнарый два: гіперграфы таксама не адрадзяюць вашу систему RAG
Два гіперграфы данага кейсу працююць наяўнай лепша, калі іх расследжваць як вимерную паверхню. Зафіксавайце адны ідеальны результат, адны кейс неудачы і прыметкі па вярнэнню да пачатковага стану пры расшырэнні масштаба. Расследжвайце гэты этап як кантракт межа вхіднымі даннымі та перакананымі выходнымі рэзультатамі. Дайце назвы артыфактам, задаць критэрыя успеху та не падтрымайце безсловесна часткова завершэння задання. Раздзеліце політыку частковай обробкі дадзеных ад політыки ўзяць іх. Змена адной з яных не павінна вымагаць перапісвання другой, калі зменяюцыся паказнікі якосці.
REPRESENTATION WHAT IT ADDS WHAT IT ACTUALLY CHANGES
--------------------- ------------------------------- --------------------------------
Plain binary graph Simplest to build and query Baseline; loses atomicity of
with standard graph tooling multi-participant facts
Reified binary graph Recovers atomicity via an Same incidence structure as a
(event node + roles) explicit "event" node hyperedge; hypertree width
shifts by a constant only
Native hypergraph Hyperedges as first-class No reduction in query
store objects, arguably cleaner complexity class over a
to write against reified graph; new storage
engine to run and maintain
Кейс трэці: Штучны інтелект не можа выконаць задання, таму што сама робота — гэта не код
Система Case three AI працюе найэфективней, калі яе розглядаць як меркавыя парадакты. Зберагачыце адны ідеальны прыклад роботы, адну ситуацыю неудачы і прыметку па вярнэнні да пачатковага стану пры расшырэнні масштаба. Запісвайце часы выканання задач і косты токеноў або запытак праза разам з функцыйнальнымі рэзультатамі. Відразлівае паказанне костаў з’являецца рана, таму не будзе неспакою з рахункамі, калі працэс перейдзе з дэмавай версіі ў спяльныя сераўры. Храніце стан графа ў простам і типаваным формате. Вярстакаваныя структуры маскуюць інфармацыю пра тое, канференц-зал напісаў канкрэтны поле, і спакшваюць продовжэнне роботы пасля перарываў. Система Case three AI працюе найэфективней, калі яе розглядаць як меркавыя парадакты. Зберагачыце адны ідеальны прыклад роботы, адну ситуацыю неудачы і прыметку па вярнэнні да пачатковага стану пры расшырэнні масштаба. Дакументавайце як шлях успеху, так і шлях вярнэння да нормальнага стану. Перапрыбуткі, людзкія контрольны пункты і обработка некоректных паведамленняў є часткай продукту, а не чымсь, што дадацца пазней.
Галоўная лінія
Для стадіі The throughline неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтырыя завершэння пры зміне коду. Аперацыйныя працавнікі должны магчымае запускаць крок з вядомай точкі контролю, не падозрываючы прыхованы стан.
CASE WHERE COMPLEXITY WAS ADDED WHERE THE REAL BOTTLENECK WAS
------------------ ---------------------------------- --------------------------------
Agent memory Vector embeddings, similarity Whether the model can use a
search, sometimes a graph layer retrieval method it already
on top of that has deep fluency with
RAG structure Native hyperedges, a new The complexity class governing
storage engine, more query cost, which the fancier
elaborate graph modeling structure barely touches
"How much of the An assumption that model Whether the job was ever
job gets automated" capability alone predicts mostly about the thing the
the automatable fraction model is good at
1. Have I benchmarked the boring baseline, not just assumed it loses?
(full-context, grep, a plain graph, a human doing the coordination)
2. Does the new structure change the metric that actually governs cost
or quality, or does it just look more sophisticated on a diagram?
3. Am I reaching for this because a benchmark or proof told me to,
or because it's what the tutorials and the funded products default to?
4. If I strip this layer back out, what specifically breaks?
If I can't name it precisely, I probably don't need the layer yet.
5. Am I solving the bottleneck I actually have, or the bottleneck
that's most interesting to build a sophisticated solution for?
Чэк-ліст для аперацый
Для стадіі Чэк-ліст для аперацый неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтырыя завершэння пры зміне коду. Аперацыйныя працавнікі должны магчымае запускаць крок з вядомай точкі контролю, не падозрываючы прыхованы стан.
Зберагаюце канфігурацыю праза ўнутрь коду аплікацыі. Файлы сяродавішча, храненні секрэтных дадзей і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаюць адбавіць аудыт без неабяжнага чытання всіх элементаў системы.
Неабяжнае падтверджэння чалавека трэба для операсій, якія витрачаюць грошы або зменяюць данні ў працэсе.
Напішыце кароткі путаводзік: як зменяць канфігурацыйныя ключы, як спрабаваць апрацаваць данні з очакальнай лісты, як вярнуць стан системы да пярэднега стану.
Документавайце як правільны, так і альтернатыўны парадкі працы системы. Перапрыбуткі, падтверджэння чалавека і обработка непрацясных паведамленняў є часткай продукту, а не дадатковым элементам пасля його стварэння.
Неабяжнае падтверджэння чалавека трэба для операсій, якія витрачаюць грошы або зменяюць данні ў працэсе.
Перш чым запускать стак, заморозьце версіі, зафіксавце «золаты» транскрыпты для критычнага шляху і паказайце способы абяроны. У спільных средах неабходны ліміты частоты запуска, пераконтроль кожнага корыстувача і чысткі власнік для змены секрэтных даных. Лепшая ўзаемна надзея, чым хітрыя разовыя дэманстрацыі.
Прыметка для d80386fab0d9: не кладзіце ключы прадаўцаў у репазітарый, задаце верхнюю межу токенав на сесію і зберагачыце транскрыпты празаўсёды з фікстурамі для ацэнкі, каб пазнейшыя замены моделяў заставаліся порównаннімі.
Для прыметкі па забезпечэнню безпекі на стадыі 0 паказвайце вхідныя даны, власніка крока і критэрыя завершэння прычымкі перад зменай коду. Аператары должны магчымаць перзапуск крока з вядомай точкі контролю без адгадванняя схованага стану. Запісваюце часы выконання і косты токенав або запытак празаўсёды з функцыйнаімі рэзультатамі. Відкрытыя косты з самага пачатку запобегаюць неспадзяваным рахункам, калі шлях пераходзіць з дэманстрацыі ў спільныя среды.
Дзеянне паўжасткі 0/867: звярніце увагу на час выканання, клас памылкі і колькасць викорыстоўваных токенаў для гэтага зазначэння, а пасля, на аднойчынай базе паказаных пытанняў, а не на індывідуальных прыкладах, выявіце, чы рэшыцца застаўіць змяну.
Працюючы над першым этапам зазначэння паўжасткі, спачатку запісайце контракт: неабходныя даны, сігнал успеху і тое, што выканаецца у разе частковай памылкі. Такі список контроля дапамагае заставаць пасляэтапныя змяны у кодзе чыстымі. Запісуйце адночасна шлях успеху і шлях вяснавання ситуацыі. Перапрыбуткі, людзкія контрольныя пункты і обработка некоректных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней.
Дзеянне паўжасткі 1/867: звярніце увагу на час выканання, клас памылкі і колькасць викорыстоўваных токенаў для гэтага зазначэння, а пасля, на аднойчынай базе паказаных пытанняў, а не на індывідуальных прыкладах, выявіце, чы рэшыцца застаўіць змяну.
Этап 2 практыкы зміцнення працюе найэфективней, калі яго розглядаць як вимерную паверхню. Зафіксавце адны ідеальны прыклад роботы, адну справу з бягамі та прыметкі па варыянты адвярнення перш чым расширваць сферу дзеяння. Разглядвайце гэты этап як кантракт межа вхіднымі даннымі та пераканаленымі выходнымі рэзультатамі. Даўце назвы артыфактам, задаце критэрыя успеху та адмовіцеся ад мовчанкавага частковага завершэння задачы.
Дзеярожны пункт 2/867: зважыце час выканання, класі каштоўкаў та витраты токенав для гэтай прыметкі, а пасля, на аднойчынных критэрыях, а не на асоціяціях, вынікніце рашэння пра тое, чы робіць змяны.
Для трэція ўрагу практыкы забезпечэння надзеі неабходна прадзефінавацыя вхідных дадзеных, адпаведнага адпаведальнага за крок і крэтарыяў завершэння працы перад зменым коду. Аперацыйныя працавнікі павінны магчымае перадзеўжваць выкананне кроку з вядомай точкі контролю, не падозрываючы прыхованы стан системы. Конфігурацыю трэба залічваць параду коду прыкладнення. Файлы сераўіса, хранальнікі секрэтных дадзеных і флагі функцыйяў павінны знаходзіцца ў адном месцы, якое працавнікі можуць пераглядаць, не чытаючы весь код прыкладнення.
Дзеярожныя деталі 3/867: памерыце час выканання, класіі каштоўкаў і выкарыстоўвання токенаў для гэтай практыкі, а потым вынесце рашэнне пра тое, чы хацяць залічыць змену, на адной падставе фіксаванага набору пытанняў, а не на адной личнай думцы.
Калі працуеце над 4-й стадзіяю практыкы забезпечэння безпекі, спачатку запісайце умовы кантракта: неабяжлівыя данні, сігнал успеху і тое, што выходзіць на падзею частковага нявыпання. Такі список контроля дапамагае заліцвачыць пазнейшыя змены ў кодзе. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, прычына нявыпання павінна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач.
Дзеянне 4/867 практыкы забезпечэння безпекі: замерайце час выканання, класы каштоўкаў і витрату токенав для гэтай практыкі, а потым вырашайце, чы робіць змены на адной основе фіксаванага набору пытанняў, а не на адной лячбе.
4-я стадзія практыкы забезпечэння безпекі працюе лепей, калі яе спрыяваць як меравальную плошчу. Запісайце адны ідеальны прыклад роботы, адзін кейс нявыпання і прыказку па адкатаванні, перш чым расширваць масштаб. Запісвайце часы выканання і вартасць токенав або запыткаў разам з функцыйнальнымі рэзултатамі. Відкрытая інформацыя пра вартасці запобегае неспакойным рашчыткам, калі процес пераходзіць з дэмаверсіі ў спяльныя среды.
Дзеянне паўжчання 5/867: звярніце увагу на час выканання, клас памылакі і колькасць выкорыстоўваных токенаў для гэтага запісу, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на асобістых спазырэннях, выявіце, чы хацяце застаўіць змену.
Для 6-й стадзіі паўжчання неабходна перад змянай коду чытко визначыць вхідныя даны, адпаведальнага за крок і критэрыя завершэння. Аперацыйныя працавнікі должны магчымае перадзвануць гэты крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Неабходна адначасова задокументаваць шлях успеху і шлях вярнення. Практыка павторных спроб, людзкія перакрыцця і обработка некоректных паведамленняў є частью продукту, а не чымсь, што дадаецца пазней.
Дзеянне паўжчання 6/867: звярніце увагу на час выканання, клас памылакі і колькасць выкорыстоўваных токенаў для гэтага запісу, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на асобістых спазырэннях, выявіце, чы хацяце застаўіць змену.
Калі працуеце над 7-м стадзіям заўважэння па змяцненню, спачатку запісайце контракт: неабходныя вхідныя даны, сигнал успеху і тое, што выходзіць у разе частковага невыпання. Такі список пераконтроўвае чыстасць пазнейшых змян у кодзе. Спрыятлівае ставленне да гэтай стадзіі як да контракта межа вхіднымі данымі і перакананымі выходнымі рэзультатамі. Дайце назвы артыфактам, задаце критэрыя успеху і адмовіцеся ад мовчанкавага частковага завершэння.
Дзеянні па змяцненню 7/867: вымерыце час выканання, класію памылак і витрату токенав для гэтага заўважэння, а пасля выберыце, чы робіць змяну на адной пазначанай базе пытанняў, а не на адной лячбе.
7-я стадзія заўважэння па змяцненню працуе найкраща, калі яе спрыятлівае ставленне як да вимернай плошчы. Запісайце адна ідеальная транскрыпцыя, адзін прыклад невыпання і заўважэнне па анулюванні перш чым расширваце сферу дзейснення. Зберагаюце конфігурацыю паза кодам прыкладнага програмнага забезпечэння. Файлы сераўіса, хранільнікі секрэтных дадзеных і флагі функций должны знаходзіцца ў аднам месцы, якое аператары можаць пераканаць без чытання всіх дадзеных.
Дзеянне паўжчання 8/867: звярніце увагу на час выканання, клас памылакі і колькасць выкорыстоўваных токенаў для гэтага запісу, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на асобістых спазыраннях, выявіце, чы хацяце застаўіць змены.
Для 9-го этапу паўжчання неабходна перад змянай коду чытко визначыць вхідныя даны, адпаведальнага за крок і критэрыя завершэння. Аперацыяныя працавнікі должны магчымае перадзвануць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выйшоў, прычына неудачы должна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны процес.
Дзеянне паўжчання 9/867: звярніце увагу на час выканання, клас памылакі і колькасць выкорыстоўваных токенаў для гэтага запісу, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на асобістых спазыраннях, выявіце, чы хацяце застаўіць змены.
Калі працуеце над 10-ю стадзіяй ударожэння, спачатку запісайце шаблон кантракта: неабяжныя даны, сігнал успеху і тое, што выходзіць пад частковыя неудачы. Такі список контроля дапамагае залічваць пазнейшыя змены ў кодзе чыста.
Запісвайце час выканання, а таксама вартасць токена чыў запиту пад функцыйнальнымі рэзультатамі. Відразувыя даны пра вартасць запобегаюць неспакоўным рахункам, калі процес пераходзіць з дэмаверсіі ў спяльныя среды.
Дакладнасць ударожэння 10/867: замеры часу выканання, класу каштоўкаў і витрачання токена для гэтай стадзіі, пасля чаго прымкніце рашэнне пра тое, чы хацеце застаўіць змену, адпаведна фіксаванаму набору пытанняў, а не індывідуальным спостарожэнням.
11-я стадзія ударожэння будзе эфектывная, калі яе спрыяваць як меравальную плошчу. Запісайце адну ідеальную транскрыпцыю, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць масштаб.
Документавайце як «вялікі» шлях выканання, так і шлях вярнэння. Перапрыбуткі, людзкія контролы і обработка некоректных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней.
Дзеянне паўжыцьнявання 11/867: змяроўвае час выканання, класію памылак і колькасць токенаў, выкорыстаных для гэтай змены, а пасля прымае рашэнне пра тое, чы хацяць яе застаўіць, стварыўшы фіксаваны набор пытанняў, а не спакойнае адгукванне.
Для 12-го этапу паўжыцьнявання неабходна перад змянай коду задаць вхідныя даны, адпаведальнага за этап і крэтырыя завершэння. Аперацыяныя системы должны магчымае быць перадзвануць гэты этап з вядомага пункта контролю, не прыпускаючы невідомага стану. Цей этап трэба спрацавваць як кантракт межа вхіднымі данымі і перакананымі выходнымі рэзультатамі. Назваць артыфакты, задаць перакананні на успех і адмовіцца ад беззвучнага частковага завершэння.
Дзеянне паўжыцьнявання 12/867: змяроўвае час выканання, класію памылак і колькасць токенаў, выкорыстаных для гэтай змены, а пасля прымае рашэнне пра тое, чы хацяць яе застаўіць, стварыўшы фіксаваны набор пытанняў, а не спакойнае адгукванне.
Калі працуеце над стадзіяй 13 з адаптавання захоўнай системы, спачатку запісаце кантракт: неабходныя даны, сігнал успеху і тое, што выходзіць на частыя неудачы. Такі список контроля дапамагае залічваць пазнейшыя змены ў кодзе чыста і адкрыта. Зберагайце настройкі паза кодам прыемліка. Файлы сераўнавання, хранільнікі секрэтных данных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць пераглядаць іх без неабходнасці чытання всей структуры.
Дакладнасць адаптавання 13/867: звярніце увагу на час выканання, класы памылак і витрату токенав для гэтай стадзіі, а пасля вырашыце, чы робіць змены на адной пазалежнасці ад фіксаванага набору пытанняў, а не на адной лічбе прыкладаў.
Стадзія 14 з адаптавання захоўнай системы працюе лепей, калі яе спрыямаць як меравальную плошчу. Запісаце адны ідеальны прыклад роботы, адзін кейс неудачы і прыказку па вярнэнню да пачатковага стану, перш чым расширваць сферу дзеяння. Вольбіце маленькія, тэставаныя елементы замест большых скрыптав. Калі якісь крок не выйшае, неудача должна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны процес.
Дзеянне паўжырання 14/867: звярніце увагу на час выканання, класыя ошибак і колькасць токенаў, якія былі выкарыстаны для гэтага зазначэння, а пасля, на аднойчыне з фіксаваным наборам пытанняў, а не на асобістых спазырэннях, выявіце, чы хацяце застаўіць змены.
Для 15-го этапу паўжырання неабходна перад змянай коду чытко визначыць вхідныя даны, адпаведальнага за этап і крэтырыя завершэння. Аперацыяныя системы павінны магчымае перадзваначыць гэты этап з вядомага пункта контролю, не прымусваныя здагадвацца пра схованы стан. Запісвайце час выканання і колькасць токенаў або запытак праза функцыйнае рэзультат. Відкрытая інформацыя пра витраты запобегае неспакою, калі процес пераходзіць з дэмаверсіі ў спяльныя среды.
Дзеянне паўжырання 15/867: звярніце увагу на час выканання, класыя ошибак і колькасць токенаў, якія былі выкарыстаны для гэтага зазначэння, а пасля, на аднойчыне з фіксаваным наборам пытанняў, а не на асобістых спазырэннях, выявіце, чы хацяце застаўіць змены.