- yaml сценарий отчета с версией
- три раздела с instruction.yaml, prompt.txt, schema.json и script.py
- sqlite источник данных
- миграции с синтетическими demo данными
- fake llm без реального api
- workflow init -> orchestrator -> section_writer -> finalize
- markdown и docx export
- mcp tools на fastmcp
- pytest тесты без запуска настоящего mcp сервера
- управление зависимостями через uv
uv sync --dev
uv run python -m app.migrations apply
uv run python main.py --entity-id demo-1 --query "сделай акцент на рисках"uv run pytest -quv run python -m app.mcp_serverdocker build -t report-agent-api .
docker run --rm -v "$PWD/reports:/app/reports" -v "$PWD/data:/app/data" report-agent-apiконтейнер применяет миграции из команды dockerfile перед запуском mcp сервера
docker compose up --buildmake sync
make lock
make migrate
make test
make check
make run-cli
make run-mcp
make docker-build
make docker-up
make docker-down
make cleanпеременные для cli
make run-cli ENTITY_ID=demo-2 QUERY="сделай акцент на рисках"- demo-1
- demo-2
- generate_training_report(entity_id: str, query: str = "")
- list_training_report_sections()
{
"error": false,
"errorMessage": "",
"result": {
"total": 3,
"successCount": 3,
"errorCount": 0,
"exports": [],
"links": [],
"errors": []
}
}- неизвестная сущность возвращает error=true в mcp tool
- отсутствующий сценарий раздела падает при загрузке section scenario
- сломанный schema.json дает ScenarioLoadError
- падение script.py прерывает workflow
- fake llm без save_section дает ReportGenerationError
- query_document до готовых разделов запрещен
- превышение лимита query_document запрещено
init_report -> orchestrator -> section_writer -> finalize
reports/report_<entity>_<timestamp_msk>_<report_uuid>.md
reports/report_<entity>_<timestamp_msk>_<report_uuid>.docx