Практычныя прытамкі: розумныя спосабы паспрабаваць пакращыць адказы АІ-агентаў у працэйнай суперактывасці
Практычныя прыказкі: розумныя спосабы падборчага паслядовання адпаведных адказоў агента AI у працэсе выканання: контракты, перакрычанні та слоты для коду для команд, якія використоўваюць гэты патэрн.
Існавайце гэта як перапрацоўаны варыянт ідэй з документа “Розумныя спосабы падтрымкі каштоўнасці адпаведзей AI-агента ў працэсе вырабоцтва”: чыстыя этапы, арганізаваныя блакі коду і прыметкі з падтрымкай, якія застаюцца пасля перадачы. Этап “Апглэйв” найкраща працюе, калі яго розглядаць як мерыябельную плошчу. Запісайце адна ідеальная транскрыпцыю, адзін прыклад неудачы і прыметкі з вярненням да пачатковага стану, перш чым расширваць масштабы. Запісвайце час выканання і каштоўнасць токеноў чыста запытаў праз адныя з функцыйнальных рэзультатаў. Відразлівае паказанне каштоўнасці з’являецца першым праблэмам, калі процес пераходзіць з дэмаверсіі ў спакульнаныя сераўысы.
1. Дайце агенту правільны контэкст, а не большы контэкст
Для стадіі «1. Выдача агенту» неабяцкова прадварыць заданні для вводу, адпаведнага власніка крока і крэтарыяў завершэння працы, перш чым зменяць код. Аператары должны магчымае запускать крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Конфігурацыю трэба захаваць праз аплікацыйны код. Файлы сераўнавання, хранільнікі секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, якое аператары можаць пераглядаць, не чытаючы весь граф. Прызначыце людскія аправарэння для рэласаў, якія витрачаюць грошы або зменяюць данні ў працэсе. Падключэння праз час компілявання не ўзроўнаўцяеся з повнайасцю бізнес-процэсаў.
User Question
↓
Query Embedding
↓
Vector Search
↓
Top-K Results
↓
Reranking
↓
Relevant Chunks
↓
LLM
↓
Final Answer
2. Адлучэнне прычыны бягаў перш чым зменіць LLM
Для стадіі «2 Debug Retrieval Before» неабяцо пазначыць вхідныя даны, адпаведальнага за крок і крэтыяры завершэння пры перадзеіснаванні коду. Аператары должны магчымаць перзапуск кроку з вядомай точкі контролю, не падозрываючы схованы стан. Неабяцо задокументаваць як шлях успеху, так і шлях вярнення да нормальнага стану. Перапрыбуткі, людзкія перакрыцці і обробка некоректных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней. Калі наступны крок — це код або вызов інструмента, лепш выкарыстоўваць структураваныя выходныя даны з перакананнем схэмы, чым вольныя тэкстовыя апісанні.
Question
↓
Query Transformation
↓
Retrieved Documents
↓
Similarity Scores
↓
Reranking
↓
Final Context
↓
Prompt
↓
LLM Response
results = vector_store.similarity_search(
query=user_question,
k=5
)
for result in results:
print("Score:", result.score)
print("Source:", result.metadata.get("source"))
print("Content:", result.page_content[:500])
3. Паспрабаваць пакращыць разбіўку на часткі пры збільшэнні контексту
Для стадіі «3. Удосконаленне разбійвання на часткі» неабяцо пазначыць вхідныя даны, адміністратара крока і крэтырыя для завершэння пры зміне коду. Аперацыйныя працавнікі должны магчымаць перзапуск крока з вядомай точкі контролю, не спрабоўваючы здагадвацца пра схованы стан. Валіць маленькія, тэставальныя елементы працэзнасупрацоўкі замест вялічзючых скрыптав. Калі крок не выйшаў, прычына неудачы павінна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцоўку крокаў. Заставіць людзкую апрацоўку для тых крокаў, якія выкарыстоўваюць грошы або зміняюць даны у працэзнасупрацоўцы. Компіляцыйныя налашчэння не ўзначаюць повнасці бізнес-процэсаў. Для стадіі «3. Удосконаленне разбійвання на часткі» неабяцо пазначыць вхідныя даны, адміністратара крока і крэтырыя для завершэння пры зміне коду. Аперацыйныя працавнікі должны магчымаць перзапуск крока з вядомай точкі контролю, не спрабоўваючы здагадвацца пра схованы стан. Запісваць час выконання і кост токенаў аб запытаў разам з функцыйнальнымі рэзультатамі. Відразлівасць костаў з самага пачатку запобегае неспакойным рахункам, калі працэзнасупрацоўка пераходзіць з дамовай среды ў спяльную.
Напісцы.
Chunk 1:
Employees are eligible for reimbursement when...
Chunk 2:
...the expense was approved by their manager and
submitted within 30 days.
4. Не надсылайце весь дзялон размовы модэлю
Калі працуеце над этапам «Не надсылайце», спачатку запішыце умовы викорыстання: неабяжлівыя данні, сигнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список дапамагае заліцьваты змяны ў кодзе. Зберагаюце настройкі паза кодам прыемліка. Файлы сераўнавання, храненні секрэтных данных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куда аператары можуць пераглядаць іх без неабяжлівага чытання всей структуры. Кэшуйце стабільныя інструкцыі системы і схемы інструментаў. Павторны надсыл кантрольных данных — частая прычына зношэння ресурсаў.
Conversation Context
Recent Messages:
- User asked about refund eligibility.
- Agent explained the standard policy.
- User mentioned they purchased an annual plan.
Conversation Summary:
Customer purchased an annual subscription
and wants to know whether they qualify for a refund.
Current Question:
Can I still get a refund?
5. Раздзеляйце інструкцыі системы, контэкст і данні корыстніка
Калі працуеце над 5 стадзямі «Інструкцыі для адзельных систем», спачатку запісайце угоду: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список контроля дапамагае заліцварыць пазнейшыя змены ў кодзе. Документавайце як шлях успеху, так і шлях вярнення. Перапрыбуткі, людзкіе контралі і обработка некоректных паведамленняў ёсць частью продукту, а не пазнейшым дапрацоўкам. Зробіце контрольную пазнаку пасля дорогіх крокаў. Система вярнення не павінна знову ставіць рахунак за той самы вызов LLM, калі аператар перапрыбуе пазнейшы вузел.
SYSTEM INSTRUCTIONS
You are a customer support agent.
Answer using the provided knowledge.
Do not invent company policies.
If the answer isn't available, say that you don't know.
KNOWLEDGE
<retrieved_documents>
USER QUESTION
<user_question>
6. Навучыце агента, калі ёму трэба сказаць «вы не ведаеце»
Калі працуеце над 6 стадзямі «Научыць агента», спачатку запісайце умовы вярбунка: неабяжлівыя данні, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список контроля дапамагае заліцвачыць пазнейшыя змены ў кодзе. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, прычына нявыпання павінна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач. Зрабіце перапактаванне пасля дорогіх крокаў. Програма не павінна зноў стягваць плата за той самы вызов LLM, калі аператар прабуе зноў запрацаваць пазнейшы вузел. Калі працуеце над 6 стадзямі «Научыць агента», спачатку запісайце умовы вярбунка: неабяжлівыя данні, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список контроля дапамагае заліцвачыць пазнейшыя змены ў кодзе. Запісвайце час выканання і кост токенав або запытаў праза функцыйнае рэзультат. Відкрытыя данні пра косцы з’являюцца рана, таму не будзе неспакою праз нечаканыя рахункі, калі процес перайдзе з дэмавайнага режыма ў спяльныя сераўры.
If the answer cannot be supported by the provided
knowledge, do not guess.
Clearly state that the information is unavailable.
7. Не включаць логіку бізнесу ў запит
Этап «7. Не включаць логіку бізнесу» працюе найэфективней, калі яго розглядаць як вимерную площыну. Запісаце адна ідеальная транскрыпцыя, адзін прыклад неудачы і прыметку па адвярненню перад расширэнням масштаба. Храніце настройкі пазначынай ад коду прыемліка. Файлы сяродавішча, хранальнікі секрэтных данных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць адбавляць аудыт без неабяжнага чытання всіх дадзеных. Установіце ліміты на колькість токенав за раунд і за сесыю. Інструменты-агенты агрэсіўна расширваюць контекст; жорсткія ліміты запобегаюць таму, каб дэманстрацыі ператварыліся на неспакоючыя рахункі.
def check_refund_eligibility(customer, purchase):
if not customer.is_premium:
return False
if customer.account_age_years < 2:
return False
if purchase.days_since_purchase > 30:
return False
if customer.previous_refund:
return False
return True
LLM
→ Understands the request
→ Decides which tool to use
→ Explains the result
Application
→ Enforces business rules
→ Validates data
→ Performs deterministic operations
8. Надаць інструментам чысткія абавязкі
Інструменты 8 Give Tools Clear работаюць найэфектывней, калі іх спрыяваць як мерыемую паверхню. Запісаце адна ідеальная версія роботы, адзін прыклад неудачы і прыметку па вярнэнню да пачатковага стану пры расшырэнні масштаба. Дакументавайце як шлях успеху, так і шлях вярнэння. Перапрыбуткі, людзкія контрольны пункты і обработка некоректных звесцей ёсць частью продукту, а не пасляднім допрацоўкам. Адкройце інструменты з вузкімі схемамі та чысткімі пазначэннямі побачных эфектаў. Хостам неабходна знаты, якія вызовы мутуюць стан, перш чым яны будуць автаматычна затверджаны.
process_customer_data()
get_customer_order()
cancel_customer_order()
update_customer_address()
create_support_ticket()
9. Пераканацца ў тым, што генеруе агент
«9 Validate»: этап працюе найкраща, калі яго розглядаць як вимерную паверхню. Перш чым расширваць масштаб, зафіксавайце адны ідеальны прымер роботы, адну справу з бягам і прыметку па вярнэнню да пачатковага стану. Валідзіруйце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, прычына бягу должна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач. Рэзультаты графа трэба зберагаць у простаму, типаваны формат. Вярнутыя структуры дакладна не показуюць, канфігурацыя якога вузла запісала канкрэтны поле, і спакоўваюць працу пасля перерываў. «9 Validate»: этап працюе найкраща, калі яго розглядаць як вимерную паверхню. Перш чым расширваць масштаб, зафіксавайце адны ідеальны прымер роботы, адну справу з бягам і прыметку па вярнэнню да пачатковага стану. Запісвайце час выконання і кост токеноў або запытаў разам з функцыйнальнымі рэзультатамі. Відразувая візуабельнасць костаў запобегае неспакойным рашчыткам, калі процес пераходзіць з дэмавайнага режыма ў спяльныя сераўы.
User
↓
LLM
↓
Refund API
User
↓
LLM
↓
Tool Request
↓
Application Validation
↓
Business Rules
↓
Refund API
{
"customer_id": "12345",
"eligible": true,
"reason": "Purchase is within the refund window"
}
10. Не дадзіце колькіх агентаў без рэальнай прычыны
У падэйпе «10. Не дадзіце» неабходна праканалічыць вхідныя даны, адпаведальнага за крок і критэрыя завершэння пры перамене коду. Аперацыйныя працавнікі павінны магчымае перадзеўсці крок з вядомага пункта контролю, не спрабоўваючы здагадвацца пра схованы стан. Канфігурацыю трэба залічыць параду ад коду прыкладнення. Файлы сераўіса, хранільнікі секрэтных дадзеных і флагі функцыйяў павінны знаходзіцца ў аднам месцы, якое працавнікі можуць пераглядаць, не чытаючы весь граф. Для рэлей, якія выкарыстоўваюць грошы або зменяюць даны у працэсе, неабходна людская апраўда. Падключэння ў час компіляцыі не абавесць цэліснасцю бізнес-процэса.
User
↓
Router Agent
/ | \
↓ ↓ ↓
RAG SQL API
\ | /
\ | /
Final Agent
↓
Response
11. Створыце набір дадзеных для ацэнкі на аднойчыны з рэальных запитанняў
Для стадіі 11 «Стварэнне ацэнкі» неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і критэрыя завершэння пры зміне коду. Аперацыйныя працавнікі должны магчымае запускаць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Неабяжна задокументаваць як шлях успеху, так і шлях вярнення. Перапрыбуткі, людзкіе перакрыцця і обробка некоректных паведамленняў є частью продукту, а не яго пазнейшай дапрацоўкі. Неабяжна застаўляць людзкую затверджэнняе для тых крокаў, якія выкарыстоўваюць грошы або зміняюць даны ў працэсе. Компіляцыйныя налашчанні не ўзначаюць повнасці функцыоналу продукту.
Easy questions
Ambiguous questions
Multi-step questions
Out-of-domain questions
No-answer questions
Tool-use questions
Adversarial questions
12. Адстэпнае выявленне всего рабочага процесу агента
Для ўрадзілу «12 Trace the Entire» неабходна яшчэ перад змянай коду адзначыць вхідныя даны, адпаведальнага за крок і критэрыя завершэння. Аперацыяныя працавнікі павінны магчымае запускаць крок з вядомай точкі контролю, не падозрюючы пра схованы стан. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выконваецца, прычына нехарактернага рэзультата павінна вказываць на адзін конкрэтны элемент, а не на заплутаную схему выкарыстоўвання ресурсаў. Неабходна людская апрацоўка тых крокаў, якія ведуць да выдаткаў грошаў або змяні дадзэнняў у працоўным сераверы. Компіляцыйныя налаштаванні не є падставай для стверджэння, што процес ўсё завершаны. Для ўрадзілу «12 Trace the Entire» неабходна яшчэ перад змянай коду адзначыць вхідныя даны, адпаведальнага за крок і критэрыя завершэння. Аперацыяныя працавнікі павінны магчымае запускаць крок з вядомай точкі контролю, не падозрюючы пра схованы стан. Паралельна з функцыйнымі рэзультатамі неабходна фіксавацыя часу выкарыстоўвання, а таксама вартосці токенав або запытанняў. Візуабільнасць вартасцей з самага пачатку запобегае неспакойным рахункам, калі процес пераходзіць з дэмовай среды ў спяльныя сераверы.
Request ID
↓
User Question
↓
Query Transformation
↓
Retrieved Documents
↓
Reranking Results
↓
Prompt Version
↓
Model
↓
Tool Calls
↓
Tool Responses
↓
Final Response
↓
Validation
13. Не оптымізавайце толькі для точнасці
Калі працуеце над этапам «13. Не оптымізавайце», спачатку запісаўце умовы кантракту: неабходныя даны, сігнал успеху і тое, што выканаецца у разе частковага невыпання. Такі список контроля дапамагае заліцвачыць змяны ў кодзе чыста. Зберагайце настройкі паза кодам прыемліка. Файлы сераўнавання, хранільнікі секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куда аператары можуць адбавіць аудыт без неабяжнага чытання всіх элементаў. Стварайце контрольныя пункты пасля дорогіх крокаў. Система вярнення не должна занова ставіць плату за той самы вызыв LLM, калі аператар перапрыяўляе роботу да наступнага элемента.
Response Quality
+
Reliability
+
Latency
+
Cost
+
User Experience
Заключныя меркі
Калі працюеце над стадзіяй «Заключныя заўважэнні», спачатку запісайце умовы кантракту: неабходныя данні, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список контролю дапамагае заставіць пазнейшыя змены коду быць чыстымі.
Чэк-ліст для эксплуатацыі
Калі працюеце над стадзіяй «Чэк-ліст для эксплуатацыі», спачатку запісайце умовы кантракту: неабходныя данні, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список контролю дапамагае заставіць пазнейшыя змены коду быць чыстымі.
Спрыяйце цій стадзіі як кантракту межаў уваходных дадзеных і перакананых выходных рэзультатаў. Дайце назвы артыфактам, задаць тэсты на успех і не прымайце мовчанкава часткова завершаныя рэзультаты.
Пауза пасля дорогіх крокаў. Функцыя адновлення не должна занова нарахоўваць плата за той самы вызыв LLM, калі аператар праказвае спробу на пазнейшым вузле.
Забезпечыце фіксацію версій залежнасцяў і запісаце хеш-значэнне зображэння, якое викорыстоўвалася для дэманстраціі. Возможнасць перадарабаткі прынесе больш пользы, чым традыцыйныя методы.
Запісвайце час виконання аперацый, а таксу на токены чы запиты разам з функцыйнальнымі рэзультатамі. Відразувыя данні пра вартасць запобегаюць неспакоўным нарахоўкам, калі процес пераходзіць з дэманстрацыі ў спадзеленыя сераўеры.
Пауза пасля дорогіх крокаў. Функцыя адновлення не должна занова нарахоўваць плата за той самы вызыв LLM, калі аператар праказвае спробу на пазнейшым вузле.
Перад пераходам да наступнага етапу заблокіруйце версіі, зафіксуйце критычны варіант транскрыпціі для ключовага шляху і паказваце крокі для вярнення да пачатковага стану. У спадзеленых сераўерах неабходны ліміты на колькасць запытоў, пераказкі прав на выкарыстоўвання ресурсаў і чысткі распадзел канфідэнцыйных данных. Валіце надзейнасць, чым крэатывныя, але разовыя дэманстраціі.
Запіска параграфу 1481fc99429e: не кластыць ключы прадаўцаў у репазітары, задаць максымальны ліміт токена на кожную сесію, а таксама зберагчы транскрыпціі празаўсюды з фікстурамі для ацэнкі, каб пазнейшыя замены моделяў заставаліся порównаннэй.