Files
prisma/README.md
T
Barabashka 4d037e52eb Упрощение MCP workflow runner и обновить контракт /api/runs.
Перенесены planner/template хелперы в отдельные модули, выровнен формат статусов и сообщений в ответе, а также обновлены .env.example и README под текущие переменные и поведение API.
2026-04-23 12:41:33 +03:00

173 lines
4.0 KiB
Markdown

# 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
```