Як задіяти провідну модель відкритого коду для фронтенду: Посібник з Harness для Kimi K3

@polydao
АНГЛІЙСЬКА17 вер. 2026 р.
197K
97
12
14
142

Коротко

Цей посібник знайомить із концепцією 'harness engineering' — методом структурування AI-агентів шляхом розділення вибору моделі від логіки, інструментів та верифікації. У ньому демонструється використання Kimi K3 у конфігурованому фреймворку, який забезпечує легку заміну моделей та надійну автоматизацію.

Інженерія промптів, контексту, циклів і графів виявилася частинами одного й того ж механізму. Harness — це те місце, де вони нарешті об’єднуються.

Кожен етап розробки з ШІ отримував власну назву. Спершу була інженерія промптів, коли вся майстерність полягала в пошуку правильної фрази.

Потім прийшла інженерія контексту, коли стало зрозуміло, що сама фраза важить менше, ніж усе, що навколо неї завантажено. Цього літа на пік вийшли цикли (loops), а через кілька тижнів — графи.

Зараз поширюється термін «інженерія harness» (обв’язки/каркасу системи), і це перша назва, яка пояснює всі попередні.

Mr. Buzzoni - inline image

Harness — це все, що оточує модель: інструменти, які вона може викликати, файли, які вона читає передусім, директорії, куди їй дозволено записувати, перевірки, які має проходити її результат, розклад, що її активує, та правила, що завершують процес.

Кожна дисципліна до цього моменту виявилася лише одним компонентом цієї рамки, створеним окремо й отримавшим власну назву.

Я почав звертати на це увагу з практичних міркувань. Модель під капотом постійно змінюється, іноді стрибками на сімнадцять позицій у рейтингу за одне оновлення, а harness — це єдина частина системи, яка залишається вашою.

1/ Сім інженерій, один механізм

Дисципліна

На яке питання відповідає

Де живе в harness

Інженерія промптів

Що саме я прошу

SKILL.md, специфікація завдання, що завантажується першою

Інженерія контексту

Що бачить модель на кожному кроці

Асемблер контексту: обмеження, схеми, знайдені сторінки

Інженерія інструментів

До чого вона має доступ і в якій формі

Визначення інструментів із типізованими вхідними та вихідними даними

Інженерія циклів

Що запускає процес і що його завершує

Раннер: тригери, умови зупинки, бюджети

Інженерія графів

Що вона пам’ятає і як пов’язані елементи

Шар пам’яті: вузли, типізовані ребра, псевдоніми

Інженерія оцінювання (Eval)

Як відхиляється результат

Верифікатор, поза контролем агента

Інженерія harness

Що тримає все вищезазначене разом

Каркас, права доступу та хуки

Читайте таблицю зверху вниз — це історія. Знизу вгору — це архітектура: інженерія harness — це робота з визначення місця для кожної з шести інших дисциплін, щоб жодна з них не загубилася в промпті.

Останній пункт несе найбільше навантаження.

Промпт — найпростіше місце для будь-чого, тому тось усе дрейфує: формат виводу, правило зупинки, минулотижневі виправлення, список речей, яких агент ніколи не повинен торкатися. Це чудово працює для моделі, під яку ви писали промпт, але наступна модель читає той самий абзац інакше.

2/ Анатомія Harness

Найкорисніша звичка, яку я виробив, — записувати весь harness у вигляді одного конфігураційного файлу, щоб ніщо важливе не лишалося неявним:

text
1# harness.yaml
2model: kimi-k3 # один рядок. усе нижче переживе заміну
3tools: [browser, fs, shell, search]
4permissions:
5 write: [./10-returns, ./20-graph, ./40-runs]
6 ask_first: [send, publish, pay, delete]
7context:
8 always: [SKILL.md, CONSTRAINTS.md, SCHEMA.md]
9 per_agent: return_schema
10runner:
11 trigger: cron "0 2 * * *" # щоночі, поки ви спите
12 stop: 40 verified nodes OR 3 passes with nothing new
13 budget: { agents: 300, minutes: 45, retries: 2 }
14memory:
15 graph: ./20-graph
16 aliases: ./aliases.csv
17verify:
18 - script: checks/schema.py
19 - agent: reviewer, fresh context
20hooks:
21 pre_tool: hooks/pre_tool.sh
22 post_run: append 40-runs/
Mr. Buzzoni - inline image

Три рядки в цьому файлі виконують більшість роботи.

model: — це один рядок навмисно. Усе інше написано так, щоб йому було байдуже, що там стоїть. Це і є вся суть портативності.

permissions: важливіший за tools:, хоча й стоїть нижче у файлі. Запис того, що агент може змінювати, а про що мусить питати дозволу, відрізняє систему, яку можна залишити працювати на ніч, від тієї, за якою треба стежити очима.

verify: має два пункти не випадково. Скрипт нічого не коштує й ловить усе механічне. Рев’ювер — це другий агент, який ніколи не бачив роботи першого, бо агент, що оцінює власний результат, завжди знайде привід схвалити його.

На диску harness — це одна папка, і кожна інженерія з таблиці має в ній свою адресу.

Mr. Buzzoni - inline image

3/ Чому Kimi K3 — це двигун, який я б туди поставив

Що потрібно harness

Що дає Kimi K3

Раннер, здатний до масового паралелізму

Agent Swarm: до 300 агентів над однією проблемою одночасно без написання оркестратора

Код достатньо сильний, щоб писати власні перевірки

#1 у Frontend Code Arena зі скором 1,679, попереду Fable 5 (1,631) та GPT-5.6 Sol (1,618), лідер у 6 із 7 доменів

Двигун, що покращується під вами

З #18 на #1 за одне липневе оновлення

Перший рядок важливіший, ніж здається. Майже кожен домашній harness рано чи пізно обростає самописним оркестратором, і зазвичай це найкрихкіший файл у папці. З роєм (swarm) паралелізм стає просто рядком бюджету, agents: 300, а harness має опрацювати лише те, що повернулося.

Другий рядок важливий, бо harness — це переважно код, який модель пише для вас: скрипти хуків, перевірки схем, маленький дашборд, що читає 40-runs. Двигун, що лідирує у фронтенд-арені, значно частіше робить це правильно з першої спроби.

Третій рядок — це аргумент на користь інженерії harness в одній цифрі. Коли модель стрибоком піднімається на сімнадцять позицій за ніч, harness використовує цей стрибок того ж дня, бо єдиний рядок, який треба змінити, — це model.

4/ Хуки: Рефлекси

Хук — це короткий скрипт, який harness виконує у фіксований момент, незалежно від рішень моделі. Саме тут harness перестає бути структурою папок і починає поводитися як система безпеки.

Хук

Коли спрацьовує

Що робить

pre_tool

Перед будь-яким викликом інструменту

Блокує запис поза списком дозволів

post_tool

Після кожного повернення результату

Запускає перевірку схеми й миттєво відхиляє некоректний вивід

pre_send

Перед тим, як щось покине машину

Утримує це в черзі, доки ви не затвердите

on_fail

Після відхиленого результату

Прикріплює причину невдачі до повторної спроби

post_run

Коли настає умова зупинки

Додає запис про гон до 40-runs і порівнює зміни в графі

Хук pre_tool з першого рядка вміщується в п’ять рядків:

text
1# hooks/pre_tool.sh
2case "$TARGET" in
3 ./10-returns/*|./20-graph/*|./40-runs/*) exit 0 ;;
4 *) echo "blocked: $TARGET is outside the write list"; exit 1 ;;
5esac

Лише хук on_fail змінює економіку циклу. Повторна спроба, що несе причину невдачі попередньої, — це корекція. Без цієї причини цикл платить за ту саму помилку вдруге.

5/ Як виглядає ніч

Складіть усі шматки разом, і harness поводитиметься як нічна зміна, що слідує правилам. О 02:00 спрацьовує тригер, і стартовий запит обирає всі вузли, що потребують роботи. Рій розгалужується, по одному агенту на вузол.

Результати, що не проходять схему, відхиляються хуком post_tool ще до потрапляння в граф, і кожен відхилений вузол повторює спробу один раз із прикріпленою причиною невдачі. Коли один агент намагається записати дані поза своєю папкою, pre_tool зупиняє його, не турбуючи нікого.

Об’єднані вузли та типізовані ребра потрапляють у 20-graph. Написаний лист доходить до pre_send і чекає. post_run додає запис, і цикл зупиняється за власною умовою, добре в межах 45-хвилинного бюджету з конфігу.

О 07:30 ви читаєте один файл і приймаєте два рішення. Це вся ранкова ціна за використання інженерії циклів і графів таким чином, і в цьому весь сенс harness: усе, що могло працювати без вас, працювало, а кілька речей, що потребували вас, чекають в одному місці.

Mr. Buzzoni - inline image

6/ Тест на заміну

Найшвидший аудит будь-якої налагодженої системи агентів: змініть рядок моделі й запустіть знову. Те, що зламається, — це harness, що жив не на своєму місці.

Що ламається після заміни

Де це ховалося

Де воно має бути

Формат виводу дрейфує

«завжди відповідай у JSON» у промпті

Схема повернення плюс скрипт, що відхиляє все інше

Гони перестають завершуватися самостійно

«продовжуй, доки не буде ретельно»

Умова зупинки, заснована на лічильниках

Минулотижневі виправлення зникли

Історія чату

CONSTRAINTS.md, що завантажується щоразу

Та сама компанія зустрічається тричі

Судження моделі

aliases.csv, перевіряється перед об’єднанням

Пише туди, куди не слід

Ввічлива фраза в промпті

Список дозволів і хук pre_tool

Налаштування, що проходить тест на заміну, є портативним, а портативність робить його вартим грошей.

Mr. Buzzoni - inline image

Ціна та Прибуток

Компанії вкладають цілі квартали в внутрішні платформи агентів. Працюючий harness — це одна папка, один конфігураційний файл і п’ять коротких скриптів, і він працює на підписці Kimi. Ця різниця і є можливістю.

Канал

Що приносить

Що потрібно мати спершу

Налаштування harness для малої команди

Разова плата в тисячах доларів за конфіг, хуки та верифікатор навколо їхнього воркфлоу

Власний harness, що працює за розкладом

Ретейнер на день релізу

Місячна плата за проведення тесту на заміну при кожному великому релізі моделі та переведення команди на лідера

Клієнт, чиї гони вже логируються в 40-runs

Нішева шаблон harness

Папка та yaml, упаковані для однієї галузі: дослідження, рекрутинг, комплаєнс

Той самий harness, перевірений на двох різних ринках

Другий канал — той, який я б будував першим. Кожен великий реліз перетасовує рейтинг, K3 сам по собі піднявся на сімнадцять позицій за одне оновлення, і кожній команді з harness потрібен хтось, хто буде проводити тест на заміну в день релізу.

Коротко

Інженерія промптів, контексту, інструментів, циклів, графів та оцінювання виявилися компонентами одного механізму, а інженерія harness — це рішення про те, де кожному з них жити.

Поставте модель за один рядок, права доступу — попереду інструментів, а верифікатор — поза агентом. Тоді наступний стрибок у рейтингу стане зміною конфігу, а не перебудовою системи.

Mr. Buzzoni - inline image

І якщо вам це було корисно:

  • Додайте цю статтю в закладки. Посилання змінюються, нові репозиторії з’являються щотижня, і вам це знадобиться як довідник
  • Для щотижневих глибоких занурень в архітектуру ШІ, квантовий трейдинг та економіку агентів підпишіться на мене: @polydao
  • Приєднуйтесь до Telegram-каналу: Buzzoni Notes — тут я ділюсь своїми сирих промптами, кастомними скілами та альфою, яка ще зарано для X
Збереження в один клік

Використовуйте YouMind для AI-глибокого читання віральних статей

Зберігайте джерела, ставте цілеспрямовані запитання, підсумовуйте аргументи та перетворюйте віральні статті на корисні нотатки в одному AI-робочому просторі.

Дослідити YouMind
Для авторів

Перетворіть свій Markdown на охайну статтю для 𝕏

Коли ви публікуєте власні лонгріди, зображення, таблиці та блоки коду роблять форматування в 𝕏 складним. YouMind перетворює повну чернетку в Markdown на чисту статтю для 𝕏, готову до публікації.

Спробувати Markdown для 𝕏

Більше патернів для аналізу

Останні віральні статті

Переглянути більше віральних статей