agentic-ops-builder
SENTINEL AGENT — エージェント型運用アプリビルダー
Foundryスタイルの運用オントロジーのためのAIコマンドレイヤー:MCPを介して接続し、実際のクエリデータで自然言語の質問に回答し、人間が承認したアクションを提案し、オンデマンドで運用ダッシュボードを生成するLLMエージェント — 自己構築型のPalantir AIPスタイル運用ツール。
系譜: このプロジェクトは、私がLocari(私のリードジェンSaaS — 本番稼働中、プライベートリポジトリ)向けに構築したAI サイト生成エージェントを、「LLMがウェブサイトを生成する」から「LLMがガバナンス付きでエンタープライズオントロジー上で運用する」へと進化させたものです。同じエージェントループのDNAを持ちながら、すべての機能が型付けされ、ホワイトリスト化され、プレビュー可能で、人間の承認を必要とし、監査されます。このエージェントはPACIFIC SENTINEL(プロジェクト1)と連携し、そのFastAPIオントロジーを直接消費できます。

3プロンプトデモ
すべてを実行(オフライン、APIキー不要):
.venv/bin/python scripts/demo.pyまたは、Webアプリに次のように入力します:
# | プロンプト | 表示内容 |
1 |
| エージェントはオントロジースキーマに基づき、フィルタリングクエリを実行し、テーブルで回答します。すべてのツール呼び出しが右パネルにライブストリーミングされます。 |
2 |
| エージェントは提案します。プレビューカードに変更前後の状態と制約チェックが表示されます。あなたが承認して実行をクリックするまで何も変わりません。その後、補給所の在庫を再質問して状態変化を確認し、 |
3 |
| エージェントはライブデータをクエリし、JSONダッシュボード仕様を公開します。キャンバスに統計タイル、テーブル、棒グラフが表示されます。 |
|
|
|
|
Related MCP server: Vela MCP Server
MCPとは何か、そしてこれがPalantir AIPをどのように模倣しているか
MCP(Model Context Protocol) は、LLMに外部システム上の型付けされ、発見可能で、制限されたツールサーフェスを提供するオープンプロトコルです。サーバーはツール(名前 + 説明 + JSON Schema)を公開し、任意のクライアント(エージェント、IDE、チャットアプリ)が接続し、それらをリストし、呼び出します。プロトコルの境界がガバナンスの境界です。モデルはサーバーが公開するものだけを実行できます。
このプロジェクトはPalantirのAIPアーキテクチャのミニチュア版です:
このプロジェクト | Palantir AIP / Foundry相当 |
オントロジーバックエンド( | Foundryオントロジー:生データ上のセマンティックオブジェクト、すべてのダウンストリームサーフェスで消費される単一のハブ |
MCP読み取りツール( | AIPエージェントがグラウンディングに使用するオントロジーAPI / オブジェクトクエリ |
| AIPアクションタイプ(提出基準 + 人間承認ワークフロー)— 書き込みはガバナンスされ、検証された操作であり、生のテーブル編集ではない |
オペレーターキーによる承認ゲート + シングルユーストークン + エージェントツールホワイトリスト | エージェントの能力と人間の権限を分離するAIPの仕組み |
すべての提案/承認/実行/拒否の追記専用監査ログ | AIP評価・監査証跡 |
| オントロジーデータ上に構築されたWorkshopスタイルの運用アプリ(宣言的設定、任意のコードではない) |
エージェントループ(Claude + MCPツール + イベントストリーム) | AIP Agent Studio(ツールアクセス + ストリーム推論を持つエージェント) |
ヒューマン・イン・ザ・ループの仕組み
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→executed3つの実施レイヤーがエージェントを提案のみに制限します:
ホワイトリスト —
approve_action/reject_action/execute_actionはLLMのツールリストから削除されます。エージェントループは与えられていないツールへの呼び出しを拒否します。能力ゲート — 承認には、オーケストレーションサーバーのプロセス内にのみ存在する
OPERATOR_KEYが必要です(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(デフォルト:ANTHROPIC_API_KEYが設定されていればライブ、それ以外はモック)/ mock / live。MockLLMはツール呼び出しモデル(グラウンディングクエリ→フィルタリングクエリ→回答、アクション解析、ダッシュボード構築)のように動作するため、テストやデモを含むすべてのフローがオフラインで決定論的に実行されます。
マイルストーン
M1 MCPサーバー:交換可能なバックエンド上の読み取り専用オントロジーツール + テスト
M2 エージェントループ:MCP上のLLMツール呼び出し、ホワイトリスト、監査イベント、CLI
M3 FastAPI WebSocketストリーミング + Reactチャット/トレースUI
M4 提案 → 人間承認(オペレーターキー + シングルユーストークン)→ 実行 → 監査
M5 ダッシュボード仕様生成(安全なJSON)+ Reactレンダラー(recharts)
M6 デモスクリプト、スクリーンショット、このREADME
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.
Query your warehouse or a CSV with Claude/ChatGPT over MCP, governed by table-level ACL + audit.
One governed MCP endpoint for 40+ business systems. Read-only, source-cited answers.
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.8 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.165 npm1AGPL 3.0- AlicenseNot gradedqualityDmaintenanceMCP 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


