# 📄 `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` используется в большинстве таблиц для поддержки многоядерности и учёта источника записей.