Галоўная / Артыкулы / Практычныя прытамулкі: Тэставанне API OpenAI Agents з адмініструемайам сандбоксам

Практычныя прытамулкі: Тэставанне API OpenAI Agents з адмініструемайам сандбоксам

Практычныя прыказкі: Как тэставаць API OpenAI Agents у сандбоксе з розмешчаннем на серверах: контракты, пераконтрэныя та шаблоны коду для команд, якія викорыстоўваюць гэты падход.

1848 слоў

Наступныя прыміткі паказваюць практычны падход да «Тэставання API агентаў OpenAI за дапамойкай хоставанага сандбокса». Акцэнт ставіцца на кантракты, пераконтроўваннія і месца для коду, які можна легка адразу выкарыстоўваць, а не на мотывацыйныя аспекты. Калі працуеце на стадзіі агляду, спачатку запісайце кантракт: неабходныя даны, сігнал успеху і тое, што выканаецца у разе частковага нявыпалення. Такі список контроля дапамагае заліцвачыць пазнейшыя змены ў кодзе. Храніце настройкі парадульна ад коду прыемлівача. Файлы сераўнавання, сховішчы секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куда аператары можу аудытаваць іх без неабходнасці чытаць весь код.

01 Как агенты API выступаюць разам

01. Процес роботы агентаў работае наякша, калі яго розглядаць як вимерную паверхню. Зафіксавайце адна ідеальная транскрыпцыю, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць масштабы. Документавайце як шлях успеху, так і шлях вяснавання разам. Перапрыбуткі, людзкія контрольныя пункты і обработка некоректных паведамленняў є частью продукту, а не наступным етапам дорабкі. Храніце стан графа ў простам і типаваным формате. Вкладзеныя блокі маскуюць інфармацыю пра тое, який вузел запісаў якое поле, і спакоююць працэс пасля перарываў.

02. Чаму мы выбралі хоставаныя сандбоксы

02. Прычыны, чаму мы выбралі гэты этап, найкраща розглядаць як вимерную паверхню. Запісаўце адна «золатая» транскрыпцыя, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць масштабы. Валіце варота маленькім, можна тэставаць элементам замест большых скрыптов. Калі якісь крок не выходзіць, прычына неудачы павінна вказываць на адную адпаведальнасць, а не на заплутаны ланцюг задач. Рэзультаты обработкі трэба зберагаць у простаму, типаваным формате. Вярнутыя структуры дакладнаўляюць, які вузел запісаў кожны поле, і спакойная праца можа быць перарвана пасля перерываў.

Найважлівейшыя настаўкі хоставання

Этап «Значныя настройкі Hosted» працюе найэфектывней, калі яго спрыяваць як меравальную плошчу. Зафіксуйце адны ідеальны прымер роботы, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць сферу дзеяння. Спрыяйце гэтам этапу як кантракту межа вхіднымі даннымі і перакананымі выходнымі рэзультатамі. Дайце назвы артыфактам, задаце критэрыі успеху і адмовіцеся ад тыхоў, частковага завершэння задання. Храніце стан графа ў простам і типаваным формате. Вкладзеныя блокі маскуюць інфармацыю пра тое, який вузел запісаў канкрэтны поле, і спакоююць продовжэнне роботы пасля перерываў. Этап «Значныя настройкі Hosted» працюе найэфектывней, калі яго спрыяваць як меравальную плошчу. Зафіксуйце адны ідеальны прымер роботы, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць сферу дзеяння. Храніце настройкі за межамі коду прыемліка. Файлы сераўіса, хранальнікі секрэтных данных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куда аператары можу аудытаваць іх без неабходнасці чытаць весь граф.

03 Унутрз нашага виконвальніка CSV

Для ўрагу 03 «У нашым CSV» паказваецца, каб перад зменай коду былі заданы вхідныя даны, адпаведальная особа за крок і критэрыі завершэння. Аператары должны магчымае перайсці на гэты крок з вядомага пункта контролю, не прыпускаючы нявідомага стану. Неабходна ўзаемная документацыя успішнага і варыянтага ходу выканання. Перапрыбуткі, людзкія перакрыцця і обробка некоректных паведамленняў є частью продукту, а не елементамі пазнейшай дапрацоўкі. Пры выкананні крокаў, якія выкалічваюць грошы або зменяюць даны ў працэсе, неабходна людзкая затверджэння. Працэсы, якія выкананы ў час компіляцыі, не є падставай для стверджэння повнасці продукту з точкі зору бізнеса.

Рэальныя вхідныя даны seed-42

Для самага этапу вводу дадзеных seed-42 неабяжна прадзефінаваць вхідныя даны, адпраўніка крока і критэрыя завершэння перад зменым коду. Аперацыяныя працавнікі павінны магчымае перзапускаць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выйшае, прычына неудачы павінна вказываць на адзіну адпраўнічую функцыю, а не на заплутаны ланцужок задач. Неабяжна ўключыць людзкія апраўданні для тых крокаў, якія выкарыстоўваюць грошы або зміняюць даны для працы. Компіляцыйныя налашчэнні не ўзроўнаўцуюцься з пачатковым станом бізнес-процэсаў.

amount,note
 $981.96 ,sale
" $1,838.10 ",sale
 $42.78 ,sale
-$100.12,refund
N/A,voided
 $155.92 ,sale
{
  "total_cents": 291864,
  "valid_rows": 5,
  "invalid_rows": 1
}

Інструкцыі, якія мы надаём

У стадії, якую мы надаём, неабяжна прадзецьваць інпуты, адпавядача за крок і крэтыры выходу пры змяне коду. Аператары должны магчымаць перзапуск крока з вядомай точкі контролю без адгадвання схованага стану. Спрыяйце гэтай стадіі як кантракту межа інпутамі і падтвердзенымым выходам. Даўце назвы артыфактам, прадзецьваць перамогу і адмовіцеся ад тыхоўага частковага завершэння. Заставіце людзкую апраўду на тых элементах, якія витрачаюць грошы або зменяюць даны праўлення. Кампіляванне не ўзроўнавалася з пачатковым станом бізнесу. У стадії, якую мы надаём, неабяжна прадзецьваць інпуты, адпавядача за крок і крэтыры выходу пры змяне коду. Аператары должны магчымаць перзапуск крока з вядомай точкі контролю без адгадвання схованага стану. Зберагачыце канфігурацыю за межамі коду прыемленае. Файлы сяродавішча, храненні секрэтных дадзенаў і флагі функций должны знаходзіцца ў аднам месцы, якое аператары можаць пераглядаць без чытання всей структуры.

Што мы пераглядаем і зберагамо

Калі працуеце над раздзелам «Што мы пераглядаем і зберагамо», спачатку запісайце умовы контракту: неабяжлівыя даны, сигнал успеху і тое, што выходзіць у разе частковага невыпання. Такі список пераконтролюе чыстасць пазнейшых змян у кодзе. Запісуйце адночасна шлях успеху і шлях вярнення. Перапрыбуткі, людзкіе етапы перагляду та обробка некоректных паведамленняў ёсць частью продукту, а не пазнейшым дапрацоўкам. Стварайце контрольныя пункты пасля дорогіх крокаў. Система вярнення не павінна зноў ставіць плату за той самы вызов LLM, калі аператар перапрыбуе пазнейшы вузел.

04 Што паказваюць пяць запісаных прыбуткаў

Калі працуеце над практыкам 04 «Пяць стадій», спачатку запісайце умовы контракту: неабяжлівыя даны, сигнал успеху і тое, што выходзіць пад частковыя неудачы. Такі список пераканаець у тым, што пазнейшыя змены коду будуць чыстымі. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, неудача должна вказваць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач. Зробіце перапактаванне пасля дорогіх крокаў. Програма не должна зноў ставіць плату за той самы вызов LLM, калі аператар праказвае спробу на болей пазнім этапе.

Што змянілася ў нашам ранеры

Калі працуеце над раздзелам «Што змянілася ў нашай стадзіі», спачатку запісаце кантракт: неабяжныя вхідныя даны, сигнал успеху і тое, што відбываецца у разе частковай нявыполнення. Такі список пераканаець у тым, што пасляэйшыя змены коду будуць чыстымі. Спрэчвайце гэтую стадзію як кантракт межа вхіднымі данымі та перакананымі выходнымі даннымі. Дайце назву артыфактам, задаце критэрыя успеху та не падзволяйце частковай нявыполненню без паведамлення. Зробіце контрольную точку пасля дорогіх крокаў. Система вярнення не павінна знову ставіць плату за той самы вызов LLM, калі аператар прабуе зноў выконаць пазнейшы вузел. Калі працуеце над раздзелам «Што змянілася ў нашай стадзіі», спачатку запісаце кантракт: неабяжныя вхідныя даны, сигнал успеху і тое, што відбываецца у разе частковай нявыполнення. Такі список пераканаець у тым, што пасляэйшыя змены коду будуць чыстымі. Зберагаеце настройкі паза кодам прыемліка. Файлы сераўнавання, хранільнікі секрэтных данных та флагі функцыйяў павінны знаходзіцца ў аднам месцы, якое аператары можаць пераглядаць без неабяжнага чытання всіх элементаў структуры.

05 Як наш виконавач распрацоўвае нявыполнення

05. Как найшчэга працюе наш этап адканалення, калі яго расследжваць як вимерную паверхню. Запісаўце адна «золатая» транскрыпцыя, адзін прыклад неудачы і запіс пра вярненне да пачатковага стану перш чым расширваць масштабы. Дакументаваўце як шлях успеху, так і шлях вяснавання проблемы. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў ёсць часткай продукту, а не пасляднім дапрацоўкам. Храніце стан графа як просты і з адначытаемымі дадзеннямі. Вкладаныя блокі маскуюць, який вузел запісаў кожна поль і спакшваюць продыржанне роботы пасля перарываў.

06. Калі варта выкарыстоўваць сашытую вычысловую магчымасць

Метод 06 «Календар здачы робацкіх пакетаў» найэфектывнейшы, калі яго рассматрываць як вимерную плошчу. Запісайте адна «золатая» версія, адин прыклад неудачы і прыметку па вярнэнню да поперадней версіі пры расшырэнні масштаба. Валіце маленькія, тэставаныя елементы замест большых скрыптаў. Калі якісь крок не выйшоў, прычына неудачы павінна вказываць на адную адпаведальнасць, а не на заплутаны ланцюг задач. Рэзультаты графа павінны быць простымі та з адзінаковым типам дадзеных. Вярсткаваныя блокі маскуюць інфармацыю пра тое, який вузел запісаў канкрэтны поле, і спакойваюць працу пасля перерываў.

07 Адрабатайце наш эксперымент

Этап «07 Run our experiment» працюе найкраща, калі яго розглядаць як вимерную паверхню. Зафіксавце адны прыклад успеху, адны прыклад неудачы і запіс пра відкатаванне раней, чым расширваце сферу дзеяння. Разглядвайце этап як кантракт межа вхіднымі даннымі і перакананымі выходнымі рэзультатамі. Даўце назвы артыфактам, задаце критэрыя успеху і не падзеўляйцеся частым, непূরным выкананнем задачы. Храніце стан графа ў простам і типаваным формате. Вкладзеныя структуры маскуюць інфармацыю пра тое, який вузел запісаў канкрэтны поле, і спакшуюць возобнавленне роботы пасля перарываў. Этап «07 Run our experiment» працюе найкраща, калі яго розглядаць як вимерную паверхню. Зафіксавце адны прыклад успеху, адны прыклад неудачы і запіс пра відкатаванне раней, чым расширваце сферу дзеяння. Храніце настройкі параду ўнутры коду прыемленае. Файлы сераўіса, хранальнікі секрэтных данных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куда аператары можу аудытаваць іх без неабходнасці чытаць весь граф.

cd openai-agents-api
python -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
export OPENAI_API_KEY="your-key"
python sandbox_check.py --seed 42       # Start with one trial
# python sandbox_check.py 5 --seed 42   # Optional: five trials
trial-001/
  data.csv           # Exact input
  expected.json      # Local reference
  request.json       # Submitted configuration
  session.json       # Latest retrieved session
  turns.json         # Turn status, timestamps, usage
  items.json         # Saved messages and tool calls
  artifacts.json     # Published file metadata
  summary.json       # Downloaded result
  calculate.py       # Downloaded agent script
  result.json        # Checks, timing, errors, cleanup
python -m unittest discover -s . -p test_sandbox_check.py -v

Чэк-ліст для эксплуатацыі

У стадії перагляду крокавога списку для эксплуатацыі неабходна ўзначыць вхідныя даны, адпаведальнага за кожны крок і крэтырыя завершэння працы перад змінайом коду. Аператары должны магчымаць перзапуск кроку з вядомай точкі контролю, не прабуючы спадарожваць схованы стан.

Запісвайце час выконання і вартась токеноў або запытав без урахоўвання функцыйнальных рэзультатаў. Відразліва візуалізацыя вартасей запобегае неспакоўным рахункам, калі процес пераходзіць з дэмовай среды ў спакульную.

Заставьце людзкія празборы для тых крокав, якія витрачаюць грошы або зменяюць даны ў працэсе виробніцтва. Конфігурацыя, створаная ў часе компіляцыі, не гарантуе полнай адпаведнась бізнес-трэбаванням.

Напісце кароткі посібнік: як зменяць клучы, як спрачыслаць чергу запытав, як анулюваць пярэдніе змены.

Зберагаўце настройкі праз чынны код аплікацыі. Файлы среды, хранальнікі секрэтных данных і флагі функцыйяў должны знаходзіцца ў аднам месцы, якое аператары можаць пераглядаць, не чытаючы весь код.

Неабяжна людская празначэнне для тых элементаў, якія выдвайнаюць грошы або зменяюць данні праработкі. Працаванне ў часе компілявання не абяжаецца пачынкамі бізнес-процэсаў.

Перш чым пераводзіць стэк, заморажваюць версіі, фіксуюць «золаты» транскрыпты для критычных ліній працы і паверачваюць крокі для адката. У спадзяльных средах патрэбны ліміты частоты, перакананні ў прыналежнасці і чыстае адпаведальнае аб’екта для ротацыі секрэтных дадзенняў. Лепш выбіраць простую надзеянасць, чым хітрыя експерыментальныя дэманстрацыі.

Запіс для пакета f317619e24fa: не клаціць ключы прадаўцоў у репазітары, задаць максымальную кантитатыву токенаў на сесію і хаваць транскрыпты праз адно з фіксатываў eval, каб пазнейшыя замены модэляў заставаліся парабяльнымі.

Калі працуеце над першым этапам зміцнення, спачатку запісайце угоду: неабяжлівыя даны, сигнал успеху і тое, што выходзіць у разе частковага невыпання. Такі список контроля дапамагае заліцвачыць пазнейшыя змены коду. Документавайце як шлях успеху, так і шлях вярнення. Перапрыбуткі, людзкіе перакрыцця і обробка некоректных паведамленняў ёсць часткаю продукту, а не пазнейшым дапрацоўкам.

Дзеянні зміцнення 0/838: вымерайце час выканання, класыя ошибакі і витрату токенав для гэтага пункту, а потым выберайце, чы робіць змену на аднойчынных крэтарах, а не на падставе індывідуальных прыкладаў.

Першы этап зміцнення працюе лепей, калі яго спрыяваць як меравальную плошчу. Зафіксавайце адна ідеальная транскрыпцыя, адзін прыклад невыпання і запіску пра анулюванне перш чым расширваце масштаб. Спрыяйце гэты этап як угоду межа данымі і перакананымі выходамі. Дайце назвы артыфактам, задаце перакананні успеху і адмовіцеся ад тыхоўскага частковага завершэння.

Дзеянні паўжасткі 1/838: звярніце увагу на час выканання, клас памылак і колькасць викорыстоўваных токенав для гэтага запісу, а пасля, на аднойчынай базе фіксаванага набора пытанняў, а не на індывідуальных прыкладах, выявіце, чы рэшыцца застаўіць змяну.