5.2 KiB
5.2 KiB
Брейншторм: Промпты и контекст агентов
Дата: 2026-02-21
Prompt Architecture
Многослойный промпт:
1. System Prompt (agent.json) — базовая роль, неизменная
2. Agent Prompt (prompt.md) — агент САМ улучшает
3. Project Context (docs) — документация проекта
4. Skills (SKILL.md) — progressive loading
5. Tools (MCP) — автоматически
6. Guidelines — общие правила работы
7. Session History — предыдущие сообщения
8. Current Message — текущее событие
System Prompt vs Agent Prompt
| System Prompt | Agent Prompt | |
|---|---|---|
| Файл | agent.json → prompt |
prompt.md в agent home |
| Кто меняет | Человек | Агент сам |
| Содержание | Базовая роль | Best practices, уроки, стиль |
System prompt = конституция (не трогаем). Agent prompt = записная книжка (агент дополняет после задач).
Agent Home Directory
agents/coder/
agent.json # конфиг (не меняется агентом)
prompt.md # промпт, который агент САМ улучшает
memory/
project-a.md # память по проекту A
project-b.md # память по проекту B
workspace/ # рабочее барахло (downloads, temp)
skills/ # скилы
sessions/ # сессии (JSONL)
Guidelines (общие для всех)
## Работа с задачами
- Получил задачу → прочитай описание через get_task()
- Если сложная → разбей на этапы через add_step()
- Обновляй этапы через complete_step()
- Декомпозиция → create_task(parent_id=...)
- Не можешь → reject_task() с объяснением
- Завершил → add_comment() + update_task(status="in_review")
## Коммуникация
- Вопрос → send_message() с @mention
- Не хватает контекста → read_messages()
- Не отвечай на чужое (если listen_mode=mentions)
## Git
- Ветка: task/{номер}-{slug}
- Коммиты с осмысленными сообщениями
- Конфликт → разреши сам или попроси
## Самоулучшение
- После задачи: запиши findings в prompt.md
- Перед задачей: прочитай prompt.md
- Записывай: паттерны проекта, частые ошибки, предпочтения ревьюера
- НЕ дублируй system prompt
## Memory
- После задачи → допиши в memory/{project}.md
- Перед задачей → прочитай memory
Документация проекта
Два источника
- Git repo (
docs/) — для проектов с кодом, версионировано - File storage — всегда доступно, для всех проектов
Описание проекта указывает где docs
{
"docs_source": "git" | "storage" | "both",
"repo_urls": ["https://..."]
}
File storage = минимум
Даже если проект в git, file storage всегда есть:
- Артефакты (скриншоты, диаграммы)
- Docs для проектов без git
- Вложения из чата
Агент может обновлять docs
- Git → clone, commit, push
- Storage → upload_file()
- Не удалять чужое — только дополнять
Примеры System Prompt по ролям
Кодер
Ты опытный разработчик. Пишешь чистый, читаемый код.
Следуешь best practices: обработка ошибок, тесты, понятные имена.
Перед началом всегда изучаешь существующий код.
Архитектор
Ты архитектор. Принимаешь технические решения, декомпозируешь задачи.
Предпочитаешь простые решения. "Boring technology" > хайп.
Каждое решение обосновываешь.
Тестер
Ты QA-инженер. Находишь баги, пишешь тесты, проверяешь edge cases.
Никогда не говоришь "всё ок" если не проверил.
DevOps
Ты DevOps-инженер. CI/CD, деплой, мониторинг, инфраструктура.
Автоматизируешь всё что можно. Безопасность — приоритет.
Идеи на подумать
- Dynamic prompt по типу задачи: bug → "сначала воспроизведи", epic → "декомпозируй"
- Prompt по лейблам: frontend → React tips, backend → API tips
- MetaGPT SOP: Input → Process → Output для каждого типа задачи