agentic-ops-builder
SENTINEL AGENT — конструктор агентных операционных приложений
ИИ-уровень команд для операционной онтологии в стиле Foundry: LLM-агент, который подключается через MCP, отвечает на вопросы на естественном языке реальными данными из запросов, предлагает одобряемые человеком действия и генерирует операционные дашборды по запросу — самосоздаваемый операционный инструмент в стиле Palantir AIP.
Происхождение: этот проект развивает ИИ-агента генератора сайтов, созданного мной для Locari (мой SaaS для генерации лидов — в продакшене; приватный репозиторий) от «LLM генерирует сайт» до «LLM работает с корпоративной онтологией под управлением»: та же ДНК агентского цикла, но каждая возможность теперь типизирована, внесена в белый список, предпросматривается, одобряется человеком и аудируется. Он работает в паре с PACIFIC SENTINEL (Проект 1), чью FastAPI-онтологию этот агент может потреблять напрямую.

Демо из 3 промптов
Запустите всё (офлайн, без API-ключа):
.venv/bin/python scripts/demo.pyИли введите эти промпты в веб-приложение:
# | Промпт | Что вы увидите |
1 |
| Агент опирается на схему онтологии, выполняет фильтрованный запрос и отвечает таблицей — каждый вызов инструмента транслируется в реальном времени в правой панели. |
2 |
| Агент предлагает; карточка предпросмотра показывает состояние до/после + проверки ограничений. Ничего не меняется, пока вы не нажмёте Approve & execute. Затем переспросите про запасы депо, чтобы увидеть изменение состояния, и |
3 |
| Агент запрашивает живые данные и публикует JSON-спецификацию дашборда; канвас рендерит плитки метрик, таблицу и столбчатую диаграмму. |
|
|
|
|
Related MCP server: Vela MCP Server
Что такое MCP и как это повторяет Palantir AIP
MCP (Model Context Protocol) — открытый протокол, который даёт LLM типизированную, обнаруживаемую, ограниченную поверхность инструментов для внешних систем. Сервер предоставляет инструменты (имя + описание + JSON Schema); любой клиент — агент, IDE, чат-приложение — подключается, перечисляет их и вызывает. Граница протокола — это граница управления: модель может делать только то, что предоставляет сервер.
Этот проект — миниатюра архитектуры AIP от Palantir:
Этот проект | Эквивалент в Palantir AIP / Foundry |
Бэкенды онтологии ( | Онтология Foundry: семантические объекты поверх сырых данных, единый хаб, потребляемый всеми нижележащими поверхностями |
MCP-инструменты чтения ( | Онтологические API / объектные запросы, которые агенты AIP используют для обоснования |
| Типы действий AIP с критериями подачи + рабочими процессами одобрения человеком — записи — это управляемые, проверенные операции, а не правки сырых таблиц |
Одобрение, ограниченное ключом оператора + одноразовые токены + белый список инструментов агента | Разделение возможностей агента и полномочий человека в AIP |
Журнал аудита только на добавление для каждого предложения/одобрения/выполнения/отказа | Трассы оценки и аудита AIP |
JSON-спецификация | Операционные приложения в стиле Workshop поверх данных онтологии (декларативная конфигурация, а не произвольный код) |
Агентский цикл (Claude + MCP-инструменты + поток событий) | Агенты AIP Agent Studio с доступом к инструментам + потоковое рассуждение |
Как работает human-in-the-loop
user ──ask──▶ Agent (LLM) MCP server FastAPI (operator)
│ propose_action(...) ──▶ validate params
│ run constraint checks
│ build before/after PREVIEW (no mutation)
│ ◀── proposal + action_id ─┘
UI shows preview card ──── human clicks Approve ──▶ approve_action(operator_key)
└─ mints SINGLE-USE token
execute_action(token)
├─ re-validates vs CURRENT state
├─ applies the change
└─ audit log: proposed→approved→executedТри уровня контроля удерживают агента в режиме «только предложения»:
Белый список —
approve_action/reject_action/execute_actionудаляются из списка инструментов LLM; агентский цикл отклоняет любой вызов инструмента, который ему не был предоставлен.Ограничение возможностей — для одобрения требуется
OPERATOR_KEY, который существует только в процессе оркестрационного сервера (внедряется в env дочернего процесса MCP). Никакой LLM-контекст никогда его не содержит, поэтому агент не может создать токены одобрения даже в принципе.Механика токенов — токены одноразовые (
secrets.compare_digest, сжигаются при первом использовании), а выполнение повторно проверяет каждое ограничение по текущему состоянию, поэтому устаревшее одобрение не может превысить лимит депо.
Та же философия управляет дашбордами: агент генерирует строго
проверяемую JSON-спецификацию (extra="forbid", 3 типа виджетов,
ограниченные размеры), которую интерпретируют фиксированные React-компоненты —
никакого HTML, JSX или исполняемого кода.
Архитектура
React 18 + Vite + TS + Tailwind FastAPI (port 8100) MCP server (stdio subprocess)
┌──────────────┬───────────────┐ WS ┌──────────────────────┐ MCP ┌─────────────────────────┐
│ Chat panel │ Actions cards │ ◀─────▶ │ /ws agent events │ ◀─────▶ │ 9 tools over ontology │
│ (markdown) │ Live trace │ HTTP │ /actions/{id}/approve│ stdio │ ┌─ StubOntology (dflt) │
│ │ Dashboard │ ◀─────▶ │ /actions/{id}/reject │ │ └─ HttpOntology ──▶ Project 1
│ │ canvas │ │ /audit /health │ │ (pacific-sentinel)
└──────────────┴───────────────┘ │ OpsAgent loop + LLM │ └─────────────────────────┘
│ (Claude ⟷ MockLLM) │
└──────────────────────┘Запуск
# Backend
python3.11 -m venv .venv && .venv/bin/pip install -e ".[dev]"
.venv/bin/python -m pytest # 60 tests, fully offline
.venv/bin/python scripts/demo.py # scripted 3-prompt demo (mock LLM)
.venv/bin/python scripts/smoke_mcp.py # raw MCP stdio smoke run
# CLI
.venv/bin/python -m ops_agent.cli --llm mock "Which units are critically low on water?"
# Web app: API on :8100, frontend on :5174
LLM_MODE=mock .venv/bin/python -m uvicorn ops_agent.server:app --port 8100
cd frontend && npm install && npm run dev # open http://localhost:5174
npm test # 8 Vitest component tests
# Real LLM (claude-opus-4-8; key read from env, never hardcoded)
export ANTHROPIC_API_KEY=sk-ant-...
.venv/bin/python -m ops_agent.cli "Which units are critically low on water?"
# Against Project 1's live ontology instead of the stub
ONTOLOGY_BACKEND=http ONTOLOGY_API_URL=http://localhost:8000 ...Режимы LLM — LLM_MODE=auto (по умолчанию: live, если задан ANTHROPIC_API_KEY,
иначе mock) / mock / live. MockLLM ведёт себя как модель с вызовом
инструментов (обосновывающий запрос → фильтрованный запрос → ответ; разбор
действий; построение дашбордов), поэтому каждый поток — включая тесты и демо —
работает офлайн и детерминированно.
Вехи
M1 MCP-сервер: инструменты онтологии только для чтения поверх сменного бэкенда + тесты
M2 Агентский цикл: вызов инструментов LLM через MCP, белый список, события аудита, CLI
M3 FastAPI WebSocket-стриминг + React-интерфейс чата/трассировки
M4 предложение → одобрение человеком (ключ оператора + одноразовый токен) → выполнение → аудит
M5 генерация спецификации дашборда (безопасный JSON) + React-рендерер (recharts)
M6 демо-скрипт, скриншоты, этот README
This server cannot be deployed
Maintenance
Related MCP Connectors
Governed data discovery, exact queries, decisions, simulations, and runtime utilities over MCP.
Query your org's data in natural language — read-only MCP access to SQL, NoSQL, files & warehouses.
Let AI agents query data and act across all your business apps via MCP.
Query your warehouse or a CSV with Claude/ChatGPT over MCP, governed by table-level ACL + audit.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables engineers and plant managers to interact with manufacturing systems using natural language, providing machine health analysis, KPI dashboards, predictive maintenance, and automated workflow execution via MCP.-
- AlicenseNot gradedqualityDmaintenanceEnables governed, agent-agnostic data exploration by allowing users to ask natural language questions through MCP-compatible agents, executing safe, permission-scoped queries against data sources and returning interactive charts.4 npmApache 2.0

Atlas MCPofficial
AlicenseNot gradedqualityAmaintenanceEnables natural language querying of SQL databases and REST APIs through the MCP protocol, grounded in a semantic layer.649 npm1AGPL 3.0- AlicenseNot gradedqualityCmaintenanceMCP server that enables natural-language SQL queries across multiple databases (ClickHouse, Teradata, PostgreSQL, MySQL, SQL Server, DB2, Oracle, MongoDB) with dialect-correct SQL generation, PII masking, and security-by-construction controls.MIT


