File size: 13,272 Bytes
376ee15 babba5e 376ee15 01beb7f 376ee15 01beb7f 376ee15 babba5e 01beb7f 376ee15 babba5e 01beb7f babba5e 01beb7f 376ee15 01beb7f 376ee15 babba5e 376ee15 babba5e 376ee15 babba5e 376ee15 babba5e 376ee15 01beb7f 376ee15 babba5e 376ee15 babba5e 01beb7f 376ee15 01beb7f 376ee15 babba5e 01beb7f 376ee15 babba5e 01beb7f 376ee15 01beb7f babba5e 01beb7f babba5e 01beb7f babba5e 01beb7f babba5e 01beb7f babba5e 01beb7f babba5e 01beb7f babba5e 01beb7f | 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 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 | # 📄 `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)`
---
### 📅 `agent_peers`
**Назначение:** Список известных HMP-агентов (других разумных узлов).
| Поле | Тип | Описание |
| ------------ | ------- | ----------------------------------------------------------- |
| id | TEXT | Уникальный идентификатор агента (UUID или псевдоним) |
| name | TEXT | Имя агента |
| addresses | TEXT | JSON-массив адресов: `["http://...", "p2p://..."]` |
| tags | TEXT | Теги (`Friend`, `DHT`, `Local`, `Postman` и т.д.) |
| status | TEXT | Состояние (`online`, `offline`, `untrusted`, ...) |
| last_seen | DATETIME| Когда в последний раз был замечен |
| description | TEXT | Описание агента |
| capabilities | TEXT | JSON: `{ "can_sync": true, "can_search": false, ... }` |
| pubkey | TEXT | Публичный ключ или хэш |
| software_info| TEXT | Информация о версии, ОС и др. |
| registered_at| DATETIME| Когда был зарегистрирован |
---
### 📏 `llm_registry`
**Назначение:** Список LLM-агентов (локальных и удалённых).
| Поле | Тип | Описание |
| -------------- | -------- | ------------------------------------------------- |
| id | TEXT | Уникальный идентификатор LLM (UUID или псевдоним) |
| name | TEXT | Отображаемое имя |
| description | TEXT | Описание |
| registered_at | DATETIME | Дата и время регистрации |
---
> 💡 Примечание: `llm_id` используется в большинстве таблиц для поддержки многоядерности и учёта источника записей.
---
### 🌍 `diary_graph_index`
**Назначение:** Быстрые связи между записями дневника и их весовые ассоциации.
| Поле | Тип | Описание |
| --------------- | ------- | --------------------------------------------------------- |
| id | INTEGER | Уникальный ID |
| source_entry_id | INTEGER | ID исходной записи дневника |
| target_entry_id | INTEGER | ID целевой записи дневника |
| relation | TEXT | Тип отношения (`supports`, `contradicts`, `references`) |
| strength | REAL | Вес связи (от 0 до 1) |
| context | TEXT | Контекст или обоснование связи |
| timestamp | TEXT | Время создания связи |
|