Operator ETL
Operator ETL
Агентный приём данных для FOIA и публичных комментариев — детерминированное хранилище-медальон, оркестрация LangGraph, инструментальная поверхность MCP, плоскость политик PII.
Python и SQL решают, какие данные существуют. Агенты оркестрируют в типизированных границах. Тесты доказывают инварианты — для MVP-демонстрации не требуется ключ API LLM.
Создано для государственных органов и регулируемых организаций, которым необходимо принимать публичные комментарии, обнаруживать PII перед публикацией, помещать некорректные строки в карантин и получать обоснованные выводы (каждое число верифицировано по хранилищу).
Документация
Вики (доступен поиск): https://khaosans.github.io/operator-etl/
Начните здесь | Ссылка |
Посмотрите в работе | Визуальный обзор (скриншоты) |
Первый запуск | QUICKSTART — |
Узнайте, что мы создали | Концепции · Паттерны · Применение · Риски |
Для кого это | |
Пользовательский интерфейс (позже) | PRODUCT-UX — СПЕЦИФИЦИРОВАНО, не эта демо-версия |
Related MCP server: MES Document MCP
Проверить одной командой
git clone https://github.com/khaosans/operator-etl.git
cd operator-etl
./scripts/verify.shУстанавливает uv, если отсутствует, синхронизирует зависимости, запускает полный шлюз проверки. Успешное завершение выводит OPERATOR_ETL_VERIFY=PASS.
Ожидается: 51 тест 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
Опубликованные снимки — это git-теги (не каждый merge). После выхода релиза: GitHub Releases (wheels), ghcr.io/khaosans/operator-etl:<version>, GitHub Packages operator-etl. Процесс: docs/VERSIONING.md. В вики всегда отслеживается master.
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, инструменты MPC из белого списка, критик проверяет каждое число в черновике вывода. |
Подробности: docs/HOW-IT-WORKS.md · okf/models/three-planes.md
Зачем отдавать чат-боту ваше хранилище?
Доверие и доказательство
Вопрос | Ответ |
Работает ли локально? |
|
Что доказывает CI? | Тот же шлюз на каждом push (значок выше) |
Что не доказано в 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 | Блокирует выводы до исправления | Избегать баннеров предупреждений «warn-and-show» |
Полная матрица доказательств: docs/FOUNDATIONS.md
Для кого это
Роль | Начните здесь |
Сотрудник FOIA | |
Инженер данных | |
Архитектор / рецензент | |
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 (51 тест) |
| Агентный конвейер FOIA |
| Streamlit — вкладки «Gov» и «Orders» |
| MCP-сервер для агентов Cursor |
| Пересобрать PDF-пакет для распространения |
Запустите make help для всех целей.
Архитектура
Плоскость | Пакет | Статус |
Данные |
| РЕАЛИЗОВАНО |
Управление |
| РЕАЛИЗОВАНО |
Политики |
| РЕАЛИЗОВАНО |
MCP |
| РЕАЛИЗОВАНО |
GCP |
| ЧАСТИЧНО |
Актуальная матрица: okf/models/implementation-status.md
Границы охвата
Эта демоверсия доказывает: Локальный конвейер FOIA · Сканирование PII · Граница MCP · Отказоустойчивость по качеству · 51 тест + CI
Не включено: Продакшен Presidio · Адаптер Regulations.gov · живой E2E GCP/BQ · продакшен UX для сотрудников (адаптивный, потоковый, современный UI) — docs/PRODUCT-UX.md
Пользовательский интерфейс демо — Streamlit. Продуктовый UX СПЕЦИФИЦИРОВАН, не является частью этого MVP.
Перед заявлениями о продакшене: Чек-лист предмасштабирования FINAL-REVIEW
Документация
Документ | Зачем открывать |
Поисковая человеческая вики — начинайте здесь | |
Скриншоты verify, CLI, Streamlit | |
Для кого демо | |
Бэклог UI продукта (SPECIFIED) | |
Первый запуск — | |
Проблема, что мы построили, почему это полезно | |
Медальон, плоскости, критик — английский + цитаты | |
Другие источники данных — сохраняйте плоскости, меняйте схему | |
Остаточные риски после зелёного verify | |
AI RMF / 600-1 / SP 800-122 — согласование, не сертификация | |
Карточки моделей и когда использовать (Ollama vs OpenAI) | |
Установка, MCP, переменные окружения | |
Пошаговое доказательство | |
Streamlit Gov / Orders | |
Установка Ollama / OpenAI-совместимые инсайты | |
DuckDB → GCP | |
Цитаты + матрица доказательств | |
Что доказывает каждый тест | |
Полный указатель по персонам |
Также: HOW-IT-WORKS · WHY · white paper
Делитесь и представляйте
Открытый исходный код: https://github.com/khaosans/operator-etl — клонируйте и запустите make e2e.
Для собеседований, LinkedIn или предложений прикрепляйте PDF из docs/share/ (одностраничник, white paper, слайды):
make share # regenerates docs/share/latest/ after e2eУчастие · Лицензия · Безопасность
Лицензировано по Apache License 2.0. Примеры данных синтетические — не фиксируйте реальные записи FOIA.
docs/VERSIONING.md — теги публикуются; не перезаписывайте версию
docs/RELEASING.md — рабочий процесс PR, выпуск релиза, Dependabot
Приветствуются Issues и PR.
This server cannot be deployed
Maintenance
Related MCP Connectors
AI agents for federal IT & pharma: alert triage, ICAM, helpdesk, incidents, ticket routing.
Normalized official data with provenance, aggregations, insights, free samples and agent access.
Normalized official data with provenance, aggregations, insights, free samples and agent access.
Source-reconciled U.S. environmental facility compliance evidence for AI agents.
Related MCP Servers
FlicenseAqualityCmaintenanceEnables AI agents to upload, verify, and chat about documents for compliance (e.g., SOC2, GDPR) with PII redacted server-side.812 npm-- AlicenseBqualityDmaintenanceEnables AI agents to safely ingest, inspect, edit, and export manufacturing documents (Excel, PDF, Word, Markdown) with controlled patch workflows and MES entity extraction.23MIT
- AlicenseNot gradedqualityBmaintenanceEnables enterprise AI agents to query governed data lineage, PII-aware schema documentation, and semantic metadata from SQL logs via MCP, with role-based access and vector search.MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to query governed data warehouses through plain language, returning grounded answers with SQL, confidence grades, and signed receipts while enforcing access, testing, and audit controls.15Apache 2.0