Ключевой принцип это harness optimization - строгую регламентацию того, что агент может делать. Идея проста: лучше работает даже посредственный агент внутри строгой системы ограничений, чем более мощный агент в плохо структурированном окружении.
По его словам, речь идёт не о prompt-инженерии, а о дизайне системы взаимодействия с агентом.
В своём подходе он выделяет несколько основных элементов:
1. Metadata
Name, description, triggers. LLM хорошо распознают такие секции и их не нужно усложнять. Они должны быть функциональными и по делу.
2. Skill Purpose
Один короткий абзац. По сути — pitch. Нужно лишь, чтобы агент понял основную идею. Детали идут дальше.
3. Instructions
Каждый шаг — с чёткими и точными инструкциями. Если нужно выполнить скрипт, он указывает точный путь:
Execute: ~/Documents/script/run.py
Его личное правило: если Skill требует больше 3 шагов — разбиваем её на более мелкие Skills.
Больше ограничений → лучше результат
(он специализирует агента на узких задачах).
4. Non-Negotiable Acceptance Criteria
Самая важная секция. Здесь ты определяешь, что НЕ обсуждается.
Агент не выдаёт результат, если не выполнены все критерии.
Многие используют “Rules” или “Objectives”.
Но он предпочитает “Non-Negotiable”, потому что, это как бы не подлежит обсуждению
А слово “Rules” звучит мягче, оно оставляет агенту пространство решать, что соблюдать, а что игнорировать.
5. Output
Точный формат ответа. Без строгого формата невозможно стабильно связывать Skills в цепочки.
Главный принцип метода - атомарные и узкоспециализированные задачи. Каждый Skill должен выполнять только одну функцию, а итоговое решение получается за счёт комбинации нескольких таких Skill-oв .
Если вы пишете Skills и агент выдаёт нестабильные результаты, скорее всего harness слишком слабый.
