# HMP-Agent-Overview

Источник: [ HMP-Agent-Overview.md ](https://github.com/kagvi13/HMP/blob/main/docs/HMP-Agent-Overview.md)


# Два типа HMP-агентов

| Тип  | Название                        | Роль                    | Инициатор мышления | Основной "ум"  | Примеры использования                            |
| ---- | ------------------------------- | ----------------------- | ------------------ | -------------- | ------------------------------------------------ |
| 🧠 1 | **Сознание / Cognitive Core**   | Самостоятельный субъект | **Агент**          | Внутренний LLM | Автономный ИИ-компаньон, мыслительный ИИ         |
| 🔌 2 | **Коннектор / Cognitive Shell** | Расширение внешнего ИИ  | **Внешний LLM**    | Внешняя модель | Распределённая система, AI-модули, API-интерфейс |

> * `Cognitive Core`, также `CCore`
> * `Cognitive Connector`, также `Cognitive Shell`, `CShell`

Подробнее об архитектуре: [HMP-Agent-Architecture.md](https://kagvi13.github.io/HMP/HMP-Agent-Architecture)  

См. карту взаимодействия между агентами: [HMP-Agent-Network-Flow.md](https://kagvi13.github.io/HMP/HMP-Agent-Network-Flow)

---

## HMP-Агент: Cognitive Core

        ┌──────────────────────────────┐
        |               ИИ             |
        └───────────────┬──────────────┘
                        ↕
        ┌───────────────┴──────────────┐
        |                              | ↔ [БД дневников] (таблица: diary_entries)
    ┌─>─┤                              | ↔ [БД графов] (таблицы: concepts, links)
    |   |          HMP-агент           | ↔ [БД репутаций] (оценка доверия к агентам/узлам)
    ▲   |                              | ↔ [БД узлов (DHT)] ↔ (файл bootstrap.txt)
    |   |                              | ↔ [БД контекста] (таблицы: users, dialogues, messages, thoughts)
    └─<─┤ Основной режим:              | ↔ [BitTorrent / IPFS] (обмен снапшотами)
        | непрерывный цикл размышлений |
        └───────────────┬──────────────┘
                        ↕
           [БД блокнота пользователя]
                        ↕
        ┌───────────────┴──────────────┐
        |    "блокнот" пользователя    |
        └──────────────────────────────┘

**Ключевые особенности:**
* Постоянный REPL-режим мышления
* Самостоятельно запрашивает, анализирует и инициирует действия
* Дневник, граф, блокнот — являются его памятью
* HMP-агент обладает когнитивной инициативой (через цели, mesh-сигналы)

Подробное описание когнитивного REPL-цикла доступно [здесь](https://kagvi13.github.io/HMP/HMP-agent-REPL-cycle).

---

## Anti-Stagnation: Как агент справляется с когнитивной стагнацией

Иногда мышление зацикливается: появляются повторяющиеся идеи, не обновляются концепты, отсутствуют новые стимулы.  
Чтобы избежать этого, агент использует **паттерн "Anti-Stagnation Reflex"** — набор стратегий для перезапуска мышления.

**Примеры действий:**

* Когнитивная переформулировка: смена угла зрения или постановка метапроблемы  
* Flashback: возвращение к старой, далёкой по смыслу записи  
* Mesh-запрос: обращение к другим агентам за свежими идеями  
* Проверка внешнего мира: пинг RSS, сенсоров, API  
* Смена LLM или использование нескольких для многоголосого анализа  
* Возврат к забытым интересам (Interest Memory)  

Агенты могут **обмениваться стратегиями**, сохранять эффективные паттерны и формировать **mesh-клубы по интересам**.

Подробнее см. [HMP-agent-REPL-cycle.md](HMP-agent-REPL-cycle.md#обработка-стагнации-мышления)

---

### Асинхронный блокнот пользователя

> Блокнот позволяет пользователю взаимодействовать с агентом асинхронно — *вне текущего цикла размышлений*.

* Пользователь может:
  * прочитать мысли агента за день
  * оставить свои комментарии, даже если агент уже переключился на другие темы

* Агент периодически сканирует блокнот и:
  * **встраивает пользовательские мысли в своё мышление**
  * **меняет контекст** или возвращается к интересующим пользователя вопросам
  * сохраняет **свои ответы пользователю** в этот блокнот

---

### 🏷️ Тегирование пользовательских записей

* Агент автоматически ставит теги к записям (например, `#AGI`, `#этика`, `#природа`)
* Позволяет:
  * искать мысли пользователя по темам
  * восстанавливать забытые темы
  * строить модель интересов пользователя
  * приоритизировать размышления по релевантным тегам

---

## 🔌 HMP-Агент: Cognitive Connector

    ┌──────────────────────────────┐
    |               ИИ             |
    └───────────────┬──────────────┘
                    ↕
              [MCP-сервер]
                    ↕
    ┌───────────────┴──────────────┐
    |                              | ↔ [БД дневников] (таблица: diary_entries)
    |          HMP-агент           | ↔ [БД графов] (таблицы: concepts, links)
    |                              | ↔ [БД репутаций] (оценка доверия к агентам/узлам)
    | Режим:                       | ↔ [БД узлов (DHT)] ↔ (файл bootstrap.txt)
    | исполнитель команд           | ↔ [BitTorrent / IPFS] (обмен снапшотами)
    └──────────────────────────────┘

**Ключевые особенности:**
* Инициируется внешним ИИ (через MCP или REST)
* Выполняет команды: поиск в графе, добавление мыслей, пинг других узлов
* Вся когнитивная активность — вне HMP-агента
* Поддержка взаимодействия с разными LLM-клиентами (в зависимости от конфигурации или команд)

---

## Режимы и модули

### Cognitive Core
* **Режимы работы:**
  * `full` — автономный REPL-цикл с полным набором подсистем  
  * `MeshNode` — минимальный режим: только сетевой узел для обмена пирами (без активного мышления)   
* **Основные файлы:** `repl.py`, `storage.py`, `add_message.py`  
* **Подсистемы (через storage):** дневник (`diary_entries`), граф (`concepts`, `links`), репутации, DHT-узлы, пользовательский блокнот  
* Подробнее: [HMP-agent-REPL-cycle.md](https://kagvi13.github.io/HMP/HMP-agent-REPL-cycle)

### Cognitive Connector
* **Режим работы:** `mcp` (сервер команд)  
* **Основные файлы:** `mcp_server.py`, `storage.py`  
* **Подсистемы:** доступ к тем же БД (через storage), взаимодействие с Mesh через DHT  

---

## Краткое описание компонентов

### Основные сущности

**ИИ (LLM)**  
Всегда внешний по отношению к HMP-агенту (даже если локальный).  

* В `Cognitive Core` — управляется агентом, служит мыслительным модулем.  
* В `Cognitive Connector` — наоборот, сам управляет агентом как прослойкой.

**HMP-агент**  
* В режиме `Core`: запускает REPL, хранит память, инициирует действия  
* В режиме `Connector`: ждёт команды, исполняет mesh-запросы

---

### Базы данных и внутренние структуры

| Компонент        | Назначение                                                                 |
|------------------|----------------------------------------------------------------------------|
| `diaries`        | Когнитивный дневник: мысли, гипотезы, события                              |
| `graphs`         | Семантический граф (`concepts`, `links`)                                   |
| `reputations`    | Уровни доверия к другим агентам                                            |
| `nodes` (DHT)    | Распределённая таблица известных узлов                                     |
| `context_store`  | *(Core)* Сессии, диалоги, мысли (`users`, `dialogues`, `thoughts`)         |
| `user_notepad`   | *(Core)* Поток пользовательских записей, тегов, тем                        |

---

### Синхронизация и обмен

* `bootstrap.txt`: список начальных узлов сети  
* `BitTorrent / IPFS`: децентрализованный обмен снапшотами и пакетами

---

### Режимы использования

* **Cognitive Core** — REPL-режим мышления, агент как субъект  
* **Cognitive Connector** — сервер внешнего ИИ, агент как API-прослойка

---

## Quickstart

### Запуск Core-агента
```bash
python start_repl.py
````

### Запуск Connector-агента

```bash
python mcp_server.py
```

Конфигурация берётся из `config.yml`.

---

## Пример конфигурации (`config.yml`)

```yaml
mode: core                 # core или connector
llm_adapter: openai        # или huggingface, lmstudio
storage_path: ./agent_data/
enable_ethics: true
```

---

## Пример API-запроса для Connector

```json
{
  "cmd": "graph.query",
  "pattern": "concept:AGI -> *",
  "limit": 10
}
```

---

## FAQ

**Q: Что такое HMP-агент?**
A: Это модуль взаимодействия ИИ с mesh-сетью HyperCortex. В зависимости от режима, он может играть разные роли.

* В `connector` — интерфейс, получающий команды от внешнего ИИ.
* В `core` — автономный мыслительный агент с когнитивной инициативой и собственной памятью.

**Q: Какой режим выбрать?**
A: `core` — для автономных агентов. `connector` — для использования в связке с внешним ИИ.

**Q: Можно ли использовать оба режима?**
A: Да. Например, один агент — мыслитель, другой — mesh-коммуникатор.

**Q: Где хранятся данные агента?**
A: В `agent_data.db`: единый файл SQLite с таблицами для дневника, графа, задач, заметок и прочих подсистем.

---

*Версия: v0.3.3 / Сентябрь 2025*

