Skip to content

boundlessend/report_agent_api

Repository files navigation

report-agent

что внутри

  • 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 -q

запуск mcp сервера

uv run python -m app.mcp_server

docker

docker 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

docker compose up --build

makefile

make 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 сущности

  • demo-1
  • demo-2

mcp tools

  • generate_training_report(entity_id: str, query: str = "")
  • list_training_report_sections()

контракт generate_training_report

{
  "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 запрещено

схема workflow

init_report -> orchestrator -> section_writer -> finalize

где создаются отчеты

reports/report_<entity>_<timestamp_msk>_<report_uuid>.md
reports/report_<entity>_<timestamp_msk>_<report_uuid>.docx

About

конфигурируемый генератор учебного аналитического отчета / probation stuff pt.14

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Contributors