Галоўная / Артыкулы / Практычныя прытамулкі: MTG Bench: Чаму тэставанне LLM-ў на Magic: The Gathering ёсць

Практычныя прытамулкі: MTG Bench: Чаму тэставанне LLM-ў на Magic: The Gathering ёсць

Практычныя прытамулкі: MTG Bench – чаму тэставанне LLM-ў у Magic: The Gathering ёсць важным элементам; кантракты, перакрычанні та спецыяльныя слоты для коду для команд, якія викорыстоўваюць гэты патэрн.

2484 слоў

Наступныя прытамлівкі паказваюць практычны падход да статті «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: не кладзіце ключы прадаўцаў у репазітарый, задаце верхнюю межу токенаў на сесію і зберагачыце транскрыпты рядом з фіксатрамі для ацэнкі, каб пазнейшыя замены моделей заставаліся порупачнымі.