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