📄 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 | Время создания связи |