
Агентная память для CTI на Python — графы знаний STIX, разрешение псевдонимов угроз, автономный RAG, MCP-сервер для агентов Claude Code и LangChain
Единственная агентная система памяти, созданная для киберразведки угроз.
Когда уходит аналитик старшего звена, вместе с ним уходят два-три года контекста — окружение клиентов, предыдущие расследования, тактики, приёмы и процедуры (TTP) злоумышленников, шаблоны ложных срабатываний, каждое выстраданное «погодите, мы это уже видели». ZettelForge — это агентная система памяти, созданная для того, чтобы контекст оставался с командой.
Она извлекает CVE, угрозные акторы, IOCs и техники ATT&CK из заметок аналитиков и отчётов об угрозах, разрешает псевдонимы (APT28 = Fancy Bear = STRONTIUM = Sofacy), строит граф знаний в формате STIX 2.1 и возвращает каждое прошлое расследование обратно вашим аналитикам — а также Claude Code через MCP — на естественном языке. Работает полностью внутри процесса. Никаких ключей API. Никакого облака. Данные не покидают хост.
Поставить звезду · pip install zettelforge · Документация · ThreatRecall (хостинг) · Журнал изменений
v2.6.2 (2026-04-27): Редактор конфигурации в вебе теперь работает с выпадающими списками для всех перечисляемых полей (провайдер LLM/встраивания, уровень логирования, действие с PII, формат синтеза) и работающей кнопкой Apply. Новый модуль
[crewai]предоставляет ZettelForge в виде инструментов CrewAI —pip install zettelforge[crewai]. Полный журнал изменений
Если ZettelForge подходит для вашего рабочего процесса в CTI, звезда — самый быстрый сигнал о том, что в эту категорию стоит продолжать инвестировать.
В любом SOC уходят аналитики. Когда они уходят, контекст расследований, атрибуция злоумышленников и характерные для окружения шаблоны ложных срабатываний уходят с ними. Их замены снова открывают те же тикеты, перечитывают те же отчёты и заново выстраивают те же ментальные модели с нуля.
Универсальные системы памяти для ИИ не решают эту проблему для команд безопасности. Они не могут отличить APT28 от Fancy Bear, не знают, что CVE-2024-3094 — это бэкдор XZ Utils, не умеют парсить Sigma или YARA и не имеют понятия об идентификаторах техник MITRE ATT&CK. Когда CTI-аналитик передаёт им год разведывательных отчётов, они возвращают расплывчатый семантический поиск по истории чата.
ZettelForge создан для аналитиков, мыслящих графами угроз. Он автоматически извлекает CVE, угрозных акторов, IOCs и техники ATT&CK, разрешает псевдонимы в разных системах именования, строит граф знаний с причинно-следственными связями и извлекает воспоминания с помощью интеллектуального смешанного поиска — всё внутри процесса, без внешних зависимостей от API.
Увеличение объёма памяти закрывает 33% разрыва между малыми и большими моделями в задачах CTI (CTI-REALM, Microsoft 2026, с GPT-4 в качестве базовой большой модели). См. полный отчёт о тестировании с методологией и сравнениями.
| Возможность | ZettelForge | Mem0 | Graphiti | Cognee |
|---|---|---|---|---|
| Извлечение CTI-сущностей (CVE, акторы, IOC) | Да | Нет | Нет | Нет |
| Онтология STIX 2.1 | Да | Нет | Нет | Нет |
| Разрешение псевдонимов угрозных акторов | Да (APT28 = Fancy Bear) | Нет | Нет | Нет |
| Граф знаний с причинными тройками | Да | Нет | Да | Да |
| Классифицированный по намерению поиск (5 типов) | Да | Нет | Нет | Нет |
| Внутрипроцессная работа / не требуется внешнее API | Да | Нет | Нет | Нет |
| Журналы аудита в схеме OCSF | Да | Нет | Нет | Нет |
| MCP-сервер (Claude Code) | Да | Нет | Нет | Нет |
Извлечение сущностей — Автоматически определяет CVE, угрозных акторов, IOCs (IP, домены, хэши, URL, email), техники MITRE ATT&CK, кампании, наборы вторжений, инструменты, людей, места и организации. Регулярные выражения + LLM NER с типами STIX 2.1 на всём протяжении.
Граф знаний — Сущности становятся узлами, совместная встречаемость — рёбрами. LLM выводит причинные тройки («APT28 использует Cobalt Strike»). Временные рёбра и замещение отслеживают эволюцию разведывательных данных.
Разрешение псевдонимов — APT28, Fancy Bear, Sofacy, STRONTIUM — все сводятся к одному узлу актора. Работает автоматически при сохранении и извлечении.
Смешанный поиск — Векторное сходство (768-мерное fastembed, ONNX) + обход графа (BFS по рёбрам графа знаний), взвешенное классификацией намерения. Пять типов намерений: фактический, временной, реляционный, исследовательский, причинный.
Эволюция памяти — С evolve=True новые разведданные сравниваются с существующей памятью. LLM принимает решение ADD, UPDATE, DELETE или NOOP. Устаревшие данные замещаются. Противоречия разрешаются. Дубликаты пропускаются.
Синтез RAG — Синтезируйте ответы по всем сохранённым воспоминаниям с форматом direct_answer.
Внутрипроцессная архитектура — fastembed (ONNX) для встраиваний, llama-cpp-python для опционального локального вывода LLM, SQLite + LanceDB для хранения и Ollama на localhost по умолчанию. Внешние ключи API не требуются. При первом запуске может потребоваться исходящий сетевой доступ для загрузки моделей встраивания/LLM; после предварительной загрузки моделей может работать полностью офлайн (в том числе на изолированных хостах).
Журналирование аудита в схеме OCSF — Каждая операция порождает структурированное событие в формате Open Cybersecurity Schema Framework. Что делать с потоком журналов (SIEM, WORM-хранилище, ничего) — решаете вы.
pip install zettelforge
from zettelforge import MemoryManager
mm = MemoryManager()