Галоўная / Артыкулы

Практычныя нататкі: MTG Bench — навошта тэставаць LLM на Magic: The Gathering

Практычны разбор тэмы «MTG Bench і навошта тэставаць LLM на Magic: The Gathering»: кантракты, праверкі і гатовыя фрагменты кода для каманд, якія ўкараняюць гэты падыход.

Выдавец: REACTAPP.TOP11 хв чытання2484 слоў

Крыніцы: MTG Bench: Why Testing LLMs on Magic: The Gathering is a Brutal Reality Check for Tool-Use Agents

Наступныя прытамлівкі паказваюць практычны падход да статты «MTG Bench: Чаму тэставанне LLM-аў на Magic: The Gathering — грубая рэальная перакананне для агентаў, якія выкарыстоўваюць інструменты». Акцэнт ставіцца на кантракты, перакананняя і месца для коду, а не на мотывацыйныя аспекты.

Калі ваш LLM-агент нават не можа граць у картковую гру: жорсткая правда пра адпаведнасць вызывання інструментаў

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

Асновная проблема: чаму саме картковая гра?

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

У сутнасці: гэта архітэктура агента, а не бот для гэмы

Калі працуеце над стадзіяй «Under the Hood It», спачатку запісайце умовы працы: неабяжлівыя даныя, сігнал успеху і тое, што выканаецца у разе частковага нявыпалення. Такі спіс контроля дапамагае заліцварыць пазнейшыя змены ў кодзе. Зберагаюце настройкі паза кодам прыемліка. Файлы сераўнавання, хранальнікі секрэтных даных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаюць адбавіць аўдыт без неабяжлівага чытання всей структуры. Кэшавайце стабільныя інструкцыі сістэмы і схемы інструментаў. Перадача ідэнтычных даных знову ёсць частым выклікам расходавання рэсурсаў.

graph TD
    A[Game State] --> B{LLM Reasoning}
    B --> C[Tool: PlayLand]
    B --> D[Tool: CastSpell]
    B --> E[Tool: Attack]
    B --> F[Tool: PassPriority]
    C --> G[Lightweight Rule Enforcer]
    D --> G
    E --> G
    F --> G    G -->|Valid| A
    G -->|Invalid| B

Нявыпалення ў рэальным свеце: што бачыць спяльнайасць

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

1. Суперсечнасць у вызове інструментаў

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

2. Адступленне да пачатковага стану

Этап 2 «State Backtracking» працюе найэфектывней, калі яго розглядаць як вімерную паверхню. Зафіксавце адны ідэальны прыклад працы, адну сітуацыю неудачы і прыметкі па поверненню да попярэдньяго стану пры расшырэнні масштаба. Зберагачце настройкі празрачна ад коду прыемліка. Файлы сяродавішчыны, хранільнікі секрэтных даных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць адбавіць аўдыт без неабяжнага чытання всіх элементаў. Задазвайце ліміты токенав на кожны раунд і на кожную сесію. Інструменты-агенты агрэсывна расшырваюць кантэкст; строгі ліміты запобегаюць таму, каб дэманстрацыі ператварыліся на неспакоўныя рахункі.

3. Галюцынацыя правілаў

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

Атмасфера спяльнай аўдыторыі з HN

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

Тэхнічныя параджанні: MTG Bench проты іншых крэатараў для агентоў

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

Урокі інжынерыі: як ствараць лепшыя агенты

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

1. Памяць — гэта не запіт

Для этапы «1 Memory is Not» неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтыяры завершэння пры зміне коду. Аперацыйныя працавнікі должны магчымае перайсці на выкананне кроку з вядомага пункта контролю, не спрабоўваючы здагадвацца пра заштынены стан. Лепей выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выканаецца, прычына неудачы должна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач. Калі наступны крок — гэта код або вызов інструмента, лепей выкарыстоўваць структураваныя выходныя даны з перакананнем схэмы, замест вольнага фармата тэксту. Для этапы «1 Memory is Not» неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтыяры завершэння пры зміне коду. Аперацыйныя працавнікі должны магчымае перайсці на выкананне кроку з вядомага пункта контролю, не спрабоўваючы здагадвацца пра заштынены стан. Запісвайце час выканання і кост токеноў або запытаў разам з функцыйнальнымі рэзультатамі. Відразувыя даны пра косцы запобегаюць неспакойным рахункам, калі працэс пераходзіць з дэмавайнага рэжыма ў спяльныя сераўеры.

# Pseudo-code for state management
class StateManager:
    def __init__(self, redis_client):
        self.redis = redis_client
    def set_state(self, session_id, state_dict):
        # Store only key state: current phase, hand, mana
        self.redis.hset(f"session:{session_id}", mapping=state_dict)    def get_state(self, session_id):
        return self.redis.hgetall(f"session:{session_id}")    def get_prompt_context(self, session_id):
        state = self.get_state(session_id)
        # Generate a concise summary
        return f"Current Phase: {state['phase']}, Your Hand: {state['hand']}, Mana: {state['mana']}"

2. Для вызваў інструментаў патрэбна схема «Commit-Acknowledge»

Калі працуеце над стадзіяй «2 Tool Calling Needs», спачатку запісайце умовы вікорыстання: неабходныя даны, сігнал успеху і тое, што выходзіць на падчасныя неудачы. Такі чарт дапамагае заліцваліваць пазнейшыя змены ў кодзе. Храніце настройкі парадульна ад коду прыемліка. Файлы сераўнавання, базы секрэтных даных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куда аператары можу пераглядаць іх без неабяжнай чытанняў усіх элементаў сістэмы. Зберагачвайце у кэшы стабільныя інструкцыі сістэмы і схемы інструментаў. Павторная адправка ідэнтычных даных ўсё часта стае прычыной зайвых вітрацоў.

3. Механізм правілаў — гэта захоць, а не падпярэнне

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

Адрабатка MTG Bench: Конкрэтны прыклад

Калі працюеце над стадзіяй Running MTG Bench A, спачатку запісайце контракт: неабяжлівыя даны, сігнал успеху і тое, што выканаецца пад частковым неяўненням. Такі спіс пераканаецца, каб пазнейшыя змены коду былі чыстымі. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок неяўнеецца, неяўненне павінна вказваць на адную адпаведальнасць, а не на заплутаны ланцужок задач. Зберагаеце у кэшы стабільныя інструкцыі сістэмы і схемы інструментаў. Перадзесланне ідэнтычных прамаўляючых частак — частая прычына збытка рэсурсаў. Калі працюеце над стадзіяй Running MTG Bench A, спачатку запісайце контракт: неабяжлівыя даны, сігнал успеху і тое, што выканаецца пад частковым неяўненням. Такі спіс пераканаецца, каб пазнейшыя змены коду былі чыстымі. Запісвайце час выканання і кост токенаў або запытаў пад функцыйнальнымі рэзултатамі. Відразувая візуабільнасць костаў запобегае неспакойным рахункам, калі праця пераходзіць з дэмаверсіі ў спакульнаныя сераўысы.

# config.yaml example
model:
  provider: "openai"
  name: "gpt-4o-mini"
  temperature: 0.1
game:
  num_games: 10
  max_turns: 50evaluation:
  track_illegal_actions: True
  output_log: "./results/log.json"

Частая адміністрацыя: Што трэба ведаць

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

Есць лік спосабаў граць у MTG проты AI?

Этап «Чы гэты спосаб працюе?» работае наяўней, калі яго спрыяваць як мерыемую паверхню. Запісаце адна ідэальная транскрыпцыя, адзін прыклад неудачы і прыметку па адвярненню працы перш чым расшырваце масштабы. Дакументаваце як шлях успеху, так і шлях вяснавання. Перапрыбуткі, людзкія контралі і обработка некорэктных паведамленняў ёсць часткай продукту, а не пасляднім дапрацоўкам.

Чы гэта добра для мозга — граты у MTG?

Этап «The Is playing MTG good» працюе найкрашча, калі яго спрыяваць як до мерымабельнай паверхні. Зберагчыце адны ідэальны прыклад, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расшырваць масштабы. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, прычына неудачы павінна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач. Задаеце бюджэт на токены за рунг і за сесію. Інструменты з агентным падходам агрэсіўна расшырваюць кантэкст; строгі ліміты не дазволяюць дэмам ператварыцца на неспакоўныя рахункі. Этап «The Is playing MTG good» працюе найкрашча, калі яго спрыяваць як до мерымабельнай паверхні. Зберагчыце адны ідэальны прыклад, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расшырваць масштабы. Запісвайце час выканання і кост токанаў або запытаў разам з функцыйнальнымі рэзултатамі. Відразувая візуабельнасць костаў запобегае неспакоўным рахункам, калі працэс пераходзіць з дэмы ў спяльныя сераверы.

Чы МТГ — гэта самая складная гра?

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

Чы роўна Is MTG складны ў гэймаванні?

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

Заключнае мненне: Гэта проста відвлекальны элемент

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

Чэк-ліст аператыўнай працы

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

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

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

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

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

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

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

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