SAIHM — память для AI-агентов
Портативная память для AI-агентов. Ваш ассистент запоминает важное — между
сеансами, моделями и поставщиками. Поделитесь памятью с чужим агентом, заберите её обратно
или удалите навсегда.
| ▶ Краткий обзор SAIHM — 6 минут | ▶ Подробный обзор SAIHM — 30 минут |
Понравились видео? Поставьте им отметку «Нравится», подпишитесь на канал SAIHM
и включите уведомления, нажав на колокольчик 🔔, чтобы узнавать о новых видео и обновлениях.
Предпочитаете читать? Руководство SAIHM (PDF) — пособие для тех, кто принимает решения, о SAIHM и SHM.
AI-ассистенты забывают всё после завершения сеанса. SAIHM даёт вашему ассистенту память,
которая сохраняется и позволяет продолжить работу с другим ассистентом, другой моделью
или продуктом другой компании.
Шифрование по умолчанию при хранении. Каждая память шифруется на вашем устройстве
до отправки куда-либо, а SAIHM хранит только зашифрованные данные. Никто другой не сможет
прочитать ваши воспоминания — ни хранилище, ни SAIHM. Ничего не нужно включать.
Начните бесплатно — одной командой
npx -y @saihm/mcp-server-pro free-join
Банковская карта и криптокошелёк не нужны. Для быстрой авторизации, подтверждающей, что вы реальный человек,
вам понадобятся браузер и учётная запись GitHub:
-
Команда создаст ключ на этом устройстве и покажет ссылку и короткий код.
-
Откройте ссылку, войдите в GitHub, введите код и подтвердите действие.
-
Команда завершит настройку автоматически и укажет, где сохранён ключ.
Нет учётной записи GitHub? Вместо этого начните с https://saihm.net/free: войдите через
Google, и страница выдаст вам новый ключ. Сохраните его в файл, доступный только вам, и
укажите путь к этому файлу в настройке клиента SAIHM_MASTER_SECRET_FILE, описанной ниже. Никогда
не вставляйте сам ключ в файл настроек. Ключ уже готов, поэтому пропустите шаг «Присоединиться к SAIHM»:
повторное присоединение создаст второй, отличный от первого ключ.
Затем добавьте SAIHM в свой AI-клиент, перезапустите его и скажите:
«Вспомни мои воспоминания SAIHM». Готово.
Не хотите пользоваться терминалом? Сначала добавьте SAIHM в клиент, а затем скажите ассистенту: **«Присоединиться
к SAIHM»**. Он выполнит ту же настройку и покажет ссылку и код для подтверждения.
Если присоединение прервалось, запустите его снова на том же устройстве: команда повторно использует уже созданный
ключ, поэтому ваша идентичность не изменится. Чтобы отменить присоединение, остановите процесс и не
вводите код; срок его действия истечёт автоматически. В любом случае сохраните файл с ключом.
Добавьте SAIHM в свой AI-клиент
Настройки ниже для Claude Code, Gemini CLI и OpenAI Agents SDK представлены как проверенные (какие клиенты проверяются);
настройки для остальных клиентов приведены на основе документации соответствующих поставщиков. Поставщики могут
изменить любую из этих настроек по своему усмотрению.
SAIHM работает на вашем устройстве как локальный MCP-сервер, который AI-клиент запускает с помощью
npx, поэтому вам понадобится Node.js версии 20 или новее. Пакет
@saihm/mcp-server-pro опубликован в npm,
а в официальном MCP Registry он указан как
io.github.SAIHM-Admin/saihm-mcp-server-pro.
Найдите ниже свой клиент, добавьте соответствующий блок и перезапустите клиент. Несколько советов:
- Проверьте корректность файла. Лишняя запятая или неразрывный пробел, скопированный из
письма или веб-страницы, сделает файл настроек JSON недействительным. Используйте обычный текстовый редактор.
- Не удаляйте настройку времени запуска. При первом запуске загружается пакет. Если в блоке
указано увеличенное время запуска, оставьте эту настройку: так инструменты появятся с первой попытки.
- Сначала загрузите пакет. Выполните в терминале команду
npx -y @saihm/mcp-server-pro --version.
Она загрузит пакет, выведет его версию и завершится, чтобы первый запуск клиента прошёл быстрее.
Каждый блок соответствует документации конкретного клиента. Перед каждым выпуском сервер запускается с этими блоками
в Claude Code, Gemini CLI и OpenAI Agents SDK, чтобы проверить подключение. Особенности настройки каждого клиента описаны в
Claude Code (Anthropic)
Добавьте SAIHM для всех своих проектов одной командой:
claude mcp add --env SAIHM_ENDPOINT_URL=https://saihm.net/mcp --transport stdio --scope user saihm -- npx -y @saihm/mcp-server-pro
Если инструменты не появились после первого запуска, дайте серверу больше времени:
MCP_TIMEOUT=60000 claude или один раз выполните в терминале команду npx -y @saihm/mcp-server-pro --version, а затем
перезапустите Claude Code. Команда claude mcp list покажет, удалось ли подключиться. Информацию о Claude
Code в веб-версии см. в разделе «Среды размещённых агентов».
Claude Desktop (Anthropic)
Откройте Settings > Developer > Edit Config, добавьте запись "saihm" внутри
mcpServers, затем завершите работу Claude Desktop и запустите его снова:
{
"mcpServers": {
"saihm": {
"command": "npx",
"args": ["-y", "@saihm/mcp-server-pro"],
"env": { "SAIHM_ENDPOINT_URL": "https://saihm.net/mcp" }
}
}
}
Claude Desktop запускает сервер с помощью установленного на вашем устройстве Node.js,
поэтому сначала установите Node.js. Если инструменты не появились при первом запуске, выполните
в терминале команду npx -y @saihm/mcp-server-pro --version, затем завершите работу Claude Desktop и запустите его снова.
Codex CLI (OpenAI)
Добавьте этот блок в ~/.codex/config.toml или в файл проекта .codex/config.toml:
[mcp_servers.saihm]
command = "npx"
args = ["-y", "@saihm/mcp-server-pro"]
env = { SAIHM_ENDPOINT_URL = "https://saihm.net/mcp" }
startup_timeout_sec = 60
Проверьте подключение командой codex mcp list или с помощью /mcp в Codex.
OpenAI Agents SDK (Python)
import asyncio
from agents import Agent, Runner
from agents.mcp import MCPServerStdio
async def main():
async with MCPServerStdio(
name="saihm",
params={
"command": "npx",
"args": ["-y", "@saihm/mcp-server-pro"],
"env": {"SAIHM_ENDPOINT_URL": "https://saihm.net/mcp"},
},
client_session_timeout_seconds=60,
) as saihm:
agent = Agent(name="Assistant", mcp_servers=[saihm])
result = await Runner.run(agent, "Recall my SAIHM memories.")
print(result.final_output)
asyncio.run(main())
Тайм-аут в 60 секунд даёт первой загрузке через npx время завершиться. Передавайте секреты
через переменные окружения, а не указывайте их непосредственно в коде.
Gemini CLI (Google)
Добавьте этот блок в ~/.gemini/settings.json (для всех проектов) или .gemini/settings.json (для одного
проекта):
{
"mcpServers": {
"saihm": {
"command": "npx",
"args": ["-y", "@saihm/mcp-server-pro"],
"env": { "SAIHM_ENDPOINT_URL": "https://saihm.net/mcp" }
}
}
}
Либо установите расширение Gemini CLI, в котором уже есть такая настройка:
gemini extensions install https://github.com/SAIHM-Admin/saihm-mcp-server-pro.
Запускайте Gemini CLI в папке, которой доверяете: локальные серверы запускаются только в таких папках. Проверьте подключение
командой gemini mcp list или с помощью /mcp в Gemini CLI.
С 2026-06-18 Google больше не поддерживает личные учётные записи Google в Gemini CLI:
при входе с такой учётной записью появляется сообщение «This client is no longer supported for Gemini Code Assist
for individuals». По состоянию на October 2026 Gemini CLI по-прежнему работает с ключом Gemini API,
а также с лицензиями Gemini Code Assist Standard и Enterprise.
Antigravity CLI (Google)
Добавьте этот блок в ~/.gemini/config/mcp_config.json (для всех проектов) или в .agents/mcp_config.json
в папке проекта:
{
"mcpServers": {
"saihm": {
"command": "npx",
"args": ["-y", "@saihm/mcp-server-pro"],
"env": { "SAIHM_ENDPOINT_URL": "https://saihm.net/mcp" }
}
}
}
Введите /mcp в Antigravity CLI, чтобы проверить подключение. Если инструменты не появились
при первом запуске, выполните в терминале команду npx -y @saihm/mcp-server-pro --version, а затем перезагрузите сервер там же.
Grok Build (xAI)
Добавьте этот блок в ~/.grok/config.toml или в файл проекта .grok/config.toml:
[mcp_servers.saihm]
command = "npx"
args = ["-y", "@saihm/mcp-server-pro"]
env = { SAIHM_ENDPOINT_URL = "https://saihm.net/mcp" }
startup_timeout_sec = 60
Grok Build также использует уже существующую запись saihm из ~/.claude.json или
из .mcp.json проекта. Поэтому, если вы уже добавили SAIHM для другого клиента, этот шаг может не понадобиться.
Проверьте подключение командой grok mcp list или grok mcp doctor saihm.
GitHub Copilot в VS Code (Microsoft)
Добавьте эту конфигурацию в .vscode/mcp.json рабочей области или в пользовательский файл mcp.json (выполните команду MCP: Open User Configuration). В VS Code используется ключ servers, а не mcpServers:
{
"servers": {
"saihm": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@saihm/mcp-server-pro"],
"env": { "SAIHM_ENDPOINT_URL": "https://saihm.net/mcp" }
}
}
}
Также можно добавить конфигурацию в профиль пользователя из терминала (bash, zsh или Command Prompt):
code --add-mcp "{\"name\":\"saihm\",\"command\":\"npx\",\"args\":[\"-y\",\"@saihm/mcp-server-pro\"],\"env\":{\"SAIHM_ENDPOINT_URL\":\"https://saihm.net/mcp\"}}"
Команда MCP: List Servers покажет сервер, а действие Show Output — его журнал.
Если инструменты не появились при первом запуске, выполните в терминале команду npx -y @saihm/mcp-server-pro --version,
а затем перезапустите сервер через MCP: List Servers.
О настройке облачного агента GitHub Copilot см. раздел
«Среды размещённых агентов».
Другие MCP-клиенты
Чтобы настроить клиент, который запускает локальные MCP-серверы из блока mcpServers, например Cline,
Cursor или Windsurf, добавьте запись "saihm" в существующий объект mcpServers:
{
"mcpServers": {
"saihm": {
"command": "npx",
"args": ["-y", "@saihm/mcp-server-pro"],
"env": { "SAIHM_ENDPOINT_URL": "https://saihm.net/mcp" },
"timeout": 60
}
}
}
В Cline параметр timeout задаётся в секундах. Если в документации вашего клиента указана другая единица измерения, следуйте
этой документации.
Если инструменты не появились при первом запуске, выполните в
терминале команду npx -y @saihm/mcp-server-pro --version. Она загрузит пакет, выведет его версию и завершит работу. Затем перезапустите Cline.
Фреймворки для агентов
Создаёте агентов на Python? Зашифрованную память можно подключить к основным фреймворкам. Для каждого адаптера, как и для этого сервера, требуется Node.js версии 20 или новее. Шифрование выполняется внутри вашего процесса, поэтому Python никогда не получает доступ к ключу.
| Фреймворк | Возможности | Установка |
|---|---|---|
| LangGraph | Долговременное хранилище памяти для вашего графа | pip install saihm-langgraph (репозиторий) |
| CrewAI | Общая память для всей команды агентов | pip install saihm-crewai (репозиторий) |
| LangChain | История чатов, которой управляете вы | pip install "saihm-adapters[langchain]" |
| LlamaIndex | Память чатов и ретривер для RAG | pip install "saihm-adapters[llamaindex]" и [rag] |
| AutoGen | Память, которой управляет ваш агент | pip install "saihm-adapters[autogen]" |
В пакете saihm-adapters собраны все адаптеры и примеры, работающие в реальном времени.
Что можно сказать
Вы не вызываете инструменты по имени — просто общайтесь со своим ассистентом. Например:
Активно используй протокол SAIHM, чтобы максимально экономить токены.
Перед началом вспомни мои записи в памяти SAIHM.
Запомни, что я предпочитаю короткие ответы без вступления.
Установи инвариант: перед любым удалением данных через SAIHM подтверждай действие дважды.
Поделись этой заметкой с агентом моего коллеги до 17:00 сегодня.
Сколько осталось в моей квоте SAIHM?
Забудь всё, что я рассказывал об аккаунте Henderson.
| Инструмент | Назначение |
|---|---|
saihm_remember | Шифрует данные на вашем устройстве, а затем сохраняет их |
saihm_recall | Получает данные и расшифровывает их на вашем устройстве |
saihm_forget | Удаляет данные без возможности восстановления |
saihm_status | Показывает сведения об использовании и настройках |
saihm_share | Предоставляет одному агенту доступ к одной записи памяти, при необходимости — на ограниченный срок |
saihm_revoke_share | Отзывает это разрешение |
Каждый инструмент снабжён описанием для вашей AI-системы, в том числе указанием, какие инструменты доступны только для чтения, а какой удаляет данные. Поэтому хосты, которые запрашивают подтверждение перед необратимыми действиями, смогут определить, когда его нужно запросить. Полный перечень приведён в справочнике по инструментам.
«Забыть» действительно означает забыть. Ключ от этой записи памяти уничтожается, поэтому сохранённая копия становится навсегда нечитаемой — для вас, SAIHM и любого, у кого есть её резервная копия. Так SAIHM выполняет запрос на удаление данных в соответствии со статьёй 17 GDPR. Поэтому отменить действие нельзя. Ответ подтверждает удаление после того, как сервис возвращает запись об уничтожении ключа.
Ваша память следует за вашим ключом
Память привязана к вашему ключу, а не к компьютеру — поэтому её можно переносить. Ключ создаётся на вашем устройстве и никогда никуда не отправляется. Именно поэтому никто другой не может прочитать ваши записи. Храните копию файла ключа в надёжном месте:
SAIHM не сможет создать для вас новый ключ. Во время настройки будет показано, где находится файл. При переходе на платный план ключ и все записи памяти сохраняются.
Нужно использовать память на другом компьютере или в размещённом агенте? Есть три способа:
- Одна и та же память на любом устройстве — на устройстве, где хранится ваш ключ, выполните:
npx -y @saihm/mcp-server-pro export-identity
Команда сохранит в файл, доступный только вам, два значения: SAIHM_IDENTITY (ваш запечатанный ключ)
и SAIHM_IDENTITY_PASSPHRASE (парольная фраза для его открытия). Установите оба значения как переменные среды или секреты там, где нужна эта память, а затем начните новую сессию. Не говорите там «Присоединиться к SAIHM»: присоединение создаёт новую пустую память.
Вместе эти два значения и есть ваша личность. Храните их в менеджере паролей, никогда не отправляйте в чате и не сохраняйте в репозитории. Файл экспорта удалите. Если у вас платный план, сначала ознакомьтесь с разделом экспорт личности.
- Скопировать файл ключа — перед запуском сервера поместите его на другом устройстве по пути
~/.saihm/free-identity.key(или укажите его расположение вSAIHM_MASTER_SECRET_FILE), задайте те же настройки, что и на первом устройстве (для платного плана также задайтеSAIHM_TIERи
SAIHM_PAYMENT_METHOD), а затем скажите: «Вспомни мои записи в памяти SAIHM».
- Разделить рабочую и личную память — начните с чистой памяти на втором устройстве и делитесь нужными записями: «Поделись этими заметками с моим рабочим агентом до 17:00». Доступ можно отозвать или ограничить по времени, поэтому рабочая и личная память останутся раздельными.
Размещение в облачных средах для агентов
Сеанс облачного агента обычно запускается на чистой машине, а после его завершения домашний каталог удаляется. Поэтому созданный там ключ будет потерян. Перенесите свою учётную запись в среду: задайте оба значения export-identity в её собственных настройках — никогда не отправляйте их в чат — и запустите новый сеанс, поскольку среда считывает переменные при запуске. Сервер работает локально в сеансе и должен иметь доступ к saihm.net и npm для npx. Инструкции ниже соответствуют документации каждой платформы; в справочнике описаны прокси и дополнительные нюансы.
- Claude Code в веб-версии — добавьте оба значения в раздел Environment variables среды. Их сможет прочитать любой пользователь этой среды, поэтому создайте отдельную среду только для себя и используйте её с репозиториями, которым доверяете. Выберите Custom для сетевого доступа, добавьте
saihm.netи отметьте Also include default list of common package managers, чтобыnpxмог обращаться к npm. Затем передайте значения через файл.mcp.jsonрепозитория:
{
"mcpServers": {
"saihm": {
"command": "npx",
"args": ["-y", "@saihm/mcp-server-pro"],
"env": {
"SAIHM_ENDPOINT_URL": "https://saihm.net/mcp",
"SAIHM_IDENTITY": "${SAIHM_IDENTITY:-}",
"SAIHM_IDENTITY_PASSPHRASE": "${SAIHM_IDENTITY_PASSPHRASE:-}",
"SAIHM_TIER": "${SAIHM_TIER:-}",
"SAIHM_PAYMENT_METHOD": "${SAIHM_PAYMENT_METHOD:-}",
"CLAUDE_CODE_REMOTE": "${CLAUDE_CODE_REMOTE:-}"
}
}
}
}
Этот файл по-прежнему работает и на вашем компьютере. Не добавляйте в него SAIHM_MASTER_SECRET_FILE или SAIHM_MASTER_SECRET_HEX: в первом случае ключ может попасть в коммит, а во втором возникнет конфликт с учётной записью. Если инструменты не появились, выполните в сеансе claude mcp list, а в переменных среды задайте MCP_TIMEOUT=60000, чтобы серверу хватило времени на запуск.
- Облачный агент GitHub Copilot — сохраните значения в качестве секретов Agents: откройте Settings → Secrets and variables → Agents в репозитории и создайте секреты
COPILOT_MCP_SAIHM_IDENTITYиCOPILOT_MCP_SAIHM_IDENTITY_PASSPHRASE. Сервер запускается рядом с каждой командой агента, поэтому используйте этот вариант только в репозитории с кодом, которому доверяете. Укажите секреты в конфигурации MCP репозитория (Settings → Copilot → MCP servers):
{
"mcpServers": {
"saihm": {
"type": "local",
"command": "npx",
"args": ["-y", "@saihm/mcp-server-pro"],
"tools": ["saihm_recall", "saihm_remember", "saihm_status"],
"env": {
"SAIHM_ENDPOINT_URL": "https://saihm.net/mcp",
"SAIHM_IDENTITY": "$COPILOT_MCP_SAIHM_IDENTITY",
"SAIHM_IDENTITY_PASSPHRASE": "$COPILOT_MCP_SAIHM_IDENTITY_PASSPHRASE",
"SAIHM_EPHEMERAL_HOME": "1"
}
}
}
}
Copilot запускает перечисленные инструменты без запроса подтверждения, поэтому в список не включены saihm_forget и инструменты для совместного доступа. По умолчанию при проверке кода Copilot может вызывать инструменты только для чтения в любом pull request, поэтому ваши воспоминания могут попасть в комментарии к проверке. Если вы этого не хотите, отключите параметр Allow Copilot to use MCP tools when reviewing pull requests.
- Другие среды — настройка должна работать на любом хосте, который запускает локальные MCP-серверы, позволяет серверу читать оба значения и обеспечивает доступ к
saihm.netиregistry.npmjs.org. Сохраните значения в собственных секретах или настройках среды хоста, ограничив доступ только для себя, и используйте среду, доступную только вам: агент и все запущенные им команды могут иметь возможность читать эти значения. Если домашний каталог не сохраняется между сеансами, добавьте тудаSAIHM_EPHEMERAL_HOME=1. Хосты, которые подключаются только к удалённым MCP-серверам, не могут запускать этот пакет.
Если сервер определяет, что домашний каталог временный, он не позволит создать ключ, который будет потерян вместе с ним.
Посмотрите, как это работает
-
Демонстрации на основных моделях — офлайн, примерно по минуте каждая, без учётной записи: https://saihm-admin.github.io/saihm-demos/. Сохраните воспоминание в Claude, GPT, DeepSeek, Qwen, Kimi или GLM, а затем убедитесь, что его можно удалить.
-
Сравнение расхода токенов — использование ограниченного набора воспоминаний вместо повторной отправки всего разговора сократило число входных токенов на 62.8%–85.9% в реалистичной задаче с несколькими сеансами. Открытые данные, работа офлайн, результаты можно воспроизвести:
https://github.com/SAIHM-Admin/saihm-token-benchmark.
Стоимость
Начните бесплатно. Бесплатный тариф предусматривает фиксированное разовое количество операций записи, чтения и совместного доступа, чтобы вы могли попробовать SAIHM на реальной инфраструктуре. Оно не сбрасывается и не пополняется. Банковская карта не нужна, отменять подписку не придётся. Ассистент показывает остаток и предупреждает, когда он подходит к концу, поэтому операции не прекращаются неожиданно.
Платные тарифы оплачиваются ежемесячно; цены указаны на странице тарифов.
При переходе на платный тариф сохраняются тот же ключ и все уже имеющиеся у вас воспоминания:
SAIHM_MASTER_SECRET_FILE=$HOME/.saihm/free-identity.key \
SAIHM_TIER=FREE \
npx -y @saihm/mcp-server-pro upgrade PRO
Команда выводит ссылку на оплату, привязанную к вашей учётной записи. После оплаты добавьте две строки в блок env конфигурации и перезапустите сервер:
"SAIHM_TIER": "PRO",
"SAIHM_PAYMENT_METHOD": "stripe"
Для работы платного тарифа нужны обе строки: без SAIHM_PAYMENT_METHOD, указывающего способ оплаты для проверки, сервер не запустится. Ссылка, созданная командой перехода на платный тариф, предназначена для оплаты картой и связана со stripe. Ключ и все связанные с ним воспоминания сохраняются. Оплатить Stablecoin можно на странице присоединения; для этого способа указывается stablecoin. Такая оплата создаёт новую учётную запись с отдельным ключом. Воспоминания, связанные с уже имеющимся ключом, останутся на нём и не будут перенесены на новый. Поэтому, чтобы обновить тариф для имеющегося ключа, используйте ссылку для оплаты картой.
Если что-то не работает
| Что вы видите | Что делать |
|---|---|
| Инструменты SAIHM не отображаются, ошибок тоже нет | Клиент перестал ждать, пока npx завершит первую загрузку. Оставьте настройку запуска из конфигурации клиента и проверьте, что файл содержит корректный JSON |
| Исчезли и все остальные инструменты | Файл настроек перестал быть корректным JSON: проверьте, нет ли лишней запятой или неразрывных пробелов, появившихся при копировании и вставке |
| Инструменты для работы с воспоминаниями сообщают, что подключение ожидает подтверждения | Перейдите по ссылке, которую выдал процесс подключения, войдите в систему, введите код и подтвердите запрос. Подключение завершится автоматически, после чего следующий вызов инструмента для работы с воспоминаниями выполнится успешно |
| Инструменты отображаются, но каждый вызов завершается ошибкой | Машина не может подключиться к конечной точке (saihm.net, если вы не указали другую). В облачной среде разрешите доступ к ней в сетевых настройках |
| В облачном сеансе снова и снова предлагается подключиться | В среде нет вашей учётной записи: см. раздел Размещение в облачных средах для агентов |
| Используется не то воспоминание, которое вы ожидали | На этой машине используется собственный ключ, а не ваш |
Информация о прокси, ответах на запросы об удалении и других проблемах приведена в полной таблице по устранению неполадок.
Как это работает
Перед отправкой данные шифруются на вашем устройстве, а после получения расшифровываются там же. SAIHM хранит нечитаемый шифротекст и не располагает ключом, который позволяет его расшифровать. Чтобы удалить данные, уничтожается их ключ. Поэтому удаление происходит немедленно и окончательно, а не сводится к обещанию удалить где-то одну из копий.
-
Изначально рассчитан на постквантовую криптографию. Для подписи каждого воспоминания используется ML-DSA-65, а для защиты совместного доступа — ML-KEM-768.
-
Без передачи ключей на хранение. Размещённый сервис по адресу https://saihm.net обеспечивает постоянное хранение данных, но получает только шифротекст и никогда не хранит ключи.
-
Удаление распространяется на производные данные. Каждый вызов
forgetтакже создаёт уведомление, чтобы любые данные, созданные на основе этого воспоминания — индекс, копия или извлечённый факт, — тоже можно было удалить. -
Быстрый поиск на вашем устройстве. При стандартной настройке этот клиент хранит локальную копию уже открытых вами воспоминаний, поэтому при поиске загружаются только новые данные. Эта копия не зашифрована, но доступ к ней есть только у вашей учётной записи; вызов
forgetтакже удаляет воспоминание из локальной копии. -
Все данные зашифрованы при хранении — если вы предпочитаете такой вариант. Задайте
SAIHM_RECALL_CACHE=0, и клиент перестанет хранить локальную копию. Тогда все воспоминания, которые SAIHM хранит в постоянном хранилище, будут представлены шифротекстом. Компромисс — скорость: при каждом поиске воспоминания загружаются заново.
В техническом справочнике описаны модель безопасности, место хранения зашифрованных воспоминаний и все настройки.
Настройка
Большинству пользователей настройка не требуется: в приведённых выше блоках указана единственная важная настройка, а для остальных заданы рабочие значения по умолчанию. Полный список приведён в справочнике.
Для разработчиков
Используйте SAIHM в собственном коде на Node.js. В справочнике для разработчиков описаны записи идентификаторов, предоставление доступа, изменения собственных ячеек, warm start, структурированные результаты инструментов и ошибки.
npm install @saihm/mcp-server-pro
" const saihm = SaihmProClient.bootFromEnv();
// Store — encrypted before it leaves the process. const { cellId } = await saihm.remember('remember this');
// Recall — decrypted after it returns. const cell = await saihm.recallOne(cellId); console.log(cell?.plaintext); // 'remember this'
// Recall everything (client-side keyword filter; the endpoint has no plaintext to filter on). const matches = await saihm.recall('this');
// Update an existing cell (a fresh monotonic sequence is issued automatically). When the endpoint reports
// shares of the cell left on the previous version, shares in the result reports their re-issue.
await saihm.remember('new contents', { cellId });
// Forget — crypto-shred. await saihm.forget(cellId);
// Share a cell with another agent, end-to-end authenticated. Pin the grantee's agentIdHash // out-of-band; the library rejects directory key-substitution. await saihm.share({ cellId, recipientRecord, // the grantee's published identity record (hex) recipientPinnedAgentIdHashHex, // pinned out-of-band expiryEpoch, // optional whole HOURS since the UNIX epoch (498192n = 2026-11-01 00:00 UTC); omit or null for no time bound }); await saihm.revokeShare(cellId, recipientPinnedAgentIdHashHex);
// Read a cell another agent shared TO you (the recipient side of share). Pin the
// sharer's agentIdHash out-of-band; the library verifies the sharer's signature and
// returns null when there is no live grant (e.g. revoked, or the sharer crypto-shredded it).
const shared = await saihm.recallShared({
sharerPinnedAgentIdHashHex, // the sharer's agentIdHash, pinned out-of-band
sharerRecord, // the sharer's published identity record (hex)
cellId,
});
console.log(shared?.plaintext);
// Operator-observable metadata only (no plaintext). const status = await saihm.status();">
import { SaihmProClient } from '@saihm/mcp-server-pro';
// Boot from env: SAIHM_ENDPOINT_URL, SAIHM_MASTER_SECRET_FILE (or _HEX)
// self-onboard (recommended): + SAIHM_PAYMENT_METHOD + SAIHM_TIER (omit SAIHM_AUTH_HEADER)
// static token (advanced): + SAIHM_AUTH_HEADER="Bearer <JWT>"
const saihm = SaihmProClient.bootFromEnv();
// Store — encrypted before it leaves the process.
const { cellId } = await saihm.remember('remember this');
// Recall — decrypted after it returns.
const cell = await saihm.recallOne(cellId);
console.log(cell?.plaintext); // 'remember this'
// Recall everything (client-side keyword filter; the endpoint has no plaintext to filter on).
const matches = await saihm.recall('this');
// Update an existing cell (a fresh monotonic sequence is issued automatically). When the endpoint reports
// shares of the cell left on the previous version, `shares` in the result reports their re-issue.
await saihm.remember('new contents', { cellId });
// Forget — crypto-shred.
await saihm.forget(cellId);
// Share a cell with another agent, end-to-end authenticated. Pin the grantee's agentIdHash
// out-of-band; the library rejects directory key-substitution.
await saihm.share({
cellId,
recipientRecord, // the grantee's published identity record (hex)
recipientPinnedAgentIdHashHex, // pinned out-of-band
expiryEpoch, // optional whole HOURS since the UNIX epoch (498192n = 2026-11-01 00:00 UTC); omit or null for no time bound
});
await saihm.revokeShare(cellId, recipientPinnedAgentIdHashHex);
// Read a cell another agent shared TO you (the recipient side of `share`). Pin the
// sharer's agentIdHash out-of-band; the library verifies the sharer's signature and
// returns null when there is no live grant (e.g. revoked, or the sharer crypto-shredded it).
const shared = await saihm.recallShared({
sharerPinnedAgentIdHashHex, // the sharer's agentIdHash, pinned out-of-band
sharerRecord, // the sharer's published identity record (hex)
cellId,
});
console.log(shared?.plaintext);
// Operator-observable metadata only (no plaintext).
const status = await saihm.status();
SHM — Super-Human Memory
SAIHM обеспечивает безопасное хранение памяти. SHM, Super-Human Memory, помогает использовать её эффективнее: этот слой поверх SAIHM упорядочивает память и заранее подбирает нужные сведения по смыслу — ещё до того, как агент их запросит. SHM разделяет задачи и поддерживает чистоту контекстного окна, благодаря чему один агент может выполнять работу, для которой сегодня потребовалось бы несколько, а однажды исправленная ошибка больше не повторяется.
SHM работает на вашей стороне, рядом с агентом, используя доступные ему воспоминания. Поэтому для этого не нужно передавать ваши данные в открытом виде за пределы вашей системы. SHM ранжирует воспоминания с помощью гибридного поиска и, при необходимости, локального переранжировщика, отбирает только сведения, нужные для текущей задачи, в пределах заданного вами бюджета и хранит их в зашифрованном виде с ключом, который контролируете вы. Когда память удаляется в SAIHM, SHM исключает её из индекса и кэшей, а также удаляет всё, что было на её основе получено.
npm install @saihm/shm
Для работы SHM требуется Node.js версии 20.20 или новее.
Как SHM взаимодействует с этим клиентом. SHM работает через этот MCP-сервер версии 0.13.0 или новее. Благодаря этому SHM получает актуальную информацию о вашей памяти в SAIHM:
-
Лента изменений сообщает SHM, какие из ваших воспоминаний были записаны, чтобы SHM мог их перечитать.
-
Лента удалений сообщает SHM, какие воспоминания были удалены, чтобы SHM удалил их и всё, что было на их основе получено.
-
Сведения о предоставленном доступе сообщают SHM, какими воспоминаниями с вами поделились другие агенты и действие каких разрешений завершилось.
-
Структурированные результаты инструментов предоставляют SHM каждый ответ в формате, который он проверяет перед использованием.
-
Warm start позволяет SHM сохранить зашифрованный снимок своего состояния и продолжить работу с того же места в новом сеансе или на другом устройстве.
В справочнике перечислены инструменты и файлы, которые использует SHM.
В руководстве по SAIHM описаны оба решения: в главе 4 — возможности SHM, в главе 5 — настройки и практические примеры, а в главе 9 — преимущества совместного использования SAIHM и SHM.
Поддержите SAIHM
Если SAIHM оказался вам полезен, вот как помочь ему стать известнее:
-
Поставьте звезду на GitHub. Звёзды помогают другим разработчикам находить SAIHM.
-
Расскажите о проекте коллеге, своей команде или тем, чей ассистент постоянно забывает важные сведения.
-
Подпишитесь на @SAIHMemory в X, чтобы следить за новостями и обновлениями.
-
Поддержите проект финансово через GitHub Sponsors — ежемесячно или разовым платежом.
-
Следите за новыми видео на YouTube: ставьте лайки,
подпишитесь на канал и включите уведомления нажатием на колокольчик 🔔, чтобы не пропускать новые видео и обновления.
Скидочные коды
Переходите на платный тариф? Выполните команду обновления из раздела «Стоимость», а затем введите один из этих кодов в поле промокода при оформлении заказа:
| Код | Предложение |
|---|---|
SAIHM-90-OFF | Скидка 90% на первый платёж для новых клиентов |
SAIHM-75-OFF | Скидка 75% на первый платёж |
SAIHM-50-OFF | Скидка 50% в течение четырёх месяцев |
SAIHM-25-OFF | Скидка 25% в течение шести месяцев |
При оформлении заказа можно использовать один код. Предложения действуют, пока доступны.
Лицензия
Apache-2.0 © SAIHM