Практычныя прытамулкі: АІ-агенты, пояснены: ад думак да дзеянняў
Практычныя прыказкі: АІ-агенты, пояснены: ад думак да дзеянняў — кантракты, перагледы і слоты для коду для команд, якія викорыстоўваюць гэты патэрн.
Існавайце гэта як перапрацоўаны варыянт ідэй з кнігі «AI Agents, Explained: From Thoughts to Actions» для працаваючых з апаратамі: чыстыя этапы, аранжаваныя блакіты коду і прыметкі па вяснаванню, якія застаюцца пасля перадачы задання. Этап Апглэву лепш працюе, калі яго розглядаць як меравальную плошчу. Запісаўце адна ідеальная транскрыпцыя, адзін прыклад неудачы і прыметку па адвярнуццю роботы, прычаму расшырваючы масштабы. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выходзіць, прычына неудачы павінна вказваць на адную адпаведальнасць, а не на заплутаны ланцюг заданняў.
Што такое апарат?
У стадії «Што такое агент?» неабяжна прадзефінавацыя вхідных дадзеных, адпраўніка крока і крэтарыявання для завершэння працы перад зменым коду. Аперацыйныя працавнікі павінны магчымаецца перзапускаць крок з вядомага пункта контролю, не спрабоўваючы здагадвацца пра схованы стан. Спрыяйце гэтай стадіі як дагавору межа вхіднымі дадзенымі і пасвярджанымі выходнымі рэзультатамі. Даўце назвы артыфактам, прадзефінавацыя крэтарыявання успеху і адмовіцеся ад беззвучнага частковага завершэння. Забяжнае людзкое затверджэнне для тых крокаў, якія выкарыстоўваюць грошы або зміняюць даны праработкі. Працэс складання коду не ўзроўнаваецца з повным завершэнням бізнес-процэсаў.
Ваша дзяловая прыкладка бреша вам (толькі трохі)
У стадії «Your Chat App Is» неабяжна праграмаванне вводных дадзеных, адміністратара крока і крэтэрыяў завершэння прычымкі змены коду. Аперацыйныя працавнікі павінны магчымае перзапускаць крок з вядомай точкі контролю, не падозрываючы схованы статус. Запісваць час выконання і вартасць токенаў або запытак праза функцыйнае рэзультаты. Відкрытая візуабілізація вартасцей запобегае неспакоўным рахункам, калі траекторыя пераходзіць з дэмавай версіі ў спяльныя сераўры. Заставіць людзкую апрацоўку для крокаў, якія витрачаюць грошы або зменяюць данні ў працэсе. Працаванне праз час компілявання не ўзначае повнайшага адпрацоўвання бізнес-функцыйяў.
conversation = [
{"role": "user", "content": "I need help with my order"},
{"role": "assistant", "content": "Could you provide your order number?"},
{"role": "user", "content": "It's ORDER-123"},
]
Інструменты
Для стадіі «Інструменты» неабяцо практычна апрацаваць вхідныя даны, абяцовальніка крока і крэтырыя для завершэння працы перад змінайом коду. Аператары должны магчымаць перапрацоўваць крок з вядомага пункта контролю, не спрабоўваючы здогадвацца пра схованы стан. Конфігурацыю трэба знаходзіць за межамі коду прыемлівання. Файлы сераўнавальнага сэрвісу, хранення секретных дадзенаў і флагі функцыйяў должны быць у аднам месца, якое аператары можаць пераглядаць, не чытаючы весь ланцуг задач. Аутентыфікацыя практыкуецца на воратах, а пераавтарызацыя — на роўні дадзенаў. Толькі токен-носіцель не є межай адпаведнае часткі системы. Для стадіі «Інструменты» неабяцо практычна апрацаваць вхідныя даны, абяцовальніка крока і крэтырыя для завершэння працы перад змінайом коду. Аператары должны магчымаць перапрацоўваць крок з вядомага пункта контролю, не спрабоўваючы здагадвацца пра схованы стан. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выйшоў, прычына нехарактэрыстыкі должна вказываць на адну конкрэтную абяцовку, а не на заплутаны ланцуг задач.
Як называюць інструменты?
Калі працюеце над этапам «Як называюцца інструменты», спачатку запісайце угоду: неабяжлівыя вхідныя даны, сигнал успеху і тое, што выходзіць у случае частковага невыпання. Такі список пераконвае ў тым, што пазнейшыя змены коду будуць чыстымі. Спрэтывайцеся да гэтага этапу як да угоды межа вхіднымі данымі і перакананымі выходнымі рэзультатамі. Дайце назвы артыфактам, задаце правіла пераканання успеху і не падзеўляйцеся частковым завершэнням без паведамлення. Запісвайце назву інструмента, хэш аргументаў, час адклікання і рэзультат кожнага вызову. Без такога лёгкага следу дэбагаванне губіць гадзіны.
Просты прыклад
Калі працюеце над стадзіяй «Просты прыклад», спачатку запісайце умовы викорыстання: неабяжлівыя даны, сігнал успеху і тое, што выходзіць пад частыя неудачы. Такі список дапамагае заліцварваць можлівыя змены ў кодзе. Запісваюце час выканання і кост токенаў або запытаў разам з рэзультатамі функцыяналу. Відразлівасць костаў з самага пачатку запобегае неспакойным рахункам, калі працэс пераходзіць з дэмаверсіі ў спяльныя среды. Зробіце перапаконтаванне пасля дорогіх крокаў. Програма не должна зноў нарахоўваць косты за той самы вызов LLM, калі аператар прабуе зноў выконаць пазнейшы элемент.
def multiply(a:int, b:int):
"Multiply two integers"
return a * b
Пераклад функцыі ў інструмент
Калі працуеце над перакладам функцыі ў певны этап, спачатку запісайце умовы ўгоды: неабходныя вхідныя даны, сигнал успеху і тое, што выканаецца у разы частковага невясковання. Такі список контролю дапамагае заліцварыць пазнейшыя змены ў кодзе. Зберагаюце настройкі паза кодам прыемлі. Файлы сераўнавання средовыя, хранільнікі секрэтных данных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаюць адбавіць аудыт без неабходнасці чытання всей структуры. Зявляйце логі з назвай інструмента, хэшам аргументаў, часам затрымкі і рэзультатам кожнага вызову. Без такога следу дэбаггінг агента губіць гадзіны часу. Калі працуеце над перакладам функцыі ў певны этап, спачатку запісайце умовы ўгоды: неабходныя вхідныя даны, сигнал успеху і тое, што выканаецца у разы частковага невясковання. Такі список контролю дапамагае заліцварыць пазнейшыя змены ў кодзе. Валіце маленькія, тэставаныя елементы замест большых скрыптаў. Калі якісь крок не выйшоў, прычына невясковання должна вказываць на адну адпаведальнасць, а не на заплутаную лінію обробкі.
from transformers import tool
@tool
def multiply(a: int, b: int):
"""Multiply two integers."""
return a * b
Адзіёванне інструмента
Этап адзіёвання інструмента працюе наяўна, калі яго спрыяваць як меравальную паверхню. Зберажыце адна ідеальная транскрыпцію, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць масштабы. Спрыявайце гэты этап як кантракт межа вхіднымі дадзеннямі і паверыжанымі выходнымі рэзультатамі. Даўце назвы артыфактам, задаце критэрыя успеху і не падтрымайце тыхія частковыя завершэння. Адкройце інструменты з вузкімі схемамі та чысткімі пазначэннямі побачных эфектаў. Адпаведальныя за хоставанне павінны знать, якія вызовы мутуюць стан, перш чым автаматычна ўзяць іх на спрыт.
print(multiply.to_string())
Tool Name: multiply
Description:
Multiply two integers.Arguments:
- a (int)
- b (int)
Рабочы процес агента
Этап Агентнага рабочага практыкума працюе наяўней, калі яго спрыяваць як мерыемую плошчу. Зафіксавайце адны ідеальны транскрыпт, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць сферу дзеяння. Запісвайце часы выканання і кост токеноў або запытаў па боку функцыйнаых рэзультатаў. Відразлівасць костаў з самага пачатку запобегае неспакойным рахункам, калі процес пераходзіць з дэмавайнага режыма ў спяльныя среды. Храніце стан графа ў простам і типаваным формате. Вярнутыя структуры маскуюць інфармацію пра тое, який вузел запісаў канкрэтны поле, і спакшваюць продажчыку роботу пасля перарываў.
Системны запрос
Этап System Prompt работае наяўней, калі яго спрыяваць як мерыемую паверхню. Зберагучы адна ідеальная транскрыпцію, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць сферу дзеяння. Хавайце настройкі за межамі коду прыемлівання. Файлы сераўнавальной среды, хранільнікі секрэтных дадзеных і флагі функцый должны знаходзіцца ў аднам месцы, куда аператары можуць аудытаваць іх, не чытаючы весь ланцуг. Задаеце ліміт токенав на кожны рунд і на кожную сесыю. Інструменты-агенты агрэсіўна расширваюць контекст; жорсткія ліміты не дазволяюць дэмам ператварыцца на неспакоўныя рахункі. Этап System Prompt работае наяўней, калі яго спрыяваць як мерыемую паверхню. Зберагучы адна ідеальная транскрыпцію, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць сферу дзеяння. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, неудача должна вказываць на адну адпаведальнасць, а не на заплутаны ланцуг.
<System Prompt>
You are a helpful programming assistant.
Always explain concepts before showing code.
If the user asks for unsafe code, refuse politely.
<User>
Explain binary search.
You are an AI assistant that can answer user questions.
You have access to the following tools:
Tool: search_web
Description:
Searches the web for up-to-date information.
Arguments:
- query (string)
Tool: calculator
Description:
Evaluates mathematical expressions.
Arguments:
- expression (string)
If a user's question requires current information, use search_web.
If a calculation is required, use calculator.
Otherwise, answer directly.
Мысляў:
Для стадіі «Размышлення» неабяцо практычна апранаванне інпутаў, власніка крока і крытэрыяў завершэння пры перадзмене коду. Аперацыйныя працавнікі павінны магчыма было перзапусціць крок з вядомага пункта контролю, не спрабоўваючы здагадвацца пра схованы стан. Спрацавляйце з гэтай стадіяй як з кантрактом межа інпутамі і падтвердзенымі выходамі. Даўце назвы артыфактам, практычная перапыткі на успех і адмовіцеся ад тыхнай частковай рэалізацыі, якая не паводзіцца да завершэння. Заставьце людскую апраўду для тых крокаў, якія выкарыстоўваюць грошы або зміняюць даныя у працэсе виробніцтва. Компіляцыйныя налашчэння не ўзроўнаваны з абсягам выконання задач у бізнесе.
Дзеяння: Калі AI-агент перастае размышляць і пачынае дзейсці!
Для адзінакцэй, калі выкарыстоўваецца этап AI, неабходна прадзефінаваць вхідныя даны, адпаведальную особу за крок і критэрыя завершэння пры перадзмене коду. Аператары должны магчыма было перзапускаць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Запісваць час выконання і кост токенаў або запытаў разам з функцыйнальнымі рэзультатамі. Відразлівасць костаў з самага пачатку запобегае неспакойным рахункам, калі процес пераходзіць з дэмавай версіі ў спяльныя среды. Заставіць людзкую апраўдку для тых крокаў, якія витрачаюць грошы або зменяюць даны ў працэсе виробніцтва. Праця ў часе компілявання не абавязкова значыць повнайшую рэалізацыю бізнес-функцыйяў.
{
"tool": "get_weather",
"arguments": {"location": "Tokyo"}
}
# The agent writes actual Python code as its action
cities = ["Tokyo", "Paris", "New York", "London", "Sydney"]
temps = [get_weather(city) for city in cities]
avg_temp = sum(temps) / len(temps)
print(f"Average temperature: {avg_temp}")
Заазначэнні: Навучанне на адной кожнай адзінакцыі
Для методу Аўтазважання з кожнага этапу, перш чым зменяць код, неабходна визначыць даннэ, адпаведальную особу за шаг і критэрыі завершэння. Аператары должны магчымае перайсці на гэты шаг з вядомага пункта контролю, не спрабоўваючы здогадвацца пра схованы стан. Конфігурацыю трэба залічыць параду ад коду прыкладнення. Файлы сераўіса, хранільнікі секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куда аператары можуць адбавіць аудыт, не чытаючы весь ланцуг задач. Прызначайце людскія апраўды для рэлейнаў, якія витрачаюць грошы або зменяюць даннэ ў працоўным режыме. Підключэння ў час компіляцыі не є падтверджэнням полной адпрацоўкі бізнес-процэсаў. Для методу Аўтазважання з кожнага этапу, перш чым зменяць код, неабходна визначыць даннэ, адпаведальную особу за шаг і критэрыі завершэння. Аператары должны магчымае перайсці на гэты шаг з вядомага пункта контролю, не спрабоўваючы здагадвацца пра схованы стан. Валічыце маленькія, тэставальныя елементы працоўных процэсаў працоўныя скрыпты большых масштабаў. Калі шаг не выканаецца, прычына неудачы должна вказываць на адну конкрэтную адпаведальнасць.
этага заплутанай лініі адпрацоўкі.Чэрніца аперацыйных крокаў
Калі працуеце над чэрніцай аперацыйных крокаў, спачатку запісуйце умовы контракту: неабходныя даны, сігнал успеху і тое, што выканаецца у разы частковага абякання. Гэтая чэрніца дапамагае заліцвачваць будучыя змены ў кодзе.
Документавайце як шлях успеху, так і шлях вярнення да нормальнасці. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў є частью продукту, а не дадатковымі удосконаленнямі.
Зробіце контрольны пункт пасля дорогіх крокаў. Система вярнення не павинна знову ставіць рахунак за той самы вызов LLM, калі аператар перапрыбуе пазнейшы вузел.
Фіксуйце версіі залежнасцяў і запісвайце хэш адобраза, які выканаў дэманстрацыю. Возможнасць перадарабаткі прыважней за камунітэтныя знаёмства.
Вядзьміце прыоритет над малымі, тэставанымі елементамі працэў над вялікімі скрыптамі. Калі крок абякае, прычына абякання павинна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаную лінію адпрацоўкі.
Пауза пасля дорогіх крокаў. Система адновлення не должна занова стягуваты плата за той самы вызыв LLM, калі аператар прабуе зноў запрацаваць пазнейшы вузел.
Перад паўзачэнням на вышэйшы рывень неабходна заморазіць версіі, зафіксаваць «золаты» транскрыпт для критычнага шляху і падтвердзіць крокі для вярнення да пачатковага стану. У спільных середовісках трэба встановіць ліміты швайнаў, пераканацца ў належнасці ресурсаў і вказаць чысткага адпаведальнага за зміны секрэтных даных. Краща простая надзеянасць на стабільнасць, чым хітрыя експерыменты, якія выкалічваюцца разова.
Прымечанне для пакету 7e746131b000: не клаціць ключы прадаўця ў репазітары, встановіць ліміт токена на кожную сесію і зберагчыць транскрыпты разам з фіксатрамі для ацэнкі, ўпрымку празьмены моделей заставацца порупачнымі.