# Prisma Platform MVP Минимальный чат-агент на Agno + Ollama с рантаймом AgentOS. В этом проекте AgentOS работает как HTTP API сервер (FastAPI + Uvicorn). ## Требования - Python 3.10+ - Запущенный Ollama endpoint (по умолчанию: `http://localhost:11435`) - Доступная модель в Ollama (по умолчанию: `gemma4:31b`) ## Текущая структура ```text prisma_platform/ ├── .env ├── .env.example ├── requirements.txt ├── scenarios/ │ ├── index.json │ └── news_source_discovery/ │ └── v1.json └── src/ ├── __init__.py ├── api_routes.py ├── agent_os.py ├── agent_runner.py ├── main.py ├── observability.py ├── scenario_store.py ├── schemas.py ├── stub_tools.py └── workflow_runner.py ``` ## Установка ```bash python -m venv .venv source .venv/bin/activate pip install -r requirements.txt cp .env.example .env ``` ## Запуск Интерактивный режим чата: ```bash python -m src.main ``` Режим одного сообщения: ```bash python -m src.main --message "Привет, что ты умеешь?" ``` Режим запуска сценария (идет загрузка сценария из `scenarios/index.json`): ```bash python -m src.main --scenario-id news_source_discovery_v1 --workflow-input-json '{"url":"https://example.com/news"}' ``` ## Запуск AgentOS Запуск сервера AgentOS: ```bash python -m src.agent_os ``` По умолчанию AgentOS работает на `http://127.0.0.1:7777`. Документация API доступна по адресам: - `http://127.0.0.1:7777/docs` - `http://127.0.0.1:7777/redoc` Верхний слой сервиса реализован как кастомные FastAPI роуты (`src/api_routes.py`), подключенные через `AgentOS(base_app=...)`. ### Запуск сценария через HTTP - `POST http://127.0.0.1:7777/api/runs` - Тело запроса (JSON): ```json { "scenario_id": "news_source_discovery_v1", "input": { "url": "https://example.com/news" } } ``` Пример запроса: ```bash curl -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" } }' ``` Endpoint возвращает структурированный ответ со статусом `success` или `failed`. Проверка, что сервер поднят: ```bash curl -s "http://127.0.0.1:7777/docs" | grep -n "Swagger UI" ``` ## Переменные окружения Основные переменные: - `AGENT_ID` (по умолчанию: `prisma-agent`) - `OLLAMA_MODEL_ID` (по умолчанию: `gemma4:31b`) - `OLLAMA_HOST` (по умолчанию: `http://localhost:11435`) - `OLLAMA_TEMPERATURE` (по умолчанию: `0`) - `AGENT_MARKDOWN` (по умолчанию: `false`) - `AGENT_DEBUG_MODE` (по умолчанию: `true`) - `AGENT_INSTRUCTIONS` (по умолчанию: `You are a helpful assistant. Answer briefly and clearly.`) - `AGENT_OS_HOST` (по умолчанию: `127.0.0.1`) - `AGENT_OS_PORT` (по умолчанию: `7777`) - `PHOENIX_TRACING_ENABLED` (по умолчанию: `false`) - `PHOENIX_COLLECTOR_ENDPOINT` (по умолчанию: `http://localhost:6006`) - `PHOENIX_PROJECT_NAME` (по умолчанию: `prisma-platform`) ## Phoenix трассировка (локально) 1. Установите зависимости: ```bash pip install -r requirements.txt ``` 2. Поднимите Phoenix (см. `docker-service/docker-compose.yml`) и включите трассировку в `.env`: ```dotenv PHOENIX_TRACING_ENABLED=true PHOENIX_COLLECTOR_ENDPOINT=http://localhost:6006 PHOENIX_PROJECT_NAME=prisma-platform ``` 3. Запустите приложение как обычно (`python -m src.main` или `python -m src.agent_os`).