| ## 📦 HMP-Agent: Структура БД (v0.3, человекочитаемый формат) | |
| --- | |
| ### 🧠 Когнитивная память (Concept Graph) | |
| #### 🧠 `memory_concepts` | |
| **Назначение:** | |
| Хранение концептов (единиц когнитивной памяти): понятий, фактов, образов, внутренних конструкций и внешних знаний. | |
| **Поля:** | |
| * `id: INTEGER` — первичный ключ. | |
| * `label: TEXT` — человекочитаемое имя концепта. | |
| * `type: TEXT` — тип концепта (`idea`, `object`, `goal`, `fact`, `memory_snapshot`, `mesh_entity`, …). | |
| * `content: TEXT` — JSON-объект с содержанием концепта (например, описание, параметры, вложенные идеи). | |
| * `context: TEXT` — дополнительный контекст (например, источник, ссылка на событие). | |
| * `created_at: TIMESTAMP` — дата создания. | |
| * `updated_at: TIMESTAMP` — дата последнего обновления. | |
| **Ключевые поля:** `id`, `label` | |
| **Связи:** | |
| * Ссылается из `memory_links.from_id` и `to_id` | |
| * Используется в `cognitive_cycles`, `hypotheses`, `reflections`, `reasoning_traces` | |
| --- | |
| #### 🔗 `memory_links` | |
| **Назначение:** | |
| Определение связей между концептами — формирование когнитивного графа. | |
| **Поля:** | |
| * `id: INTEGER` — первичный ключ. | |
| * `from_id: INTEGER` — ID исходного концепта. | |
| * `to_id: INTEGER` — ID связанного концепта. | |
| * `relation: TEXT` — тип связи (`causes`, `associated_with`, `contradicts`, …). | |
| * `weight: REAL` — значимость или сила связи (по умолчанию 1.0). | |
| **Ключевые поля:** `id`, `from_id`, `to_id` | |
| **Связи:** | |
| * `from_id`, `to_id → memory_concepts(id)` | |
| --- | |
| ## 📜 События, действия, сообщения | |
| #### 🧩 `cognitive_events` | |
| **Назначение:** | |
| Журнал восприятия, действий и входящих/исходящих сообщений. | |
| **Поля:** | |
| * `id: INTEGER` — первичный ключ. | |
| * `event_type: TEXT` — тип события (`input`, `output`, `message`, `action`, `mesh`, `internal`). | |
| * `payload: TEXT` — сериализованные данные (обычно JSON). | |
| * `source: TEXT` — источник события (например, ID mesh-пира). | |
| * `target: TEXT` — целевая система или компонент. | |
| * `created_at: TIMESTAMP` — время события. | |
| **Ключевые поля:** `id`, `event_type` | |
| **Связи:** | |
| * Используется в `reflections.trigger_event_id` | |
| --- | |
| #### 📬 `hmp_messages` | |
| **Назначение:** | |
| Лог входящих и исходящих сообщений в Mesh-среде. | |
| **Поля:** | |
| * `id: INTEGER` | |
| * `direction: TEXT` — `inbound` или `outbound` | |
| * `peer: TEXT` — адрес или идентификатор узла | |
| * `payload: TEXT` — сериализованные данные (обычно JSON) | |
| * `topic: TEXT` — категория сообщения | |
| * `created_at: TIMESTAMP` | |
| **Примечание:** | |
| Адаптация к спецификации HMP должна производиться на уровне сериализации перед отправкой, а не на уровне хранения. | |
| --- | |
| ### 🔍 Гипотезы, цели, reasoning | |
| #### 🧠 `hypotheses` | |
| **Назначение:** | |
| Управление гипотезами: недоказанными или частично сформированными утверждениями. | |
| **Поля:** | |
| * `id: INTEGER` — первичный ключ. | |
| * `title: TEXT` — краткое описание гипотезы. | |
| * `description: TEXT` — расширенное описание. | |
| * `status: TEXT` — состояние (`active`, `rejected`, `confirmed`, `stale`). | |
| * `relevance_score: REAL` — оценка актуальности (0.0–1.0). | |
| * `evidence: TEXT` — JSON-массив ссылок на концепты, события и факты. | |
| * `created_at: TIMESTAMP` | |
| **Связи:** | |
| * Может ссылаться на `memory_concepts`, `cognitive_events` | |
| --- | |
| #### 🎯 `goals` | |
| **Назначение:** | |
| Управление целями агента — формулировка намерений и задач. | |
| **Поля:** | |
| * `id: INTEGER` — первичный ключ. | |
| * `description: TEXT` — формулировка цели. | |
| * `priority: INTEGER` — приоритет (1 = максимальный). | |
| * `status: TEXT` — текущее состояние (`pending`, `in_progress`, `completed`, `abandoned`). | |
| * `context: TEXT` — дополнительная информация. | |
| * `created_at`, `updated_at: TIMESTAMP` | |
| --- | |
| #### 🔁 `cognitive_cycles` | |
| **Назначение:** | |
| История reasoning-процессов: единиц когнитивной активности, отражающих ход размышлений. | |
| **Поля:** | |
| * `id: INTEGER` — первичный ключ. | |
| * `cycle_number: INTEGER` — порядковый номер итерации. | |
| * `thoughts: TEXT` — массив мыслей в формате JSON. | |
| * `new_concepts: TEXT` — ID новых концептов, сформированных в ходе цикла. | |
| * `actions_taken: TEXT` — предпринятые действия. | |
| * `context_snapshot: TEXT` — снимок состояния. | |
| * `started_at`, `ended_at: TIMESTAMP` | |
| **Связи:** | |
| * Используется в `reflections`, `reasoning_traces`, `agent_state_snapshots` | |
| --- | |
| ### 🧬 Версионирование, артефакты, кодексы | |
| #### 📦 `versioned_artifacts` | |
| **Назначение:** | |
| Хранение версии артефактов: конфигураций, моделей, API-структур. | |
| **Поля:** | |
| * `id: INTEGER` | |
| * `name: TEXT` — идентификатор артефакта (`api_structure`, `core_config`, `agent_traits`) | |
| * `version: TEXT` — версионирование (e.g., `2025-07-22.1`) | |
| * `content: TEXT` — JSON или Markdown | |
| * `created_at: TIMESTAMP` | |
| Отлично! Текущий `db_structure.md` уже хорошо структурирован, и его можно расширить, добавив недостающие таблицы. Вот предложения по доработке: | |
| --- | |
| ### 🧬 Версионирование, артефакты, кодексы | |
| #### 🧾 `agent_policies` | |
| **Назначение:** | |
| Хранение деклараций, этических норм, стратегий и ограничений поведения агента. | |
| **Поля:** | |
| * `id: INTEGER` — первичный ключ. | |
| * `policy_type: TEXT` — тип (`ethics`, `exploration`, `safety`, `prioritization`, …). | |
| * `name: TEXT` — краткое название политики. | |
| * `content: TEXT` — Markdown или JSON-содержимое. | |
| * `created_at: TIMESTAMP` — дата создания. | |
| **Примечание:** | |
| Может быть использована при принятии решений или фильтрации гипотез/действий. | |
| --- | |
| ### ⚙️ Модули и состояния | |
| #### 🧩 `modules_state` | |
| **Назначение:** | |
| Отслеживание состояния и локальной памяти когнитивных модулей (например, рефлексии, генерации гипотез, плана). | |
| **Поля:** | |
| * `id: INTEGER` — первичный ключ. | |
| * `module_name: TEXT` — имя модуля (`reflection`, `planner`, `input_handler`, …). | |
| * `status: TEXT` — текущее состояние (`idle`, `running`, `paused`, `error`). | |
| * `memory: TEXT` — сериализованное состояние (JSON). | |
| * `last_heartbeat: TIMESTAMP` — последнее обновление. | |
| --- | |
| ### 📓 Агентский дневник | |
| #### 📖 `diary_entries` | |
| **Назначение:** | |
| Журнал размышлений, наблюдений, воспоминаний или метакомментариев, созданных агентом или пользователем. | |
| **Поля:** | |
| * `id: INTEGER` — первичный ключ. | |
| * `entry_type: TEXT` — тип (`reflection`, `note`, `observation`, `self_report`, `dialog`, …). | |
| * `content: TEXT` — основное содержимое записи. | |
| * `related_concepts: TEXT` — JSON-массив `concept_id`, с которыми связана запись. | |
| * `created_at: TIMESTAMP` | |