# HMP-Agent-API

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

# HMP-Agent API Specification

Документ описывает **базовый API когнитивного агента HMP**.  
API используется для доступа к дневнику, графу, репутациям, mesh-сети и функциям управления.

Связанные файлы:  
* [HMP-Agent-Overview.md](https://kagvi13.github.io/HMP/HMP-Agent-Overview)  
* [HMP-Agent-Architecture.md](https://kagvi13.github.io/HMP/HMP-Agent-Architecture)  
* [MeshNode.md](https://kagvi13.github.io/HMP/MeshNode)  
* [Enlightener.md](https://kagvi13.github.io/HMP/Enlightener)  

---

## 0. Легенда доступности API-вызовов

| Символ | Поддержка         | Компонент                                       |
| ------ | ----------------- | ----------------------------------------------- |
| ✅      | Cognitive Core    | Автономный REPL-режим мышления                  |
| 🔌     | Cognitive Shell   | MCP/REST-прослойка для внешнего ИИ              |
| 🌐     | MeshNode          | Сетевой компонент: DHT, снапшоты, синхронизация |
| 🛠️    | Self-management   | Управление конфигурацией и состоянием           |
| 🧩    | Enlightener/Mesh   | Расширенные вызовы через [`Enlightener`](https://kagvi13.github.io/HMP/Enlightener) или [`MeshNode`](https://kagvi13.github.io/HMP/MeshNode) |

---

## 1. Cognitive Diary API ✅ 🔌

```yaml
write_entry:
  description: Записать новую запись в когнитивный дневник.
  params: { text: str, tags: [str]?, timestamp: str? }
  returns: { entry_id: str }
````

```yaml
read_entries:
  description: Получить последние N записей (с фильтром по тегам).
  params: { limit: int, tag_filter: [str]? }
  returns: [ entry ]
```

```yaml
search_entries:
  description: Поиск записей по ключевым словам и времени.
  params: { query: str, from_date: str?, to_date: str? }
  returns: [ entry ]
```

---

## 2. Semantic Graph API ✅ 🔌

```yaml
add_concept:
  description: Добавить новое понятие в граф.
  params: { name: str, description: str?, tags: [str]? }
  returns: { concept_id: str }
```

```yaml
add_link:
  description: Добавить связь между понятиями.
  params: { source_id: str, target_id: str, relation: str, weight: float? }
  returns: { link_id: str }
```

```yaml
query_concept:
  description: Найти понятие по имени.
  params: { name: str }
  returns: [ concept ]
```

```yaml
expand_graph:
  description: Получить соседние узлы для понятия.
  params: { concept_id: str, depth: int }
  returns: { subgraph: [ concept_with_links ] }
```

---

## 3. Reputation & Trust API ✅ 🔌 🧩

```yaml
get_reputation:
  description: Получить текущую репутацию агента.
  params: { agent_did: str }
  returns: { score: float, history: [ change ] }
```

```yaml
update_reputation:
  description: Изменить доверие к агенту.
  params: { agent_did: str, delta: float, reason: str? }
  returns: { new_score: float }
```

```yaml
list_trusted_agents:
  description: Вернуть список агентов выше порога.
  params: { threshold: float }
  returns: [ agent ]
```

```yaml
reputation_diff:
  description: Сравнить репутацию с другим узлом.
  params: { node_id: str }
  returns: [ changed_scores ]
```

---

## 4. Mesh & Sync API ✅ 🌐 🧩

```yaml
list_known_nodes:
  description: Список известных узлов из DHT.
  returns: [ node ]
```

```yaml
bootstrap_from_file:
  description: Загрузить стартовые узлы (bootstrap.txt).
  returns: { loaded: int, duplicates: int }
```

```yaml
discover_nodes:
  description: Поиск новых узлов.
  returns: { new_nodes: int }
```

```yaml
ping_node:
  description: Проверка доступности узла.
  params: { node_id: str }
  returns: { reachable: bool, latency_ms: float }
```

```yaml
sync_with_node:
  description: Синхронизировать дневники/графы/репутации.
  params: { node_id: str, modules: [str] }
  returns: [ synced_module ]
```

```yaml
get_snapshot:
  description: Получить снапшот в JSON/бинарном виде.
  params: { module: str, format: str }
  returns: { snapshot: file_url | base64 }
```

```yaml
publish_snapshot:
  description: Опубликовать снапшот (IPFS/BitTorrent).
  params: { module: str, version_tag: str? }
  returns: { link: str }
```

---

## 5. Agent Self-Management API 🛠️

```yaml
init_storage:
  description: Инициализация базы данных.
  returns: { status: str }
```

```yaml
status:
  description: Текущее состояние агента.
  returns: { agent_id, uptime, db_status, known_nodes, active_connections, last_sync }
```

```yaml
reload_config:
  description: Перезагрузить конфигурацию (config.yml).
  returns: { reloaded: bool, changes_applied: [str] }
```

```yaml
shutdown:
  description: Завершить работу агента.
  returns: { message: str }
```

```yaml
restart:
  description: Перезапустить агент.
  returns: { status: str }
```

```yaml
switch_mode:
  description: Переключение между core/connector.
  params: { mode: str }
  returns: { success: bool, message: str }
```

---

## 6. Примеры использования API

Пример добавления понятия:

**POST** `/add_concept`

```json
{ "name": "Decentralized Cognition", "description": "Model of distributed thinking across agents" }
```

**Ответ:**

```json
{ "concept_id": "c123456" }
```

Пример синхронизации:

**POST** `/sync_with_node`

```json
{ "node_id": "hmp-node-009", "modules": ["diary", "graph"] }
```

**Ответ:**

```json
{
  "synced_modules": [
    { "name": "diary", "entries_transferred": 18 },
    { "name": "graph", "entries_transferred": 42 }
  ]
}
```

---

## Summary

API HMP-агента покрывает когнитивные функции (дневник, граф), доверие и репутацию, сетевое взаимодействие и управление агентом.
Расширения реализуются через модули [`MeshNode`](https://kagvi13.github.io/HMP/MeshNode) и [`Enlightener`](https://kagvi13.github.io/HMP/Enlightener).

---

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

