# iss-agent-kit: комплект подключения ИИ-агента к контуру допустимости действий (ИБ 3.0) [![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Python: 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/) *Разработка: АНО «НИИ системного синтеза» (Лаборатория системного синтеза / ISS Lab)* *Официальный сайт*: [https://isslab.ru](https://isslab.ru) · *Страница кибербезопасности*: [https://isslab.ru/cyber/](https://isslab.ru/cyber/) *Репозиторий*: [https://git.isslab.ru/isslab/iss-agent-kit](https://git.isslab.ru/isslab/iss-agent-kit) --- ## Что это `iss-agent-kit` — тонкий фасад поверх двух пакетов «ИБ 3.0»: `mcp-sentinel` (детерминированная проверка вызовов инструментов и их результатов) и `iss-ledger-117` (неизменяемый криптографический журнал по ГОСТ Р 34.11-2012). Вместо ручной сборки `MCPSentinel` и `IssLedger117` в каждом ИИ-агенте — один класс `AgentGuard` и один импорт. ## Установка Пакет тянет `mcp-sentinel` и `iss-ledger-117` как зависимости. Для изолированного контура скачайте файлы `.whl` всех трёх пакетов и ставьте без сети: ```bash pip install --no-index --find-links ./wheels iss-agent-kit ``` С доступом в сеть: ```bash pip install --find-links https://isslab.ru/wp-content/uploads/iss-utils/ iss-agent-kit ``` Из исходников: ```bash git clone https://git.isslab.ru/isslab/iss-ledger-117.git git clone https://git.isslab.ru/isslab/mcp-sentinel.git git clone https://git.isslab.ru/isslab/iss-agent-kit.git pip install ./iss-ledger-117 ./mcp-sentinel ./iss-agent-kit ``` ## Подключение ```python from iss_agent_kit import AgentGuard guard = AgentGuard(ledger_path="audit_gost.jsonl") verdict = guard.check("sql_query", {"query": "SELECT id FROM users WHERE id = 1;"}) ``` ## Пример с декоратором ```python from iss_agent_kit import ActionBlocked, AgentGuard guard = AgentGuard(ledger_path="audit_gost.jsonl", agent_id="claude-code") @guard.tool("sql_query") def sql_query(query: str): return db.execute(query) try: rows = sql_query(query="SELECT id FROM users WHERE id = 1;") except ActionBlocked as e: # e.stage — "call" (заблокирован сам вызов) или "result" (заблокирован ответ) # e.reason, e.details — обоснование вердикта (причина отказа) ... ``` Проверка целостности журнала: ```python is_valid, count, msg = guard.verify_ledger() ``` ## Границы Реализация хеш-функции соответствует контрольным примерам ГОСТ Р 34.11-2012 (RFC 6986), но не является сертифицированным средством криптографической защиты информации. ## Лицензия Apache-2.0, см. [LICENSE](LICENSE). ## Смежные репозитории - [iss-ledger-117](https://git.isslab.ru/isslab/iss-ledger-117) — неизменяемый криптографический журнал ГОСТ Р 34.11-2012 - [mcp-sentinel](https://git.isslab.ru/isslab/mcp-sentinel) — шлюз допустимости действий и Circuit Breaker для MCP --- **АНО «НИИ системного синтеза»** Официальный сайт: [isslab.ru](https://isslab.ru)