Operator ETL
Operator ETL
Агентный сбор данных для FOIA и публичных комментариев — детерминированное медальонное хранилище, оркестрация LangGraph, поверхность инструментов MCP, плоскость политик PII.
Python и SQL решают, какие данные существуют. Агенты оркестрируют в типизированных границах. Тесты доказывают инварианты — для MVP-демо не требуется ключ API LLM.
Создано для государственных учреждений и регулируемых органов, которые должны принимать публичные комментарии, обнаруживать PII перед публикацией, карантинировать плохие строки и создавать защищаемые инсайты (каждое число проверено по хранилищу).
Документация
Вики (поиск): https://khaosans.github.io/operator-etl/
Начать отсюда | Ссылка |
Посмотреть в работе | Визуальный тур (скриншоты) |
Первый запуск | QUICKSTART — |
Для кого это | |
UI продукта (позже) | PRODUCT-UX — СПЕЦИФИЦИРОВАН, не эта демо |
Проверка одной командой
git clone https://github.com/khaosans/operator-etl.git
cd operator-etl
./scripts/verify.shУстанавливает uv, если отсутствует, синхронизирует зависимости, запускает полный шлюз проверки. Успех завершается OPERATOR_ETL_VERIFY=PASS.
Ожидается: 41 тест pytest пройден, демо FOIA выводит status=complete и silver=10. Полный набор скриншотов: docs/TOUR.md.



flowchart LR
Verify[verify.sh] --> UV[uv sync]
UV --> E2E[e2e gate]
E2E --> Pass[OPERATOR_ETL_VERIFY=PASS]Уже есть uv? make e2e · Подробности: docs/QUICKSTART.md · Пошагово: docs/WALKTHROUGH.md
flowchart LR
subgraph problem [The usual demo]
A[Chatbot + SQL] --> W[(Warehouse)]
A --> M[Memo with KPIs]
end
subgraph fail [Three failures]
F1[PII in context]
F2[Hallucinated counts]
F3[No replay audit]
end
M --> failOperator ETL разделяет детерминированный ETL и ограниченных агентов. PII никогда не попадает в неограниченные инструменты; критик отклоняет числа инсайтов, которых нет в gold; bronze дает вам неизменяемый аудиторский след.
Глубокое погружение: docs/WHY.md · Рабочий процесс агентства: docs/FOIA-Public-Comments-Guide.md
Как это работает — три плоскости
flowchart TB
subgraph data [Data plane]
direction TB
CSV[CSV intake] --> Bronze[bronze_raw]
Bronze --> Silver[silver validated]
Bronze --> Quarantine[quarantine]
Silver --> Gold[gold SQL marts]
end
subgraph policy [Policy plane]
PII[PII scan + vault]
Bronze --> PII
end
subgraph control [Control plane]
Graph[LangGraph]
MCP[MCP allowlist]
Critic[critic]
Graph --> MCP --> Gold
Graph --> Critic --> Insight[verified insight]
endПлоскость | Роль |
Данные | Bronze (неизменяемый) → silver (проверенный) → gold (SQL-витрины) + карантин. Python и SQL выполняют; никакого LLM на сырых строках. |
Политика | Сканирование PII, зашифрованное хранилище, отказоустойчивость перед инсайтом. Хранилище никогда не раскрывается через MCP. |
Управление | Конвейер LangGraph, инструменты из белого списка MCP, критик проверяет каждое число в черновике инсайта. |
Подробности: docs/HOW-IT-WORKS.md · okf/models/three-planes.md
Почему не отдать чат-боту ваше хранилище?
Доверие и доказательства
Вопрос | Ответ |
Работает ли локально? |
|
Что доказывает CI? | Тот же шлюз при каждом пуше (значок выше) |
Что не доказано в CI? | Развертывание в живом GCP, Presidio PII, инсайты, сгенерированные LLM — см. честный аудит |
Матрица доказательств: docs/FOUNDATIONS.md · Полный аудит: docs/FINAL-REVIEW.md
Что вы только что доказали
Метрика | Ожидаемое |
Примеры комментариев | 12 (реестры EPA/FCC) |
Silver (валидные) | 10 |
В карантине | 2 |
Статус графа |
|
Критик | пройдено |
Подробности: okf/models/mvp-demo.md
Инженерные компромиссы
Решение | Мы выбрали | Преимущество | Стоимость | Когда менять |
Локальное хранилище | DuckDB | Доказательство без инфраструктуры на ноутбуке | Не мультитенантный | Этап L3 BigQuery — SCALING.md |
Обнаружение PII | Regex MVP | Просто, тестируемо, без зависимостей ML | Пропускает имена, адреса | Presidio для продакшена |
Генерация инсайтов | Шаблон + критик | Нет ключа API; детерминированно | Меньше гибкости повествования | Узел LLM, когда агентство одобрит |
Доступ агентов к данным | Белый список MCP (3 инструмента) | Минимальные привилегии | Нет ad-hoc исследования SQL | Не ослаблять для продакшена FOIA |
Сбои качества | Закрытие при сбое | Надежные KPI | Блокирует инсайты до исправления | Избегать предупреждений и показа баннеров |
Полная матрица доказательств: docs/FOUNDATIONS.md
Для кого это
Роль | Начать отсюда |
Сотрудник FOIA | |
Инженер данных | |
Архитектор / рецензент | WHY → FOUNDATIONS → |
AI-агент (MCP) | AGENTS.md · |
Лестница внедрения
flowchart LR
L0[L0 Prove make e2e] --> L1[L1 Run locally]
L1 --> L2[L2 Extend source]
L2 --> L3[L3 GCP staging]
L3 --> L4[L4 Production HITL]Уровень | Действие | Документ |
0 — Доказать |
| |
1 — Запустить локально | MCP, дашборд | |
2 — Расширить | Новый источник CSV | |
3 — GCP-стейджинг | Terraform + Cloud Run | |
4 — Продакшен | Presidio, HITL, живой BQ, UX продукта |
Часто используемые команды
Команда | Действие |
| Первый запуск — установить uv, если нужно + полный шлюз проверки |
| То же, что verify.sh |
| Полный шлюз проверки MVP (OKF + тесты + демо FOIA) |
| Только демо FOIA |
| pytest (41 тест) |
| Агентный конвейер FOIA |
| Streamlit — вкладки Gov + Orders |
| MCP-сервер для агентов Cursor |
| Перегенерировать PDF-пакет для обмена |
Выполните make help для всех целей.
Архитектура
Плоскость | Пакет | Статус |
Данные |
| РЕАЛИЗОВАНО |
Управление |
| РЕАЛИЗОВАНО |
Политика |
| РЕАЛИЗОВАНО |
MCP |
| РЕАЛИЗОВАНО |
GCP |
| ЧАСТИЧНО |
Живая матрица: okf/models/implementation-status.md
Границы области действия
Эта демо доказывает: Локальный конвейер FOIA · Сканирование PII · Граница MCP · Качество с закрытием при сбое · 41 тест + CI
Не включено: Продакшен Presidio · Адаптер Regulations.gov · живой GCP/BQ E2E · UX сотрудника продакшена (адаптивный, стриминг, gen UI) — docs/PRODUCT-UX.md
Демо-UI — Streamlit. UX продукта СПЕЦИФИЦИРОВАН, не этот MVP.
Перед заявлениями о продакшене: Чек-лист перед масштабированием FINAL-REVIEW
Документация
Документ | Зачем открывать |
Поисковая человеческая вики — начните здесь | |
Скриншоты verify, CLI, Streamlit | |
Для кого эта демо | |
Бэклог UI продукта (СПЕЦИФИЦИРОВАН) | |
Первый запуск — | |
Установка, MCP, переменные окружения | |
Пошаговое доказательство | |
Streamlit Gov / Orders | |
Опциональные локальные инсайты Ollama / OpenAI-совместимые | |
DuckDB → GCP | |
Цитаты + матрица доказательств | |
Что доказывает каждый тест | |
Полный указатель по персонам |
Также: HOW-IT-WORKS · WHY · белая книга
Поделиться и представить
Открытый исходный код: https://github.com/khaosans/operator-etl — клонируйте и выполните make e2e.
Для собеседований, LinkedIn или предложений прикрепляйте PDF-файлы из docs/share/ (одностраничник, технический документ, слайды):
make share # regenerates docs/share/latest/ after e2eУчастие · Лицензия · Безопасность
Лицензия Apache License 2.0. Примеры данных синтетические — не загружайте реальные записи FOIA.
docs/RELEASING.md — безопасные обновления и рабочий процесс зависимостей
Приветствуются Issues и PR.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
US public-records intelligence for AI agents — companies, SEC, courts, spending, licenses.
Deterministic compliance and vertical knowledge bases for autonomous agents. Free 24hr trial.
Responsible-AI guardrails for agents: scoring with policy, injection & PII detection, DPDP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/khaosans/operator-etl'
If you have feedback or need assistance with the MCP directory API, please join our Discord server