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

4.0 KiB

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)

Текущая структура

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

Установка

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env

Запуск

  1. Поднимите MCP stub (из соседнего репозитория):
cd /home/worker/projects/docker-service/mcp-stub
docker compose up --build -d
  1. Запустите сервер AgentOS:
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

Тело запроса:

{
  "scenario_id": "news_source_discovery_v1",
  "input": {
    "url": "https://example.com/news"
  }
}

Пример:

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:
PHOENIX_TRACING_ENABLED=true
PHOENIX_COLLECTOR_ENDPOINT=http://localhost:6006
PHOENIX_PROJECT_NAME=prisma-platform
  1. Запустите приложение:
.venv/bin/python -m src.agent_os