HMP / agents /tools /db_structure.md
GitHub Action
Sync from GitHub with Git LFS
127b740
|
raw
history blame
13.3 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)`
---
### 📅 `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 | Время создания связи |