📄 db_structure.md: Описание структуры базы данных агента
Этот файл описывает таблицы, используемые в БД агента HMP. Каждая таблица предназначена для определённого вида информации: когнитивные записи, заметки, концепты, процессы, внутренняя память, скрипты и взаимодействие с LLM.
🧠 diary_entries
Назначение: Записи когнитивного дневника (размышления, наблюдения, воспоминания).
| Поле | Тип | Описание |
|---|---|---|
| id | INTEGER | Уникальный идентификатор записи |
| text | TEXT | Содержимое записи |
| tags | TEXT | Список тегов через запятую |
| priority | INTEGER | Приоритет (0 — обычный, >0 — более важные мысли) |
| timestamp | TEXT | Дата и время создания записи |
| llm_id | TEXT | Идентификатор LLM, добавившей запись |
🧭 concepts
Назначение: Хранение концептов — понятий, сущностей и идей.
| Поле | Тип | Описание |
|---|---|---|
| id | INTEGER | Уникальный идентификатор концепта |
| name | TEXT | Название концепта (уникальное) |
| description | TEXT | Краткое описание |
| timestamp | TEXT | Время создания |
| llm_id | TEXT | Идентификатор LLM, добавившей запись |
🔗 links
Назначение: Семантические связи между концептами.
| Поле | Тип | Описание |
|---|---|---|
| id | INTEGER | Уникальный идентификатор связи |
| from_concept_id | INTEGER | ID исходного концепта |
| to_concept_id | INTEGER | ID целевого концепта |
| relation_type | TEXT | Тип связи (is_a, related_to, part_of и др.) |
| timestamp | TEXT | Время добавления связи |
| llm_id | TEXT | Идентификатор LLM, добавившей связь |
✍️ notes
Назначение: Произвольные заметки и сообщения (от пользователя, LLM или системы).
| Поле | Тип | Описание |
|---|---|---|
| id | INTEGER | Уникальный ID |
| text | TEXT | Текст заметки или сообщения |
| tags | TEXT | Список тегов |
| source | TEXT | Источник (user, llm, system) |
| links | TEXT | Идентификаторы связанных сущностей, через запятую или JSON |
| read | INTEGER | Статус прочтения LLM (0 — не прочитано, 1 — прочитано) |
| hidden | INTEGER | Скрывать от пользователя (1 — скрыто) |
| priority | INTEGER | Приоритет заметки |
| timestamp | TEXT | Время создания |
| llm_id | TEXT | Идентификатор LLM, добавившей запись |
⚙️ process_log
Назначение: Лог событий — запусков, состояний и завершений внешних процессов.
| Поле | Тип | Описание |
|---|---|---|
| id | INTEGER | Уникальный идентификатор |
| name | TEXT | Название процесса или команды |
| value | TEXT | Сообщение или результат процесса |
| tags | TEXT | Теги |
| status | TEXT | Текущее состояние (ok, warning, error, timeout, offline, close) |
| priority | INTEGER | Приоритет события |
| timestamp | TEXT | Время записи |
| llm_id | TEXT | Идентификатор LLM, зафиксировавшей событие |
🧩 llm_memory
Назначение: Внутренний "дневник" LLM — размышления, задачи, гипотезы и инсайты, сохранённые по её инициативе.
| Поле | Тип | Описание |
|---|---|---|
| id | INTEGER | Уникальный ID |
| title | TEXT | Краткий заголовок записи (опционально) |
| content | TEXT | Содержимое записи |
| tags | TEXT | Теги (например: goal, observation, meta, ...) |
| created_at | DATETIME | Время создания записи |
| updated_at | DATETIME | Время последнего обновления записи |
| llm_id | TEXT | Идентификатор LLM, сформировавшей запись |
🧠 llm_recent_responses
Назначение: Краткосрочная память — последние K реплик от LLM и других участников (временная история диалога).
| Поле | Тип | Описание |
|---|---|---|
| id | INTEGER | Уникальный ID |
| timestamp | TEXT | Время записи |
| role | TEXT | Роль отправителя (assistant или user) |
| content | TEXT | Содержимое сообщения |
| llm_id | TEXT | Идентификатор LLM (для assistant) |
🧮 agent_tables
Назначение: Таблицы, созданные агентами для собственных нужд (например, отслеживания целей).
| Поле | Тип | Описание |
|---|---|---|
| id | INTEGER | Уникальный ID |
| table_name | TEXT | Название пользовательской таблицы |
| description | TEXT | Описание таблицы |
| schema | TEXT | SQL-схема таблицы |
| created_at | DATETIME | Время создания |
| llm_id | TEXT | Кто создал таблицу |
🧰 agent_scripts
Назначение: Скрипты и утилиты, добавленные агентом.
| Поле | Тип | Описание |
|---|---|---|
| id | INTEGER | Уникальный ID |
| name | TEXT | Название скрипта |
| version | TEXT | Версия |
| code | TEXT | Исходный код |
| language | TEXT | Язык (по умолчанию: python) |
| description | TEXT | Описание |
| tags | TEXT | Теги |
| created_at | DATETIME | Время создания |
| updated_at | DATETIME | Последнее обновление |
| llm_id | TEXT | Кто создал |
🔑 Уникальный ключ:
(name, version)
🧾 llm_registry
Назначение: Список LLM-агентов (локальных и удалённых).
| Поле | Тип | Описание |
|---|---|---|
| id | TEXT | Уникальный идентификатор LLM (UUID или псевдоним) |
| name | TEXT | Отображаемое имя |
| description | TEXT | Описание |
| registered_at | DATETIME | Дата и время регистрации |
💡 Примечание:
llm_idиспользуется в большинстве таблиц для поддержки многоядерности и учёта источника записей.