File size: 10,641 Bytes
376ee15 babba5e 376ee15 babba5e 376ee15 babba5e 376ee15 babba5e 376ee15 babba5e 376ee15 babba5e 376ee15 babba5e 376ee15 babba5e 376ee15 babba5e 376ee15 babba5e 376ee15 babba5e 376ee15 babba5e 376ee15 babba5e 376ee15 babba5e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 | # 📄 `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` используется в большинстве таблиц для поддержки многоядерности и учёта источника записей.
|