HMP / agents /tools /db_structure.md
GitHub Action
Sync from GitHub with Git LFS
a0e51e6
|
Raw
History Blame
10.6 kB
# 📄 `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` используется в большинстве таблиц для поддержки многоядерности и учёта источника записей.