TuBrief
구독 채널
비디오
커뮤니티

Как разделить огромные промпты и сократить растрату токенов агентами

TuBrief 편집팀
2026년 3월 14일
0
Computing/Software

원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다.

Русский한국어EnglishEspañol中文العربيةहिन्दीDeutschFrançaisPortuguêsBahasa Indonesia日本語

관련 영상

▲ Сессия сообщества: как создавать и публиковать навыки1:03:28

▲ Сессия сообщества: как создавать и публиковать навыки

Vercel

커뮤니티의 다른 글

사내 시스템에 llm api 붙일 때 마주하는 현실적인 한계와 대응법

2026년 9월 13일

레거시 백엔드에 GPT-6 Astra 붙일 때 예산 승인과 보안 통과를 먼저 끝내는 법이 있습니다

2026년 9월 13일

에이전트끼리 대화하다 6천만 원 청구서가 나오는 이유

2026년 9월 13일

사내 RAG 벡터 검색에 Okta 권한 필터를 직접 거는 방법

2026년 9월 13일

브라우저 에이전트에게 내 구글 계정을 통째로 넘기면 안 되는 이유

2026년 9월 12일

Apple Won the AI Race

2026년 9월 12일

댓글 (0)

Log in to leave a comment

아직 작성된 글이 없습니다

© 2026 . All rights reserved.

TuBrief
구독 채널
비디오
커뮤니티
로그인

Как разделить огромные промпты и сократить растрату токенов агентами

Монолитная структура, в которую в один системный промпт запихивают всевозможные гайдлайны и инструменты, быстро исчерпывает себя. Стоит диалогу немного затянуться, и агент начинает забывать инструкции, прописанные в середине промпта. Из-за многократной отправки десятков тысяч токенов при каждом запросе затраты на инференс взлетают до небес, а ждать появления первого токена приходится очень долго.

В реальной работе эту проблему решают с помощью структуры поэтапной загрузки контекста на основе открытой спецификации agentskills.io. Это подход, при котором нужные навыки подгружаются только в необходимый момент, экономя токены.

Критерии разделения на независимые файлы навыков в формате Markdown

Монолитный системный промпт следует разбивать на основе границ доменов, прав на выполнение инструментов и частоты использования. Чтобы избежать конфликтов между навыками при поиске семантического сходства, в одной сессии должно быть активно не более 3 навыков одновременно.

В верхней части разделенного файла навыка укажите YAML-frontmatter, содержащий идентификатор (используйте только дефисы, строчные латинские буквы и цифры) и цель выполнения.

`yaml

name: backend-api-generator
description: Generates Spring Boot REST API controller and service boilerplate code. Use when the user asks to create API endpoints, build REST controllers, or define DTO mappings for backend services.
when_to_use:

  • User requests new REST API endpoint creation
  • User provides database schema and asks for controller layer implementation
  • Do NOT use for: database migration SQL, frontend component generation
    allowed-tools:
  • read_file
  • write_file
  • list_directory
    effort: medium

`

Процесс создания структуры поэтапной загрузки прост:

  • При инициализации агента в промпт загружаются только метаданные YAML-frontmatter всех навыков в директории (около 100 токенов на навык).
  • При поступлении пользовательского запроса его семантическое сходство сравнивается с описаниями навыков, после чего динамически подгружается только текст нужного навыка.
  • На этапе выполнения в соответствии с инструкциями в тексте запускаются необходимые вспомогательные скрипты, а в контекст включаются только результаты их работы.

Замена монолитной структуры, которая постоянно занимала от 15 000 до 30 000 токенов, на структуру отложенной загрузки SKILL.md позволяет снизить начальные накладные расходы по токенам более чем на 90%. Согласно внутренним тестовым данным Anthropic, это позволяет сократить задержку p95 с 12% до 40% и уменьшить среднее потребление токенов на один диалог на 29.6%.

Внутренние ограничения для предотвращения загрязнения контекста

Когда последовательно загружается несколько навыков, инструкции предыдущего навыка часто остаются в сессии и искажают следующие задачи. Для проверок с высоким уровнем риска или задач, оставляющих много логов, в YAML-frontmatter необходимо добавить настройку разветвления контекста (context: fork) для изоляции на уровне процессов.

`yaml

name: security-vulnerability-auditor
description: Audits backend source code for OWASP top 10 security flaws. Use when auditing code security or checking for SQL injection vulnerabilities.
context: fork
model: claude-sonnet-4-20250514
effort: high

`

Нельзя забывать и обчетком определении контракта данных (Data Contract):

  • Объявите структуры аргументов и список разрешенных инструментов (allowed-tools) в метаданных YAML, чтобы предотвратить произвольное выполнение Bash или бездумные сетевые вызовы.
  • Укажите в тексте правила для выходной схемы в формате чистого JSON без обертки в Markdown.
  • Ограничьте инструкции так, чтобы в сессию диалога возвращался только финальный результат.

`markdown

Output Schema Contract

All responses must strictly adhere to the following JSON structure without markdown wrapping:
{
"status": "SUCCESS" | "FAILED",
"generated_files": [
{
"path": "string",
"content": "string"
}
],
"error_message": "string | null"
}

`

Изоляция в виде дочернего процесса позволяет избежать ситуации, когда логи вызовов инструментов затопляют основную сессию. Поскольку основной сеанс диалога остается чистым, вероятность возникновения ошибок при передаче данных между субагентами также снижается.

Проектирование защитного кода для предотвращения бесконечных циклов

Если требования расплывчаты или ошибки вызова инструментов повторяются, агент попадает в бесконечный цикл повторных попыток. Это момент, когда десятки долларов на API сгорают всего за несколько минут. Включение пошагового контрольного списка статической проверки (Verification Checklist) в текст файла навыка заставляет агента самостоятельно проводить проверку перед завершением задачи.

`markdown

Execution & Self-Testing Protocol

Before declaring the task finished, you MUST sequentially execute the following verification checklist:

  1. [Pre-check] Verify that all required input parameters are present. If mandatory arguments are missing, STOP immediately and ask the developer for input.
  2. [Generation] Write the requested implementation code.
  3. [Syntax Verification] Check the written code for missing imports, unresolved symbols, and syntax errors.
  4. [Self-Correction] If a syntax error is identified, attempt correction ONCE. Do not re-run the file write tool more than twice for the same error.

`

Написать выключатель (Circuit Breaker), физически прерывающий цикл, тоже просто:

  • Укажите в верхней части навыка максимальное количество вызовов инструментов (MAXIMUM_TOOL_CALL_LIMIT: 3).
  • Пропишите условие ограничения, останавливающее дополнительные вызовы инструментов, если одна и та же ошибка возникает 2 раза подряд.
  • При срабатывании условия остановки отдайте команду немедленно прекратить выполнение и вывести шаблон уведомления.

`markdown
[SKILL EXECUTION HALTED]
Skill Name: backend-api-generator
Failure Reason: [Brief error description]
Attempts Made: [Number of retries]
Suggested Action: [Action required by backend developer]

`

Для опасных операций, таких как удаление файлов или сброс базы данных, безопаснее устанавливать опцию disable-model-invocation: true. Это запрещает агенту самостоятельно вызывать навык и ограничивает его выполнение только теми случаями, когда разработчик сам вводит слеш-команду (/skill-name).

Управление версиями и развертывание в командном репозитории

Когда члены команды пишут навыки вместе, им следует придерживаться стандартной архитектуры каталогов agentskills.io, чтобы не мучиться из-за конфликтов файлов Markdown. Тело навыка, CLI-скрипты, справочную документацию и ресурсы со статическими шаблонами следует четко разделить и разместить внутри родительской папки.

Путь к каталогу и файлу Роль Инструкции по написанию
skills/api-generator/SKILL.md Обязательный документ точки входа Содержит YAML-frontmatter и инструкции по основным процедурам (до 500 строк)
skills/api-generator/scripts/ Папка исполняемого кода Расположение CLI-скриптов на Python/Bash, вызываемых агентом при необходимости
skills/api-generator/references/ Папка вспомогательной справочной документации Содержит объемные спецификации API, схемы БД, руководства по стилю
skills/api-generator/assets/ Папка шаблонов статических ресурсов Хранение бойлерплейта генерируемого кода, примеров файлов конфигурации

Для проверки качества навыков используется фреймворк оценки promptfoo.

  • Укажите путь к тестируемому SKILL.md и модель LLM в файле promptfooconfig.yaml.
  • Добавьте тестовые кейсы, проверяющие соответствие намереньям и соблюдение формата JSON.
  • Запустите команду npx promptfoo@latest eval в терминале для измерения процента соблюдения инструкций.

`yaml
description: "Backend Agent Skills Validation Suite"
prompts:

  • "file://skills/api-generator/SKILL.md"
    providers:
  • id: "anthropic:messages:claude-3-5-sonnet-20241022"
    tests:
  • description: "Test automatic skill activation for REST API generation query"
    vars:
    user_query: "Create a Spring Boot REST Controller for User Management."
    assert:
    • type: icontains
      value: "backend-api-generator"
    • type: javascript
      value: "output.includes('@RestController') && output.includes('ResponseEntity')"

`

При развертывании используется комбинация стратегии разработки на основе ствола (trunk-based development) с ветками короткого времени жизни и тегов Git (v1.2.0). Если агент в продакшене начинает вести себя странно, можно мгновенно откатиться к предыдущему тегу с помощью команды git checkout tags/v1.1.0 -b hotfix/rollback.