Skip to main content
Glama

SENTINEL AGENT — конструктор агентных операционных приложений

ИИ-уровень команд для операционной онтологии в стиле Foundry: LLM-агент, который подключается через MCP, отвечает на вопросы на естественном языке реальными данными из запросов, предлагает одобряемые человеком действия и генерирует операционные дашборды по запросу — самосоздаваемый операционный инструмент в стиле Palantir AIP.

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

Полное демо: Q&A, одобренное действие, сгенерированный дашборд

Демо из 3 промптов

Запустите всё (офлайн, без API-ключа):

.venv/bin/python scripts/demo.py

Или введите эти промпты в веб-приложение:

#

Промпт

Что вы увидите

1

Which units are critically low on water?

Агент опирается на схему онтологии, выполняет фильтрованный запрос и отвечает таблицей — каждый вызов инструмента транслируется в реальном времени в правой панели.

2

Send 500 water from DEP-1 to UNIT-1

Агент предлагает; карточка предпросмотра показывает состояние до/после + проверки ограничений. Ничего не меняется, пока вы не нажмёте Approve & execute. Затем переспросите про запасы депо, чтобы увидеть изменение состояния, и GET /audit для журнала.

3

Build me a dashboard for the depots

Агент запрашивает живые данные и публикует JSON-спецификацию дашборда; канвас рендерит плитки метрик, таблицу и столбчатую диаграмму.

Q&A

Предпросмотр действия

Выполнено

Дашборд

Related MCP server: Enterprise Architecture MCP Server

Что такое MCP и как это повторяет Palantir AIP

MCP (Model Context Protocol) — открытый протокол, который даёт LLM типизированную, обнаруживаемую, ограниченную поверхность инструментов для внешних систем. Сервер предоставляет инструменты (имя + описание + JSON Schema); любой клиент — агент, IDE, чат-приложение — подключается, перечисляет их и вызывает. Граница протокола — это граница управления: модель может делать только то, что предоставляет сервер.

Этот проект — миниатюра архитектуры AIP от Palantir:

Этот проект

Эквивалент в Palantir AIP / Foundry

Бэкенды онтологии (StubOntology, HttpOntology → FastAPI Проекта 1) — типизированные объекты (SupplyDepot, DeployedUnit, ForwardOperatingBase)

Онтология Foundry: семантические объекты поверх сырых данных, единый хаб, потребляемый всеми нижележащими поверхностями

MCP-инструменты чтения (list_object_types, query_objects)

Онтологические API / объектные запросы, которые агенты AIP используют для обоснования

propose_action → предпросмотр с проверками ограничений → одобрение человеком → execute_action

Типы действий AIP с критериями подачи + рабочими процессами одобрения человеком — записи — это управляемые, проверенные операции, а не правки сырых таблиц

Одобрение, ограниченное ключом оператора + одноразовые токены + белый список инструментов агента

Разделение возможностей агента и полномочий человека в AIP

Журнал аудита только на добавление для каждого предложения/одобрения/выполнения/отказа

Трассы оценки и аудита AIP

JSON-спецификация publish_dashboard → фиксированный React-рендерер

Операционные приложения в стиле 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

Три уровня контроля удерживают агента в режиме «только предложения»:

  1. Белый списокapprove_action / reject_action / execute_action удаляются из списка инструментов LLM; агентский цикл отклоняет любой вызов инструмента, который ему не был предоставлен.

  2. Ограничение возможностей — для одобрения требуется OPERATOR_KEY, который существует только в процессе оркестрационного сервера (внедряется в env дочернего процесса MCP). Никакой LLM-контекст никогда его не содержит, поэтому агент не может создать токены одобрения даже в принципе.

  3. Механика токенов — токены одноразовые (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 ...

Режимы LLMLLM_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

F
license - not found
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    B
    maintenance
    Turns warehouse/lakehouse tables into a governed entity-relationship knowledge graph exposed through MCP, enabling AI agents to answer multi-table business questions without hard-coded SQL or large schema prompts.
    Apache 2.0
  • F
    license
    -
    quality
    C
    maintenance
    Enables 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.
  • A
    license
    -
    quality
    B
    maintenance
    Enables 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.
    48
    Apache 2.0

View all related MCP servers

Related MCP Connectors

  • An AI concierge that turns static forms into adaptive AI conversations. From any MCP client.

  • GibsonAI MCP server: manage your databases with natural language

  • Official Microsoft MCP Server to query Microsoft Entra data using natural language

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aryanpatel27/sentinel-agent'

If you have feedback or need assistance with the MCP directory API, please join our Discord server