# Prisma Platform MVP MVP-реализация сценарного раннера на Agno AgentOS. Текущая схема исполнения: - сценарий хранится в `scenarios/*.json`; - исполнение идет через `src/mcp_workflow_runner.py`; - каждый шаг вызывает MCP инструмент через `src/mcp_client.py`; - для подготовки аргументов шага используется planner-агент с моделью через `polza.ai`. ## Требования - Python 3.10+ - MCP endpoint (по умолчанию `http://127.0.0.1:8081/mcp`) - доступ к модели через `polza.ai` (`POLZA_API_KEY`) ## Текущая структура ```text prisma_platform/ ├── .env ├── .env.example ├── requirements.txt ├── scenarios/ │ ├── index.json │ └── news_source_discovery/ │ ├── v1.json │ └── v1_planner_repair.json └── src/ ├── __init__.py ├── api_routes.py ├── agent_os.py ├── agent_runner.py ├── mcp_client.py ├── mcp_workflow_runner.py ├── observability.py ├── scenario_store.py ├── step_planner.py ├── template.py └── schemas.py ``` ## Установка ```bash python -m venv .venv source .venv/bin/activate pip install -r requirements.txt cp .env.example .env ``` ## Запуск 1) Поднимите MCP stub (из соседнего репозитория): ```bash cd /home/worker/projects/docker-service/mcp-stub docker compose up --build -d ``` 2) Запустите сервер AgentOS: ```bash cd /home/worker/projects/prisma_platform .venv/bin/python -m src.agent_os ``` По умолчанию приложение доступно на `http://127.0.0.1:7777`. Документация API: - `http://127.0.0.1:7777/docs` - `http://127.0.0.1:7777/redoc` ## Запуск сценария через HTTP - `POST http://127.0.0.1:7777/api/runs` Тело запроса: ```json { "scenario_id": "news_source_discovery_v1", "input": { "url": "https://example.com/news" } } ``` Пример: ```bash curl -s -X POST "http://127.0.0.1:7777/api/runs" \ -H "Content-Type: application/json" \ -d '{ "scenario_id": "news_source_discovery_v1", "input": { "url": "https://example.com/news" } }' ``` Успешный ответ содержит: - `status=success` - `message=""` - список `steps` со статусами и временем шагов - `output_summary` - `result` итогового шага При ошибке: - `status=failed` - `message` содержит текст ошибки ## Переменные окружения Agent: - `AGENT_ID` (default: `prisma-agent`) - `AGENT_MARKDOWN` (default: `false`) - `AGENT_DEBUG_MODE` (default: `true`) - `AGENT_INSTRUCTIONS` - `OLLAMA_MODEL_ID` (default: `gemma4:31b`) - `OLLAMA_HOST` (default: `http://localhost:11435`) - `OLLAMA_TEMPERATURE` (default: `0`) API runtime: - `AGENT_OS_HOST` (default: `127.0.0.1`) - `AGENT_OS_PORT` (default: `7777`) Planner: - `PLANNER_ENABLED` (default: `false`) - `PLANNER_REPAIR_ATTEMPTS` (default: `3`) Planner model (`polza.ai`): - `POLZA_BASE_URL` (default: `https://api.polza.ai/v1`) - `POLZA_MODEL_ID` (default: `google/gemma-4-31b-it`) - `POLZA_API_KEY` (required) - `POLZA_TEMPERATURE` (default: `0`) MCP: - `MCP_BASE_URL` (default: `http://127.0.0.1:8081/mcp`) - `MCP_TIMEOUT_SECONDS` (default: `10`) Phoenix tracing: - `PHOENIX_TRACING_ENABLED` (default: `false`) - `PHOENIX_COLLECTOR_ENDPOINT` (default: `http://localhost:6006`) - `PHOENIX_PROJECT_NAME` (default: `prisma-platform`) ## Phoenix трассировка (локально) 1) Включите трассировку в `.env`: ```dotenv PHOENIX_TRACING_ENABLED=true PHOENIX_COLLECTOR_ENDPOINT=http://localhost:6006 PHOENIX_PROJECT_NAME=prisma-platform ``` 2) Запустите приложение: ```bash .venv/bin/python -m src.agent_os ```