Терминальный чат с GigaChat — интерактивный CLI с трёхуровневой моделью памяти.
1. Клонировать репо
git clone https://github.com/Sermage/jarvis-cli.git
cd jarvis-cli2. Установить зависимости
pip3 install requests3. Добавить ключ авторизации
cp .env.example .env
# открыть .env и вставить ключ из Sber Developer Studio4. Запустить
python3 chat.pychmod +x chat.py
sudo ln -sf "$(pwd)/chat.py" /usr/local/bin/jarvisJarvis использует три изолированных слоя памяти. Каждый хранится отдельно, данные выбираются явно.
┌─────────────────────────────────────────────────────┐
│ [3] Долговременная профиль агента + база знаний │ ~/.jarvis/profiles/
│ │ ~/.jarvis/knowledge/
├─────────────────────────────────────────────────────┤
│ [2] Рабочая задача, контекст, заметки │ ~/.jarvis/working/current.json
├─────────────────────────────────────────────────────┤
│ [1] Краткосрочная текущий диалог │ ~/.jarvis/sessions/
└─────────────────────────────────────────────────────┘
↓ объединяются → system prompt при каждом запросе
- Все сообщения текущего диалога
- Сохраняется автоматически в
~/.jarvis/sessions/*.json - При новом запуске можно продолжить любую сессию
- Очищается командой
/clear
- Задача, структурированный контекст, заметки
- Сохраняется вручную командами
/wm - Хранится в
~/.jarvis/working/current.json - Персистентна между запусками (пока не сброшена)
- Автоматически попадает в system prompt
- Профили — системный промпт агента в markdown (
~/.jarvis/profiles/) - База знаний — произвольные записи (
~/.jarvis/knowledge/) - Всегда присутствуют в system prompt
| Команда | Описание |
|---|---|
/model |
Выбрать модель |
/temp |
Задать temperature |
/tokens |
Задать max_tokens |
/settings |
Текущие настройки + статус памяти |
/clear |
Очистить краткосрочную память (диалог) |
/quit |
Выход |
| Команда | Описание |
|---|---|
/mem |
Показать все три слоя памяти |
/wm |
Показать рабочую память |
/wm task <описание> |
Установить текущую задачу |
/wm set <ключ> <значение> |
Сохранить факт в контекст |
/wm note <текст> |
Добавить заметку |
/wm del <ключ> |
Удалить ключ из контекста |
/wm clear |
Очистить рабочую память |
| Команда | Описание |
|---|---|
/know list |
Список записей в базе знаний |
/know save <имя> |
Сохранить знание |
/know show <имя> |
Показать запись |
/profile |
Сменить профиль агента |
/profile new |
Создать новый профиль |
/profile edit |
Редактировать профиль |
/profile delete |
Удалить профиль |
# 1. Запускаем
jarvis
# 2. Устанавливаем задачу в рабочую память
/wm task Рефакторинг модуля авторизации
# 3. Добавляем контекст
/wm set язык Python 3.11
/wm set фреймворк FastAPI
/wm note Нельзя менять публичный API
# 4. Ассистент теперь знает контекст в каждом сообщении
You: Как лучше организовать зависимости?
# 5. Важное решение — в долговременную память
/know save auth-решение
> Используем dependency injection через Depends()
> Токены храним в Redis с TTL 3600
>
(Enter — конец)
# 6. Проверяем все слои
/mem