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