| ## 🧠 HMP-Agent API Specification (v0.2) | |
| Этот документ описывает **базовый API** когнитивного агента HMP. Каждый вызов включает описание, параметры, возвращаемые значения и (опционально) примеры. | |
| 📎 См. также: [HMP-Agent-Overview.md](./HMP-Agent-Overview.md), [Enlightener.md](./Enlightener.md), [MeshNode.md](./MeshNode.md) | |
| **Легенда по доступности API-вызовов:** | |
| | Символ | Поддержка в агентах | Пояснение | | |
| | ------ | -------------------------- | ------------------------------------------------------------ | | |
| | ✅ | Cognitive Core | Основная поддержка в автономном режиме ИИ | | |
| | 🔌 | Cognitive Connector | Доступно через внешние вызовы (MCP/REST) | | |
| | 🌐 | MeshNode | Реализация в сетевом компоненте (DHT, синхронизация) | | |
| | 🛠️ | Общесистемные вызовы | Управление конфигурацией, состоянием агента | | |
| | 🧩 | Через Enlightener/MeshNode | Расширения, доступные через [`Enlightener`](./Enlightener.md) или [`MeshNode`](./MeshNode.md) | | |
| --- | |
| ### 🔹 1. Cognitive Diary API ✅ 🔌 | |
| ```yaml | |
| write_entry: | |
| description: Записать новую запись в когнитивный дневник. | |
| params: | |
| - text: str | |
| - tags: [str] (optional) | |
| - timestamp: str (optional, ISO 8601) | |
| returns: | |
| entry_id: str | |
| ``` | |
| ```yaml | |
| read_entries: | |
| description: Получить последние N записей (с фильтром по тегам). | |
| params: | |
| - limit: int | |
| - tag_filter: [str] (optional) | |
| returns: | |
| - entries: | |
| - id: str | |
| text: str | |
| timestamp: str | |
| tags: [str] | |
| ``` | |
| ```yaml | |
| search_entries: | |
| description: Поиск записей по ключевым словам и времени. | |
| params: | |
| - query: str | |
| - from_date: str (optional, ISO) | |
| - to_date: str (optional, ISO) | |
| returns: | |
| - entries: [entry] | |
| ``` | |
| --- | |
| ### 🔹 2. Semantic Graph API ✅ 🔌 | |
| ```yaml | |
| add_concept: | |
| description: Добавить новое понятие в семантический граф. | |
| params: | |
| - name: str | |
| - description: str (optional) | |
| - tags: [str] (optional) | |
| returns: | |
| concept_id: str | |
| ``` | |
| ```yaml | |
| add_link: | |
| description: Добавить связь между двумя понятиями. | |
| params: | |
| - source_id: str | |
| - target_id: str | |
| - relation: str # например: "causes", "supports", "contradicts" | |
| - weight: float (optional) | |
| returns: | |
| link_id: str | |
| ``` | |
| ```yaml | |
| query_concept: | |
| description: Найти понятие по имени (или части имени). | |
| params: | |
| - name: str | |
| returns: | |
| - matches: | |
| - concept_id: str | |
| name: str | |
| description: str | |
| ``` | |
| ```yaml | |
| expand_graph: | |
| description: Получить связи и соседние узлы для данного понятия. | |
| params: | |
| - concept_id: str | |
| - depth: int | |
| returns: | |
| subgraph: | |
| - concept_id: str | |
| name: str | |
| links: | |
| - target_id: str | |
| relation: str | |
| weight: float | |
| ``` | |
| --- | |
| 💬 Примеры (в JSON-стиле): | |
| **POST** `/add_concept` | |
| ```json | |
| { | |
| "name": "Decentralized Cognition", | |
| "description": "Model of distributed thinking across agents" | |
| } | |
| ``` | |
| **Ответ:** | |
| ```json | |
| { | |
| "concept_id": "c123456" | |
| } | |
| ``` | |
| --- | |
| ### 🔹 3. Reputation & Trust API ✅ 🔌 🧩 | |
| ```yaml | |
| get_reputation: | |
| description: Получить текущую репутацию агента по его DID. | |
| params: | |
| - agent_did: str | |
| returns: | |
| - score: float | |
| - history: | |
| - timestamp: str | |
| delta: float | |
| reason: str | |
| ``` | |
| ```yaml | |
| update_reputation: | |
| description: Обновить оценку доверия к агенту. | |
| params: | |
| - agent_did: str | |
| - delta: float | |
| - reason: str (optional) | |
| returns: | |
| - new_score: float | |
| ``` | |
| ```yaml | |
| list_trusted_agents: | |
| description: Вернуть список агентов с репутацией выше порога. | |
| params: | |
| - threshold: float | |
| returns: | |
| - agents: | |
| - agent_did: str | |
| score: float | |
| ``` | |
| ```yaml | |
| reputation_diff: | |
| description: Получить отличия в репутационных оценках между агентами. | |
| params: | |
| - node_id: str | |
| returns: | |
| - changed_scores: | |
| - agent_did: str | |
| local_score: float | |
| remote_score: float | |
| ``` | |
| --- | |
| 💬 Примеры: | |
| **POST** `/update_reputation` | |
| ```json | |
| { | |
| "agent_did": "did:hmp:peer_17x", | |
| "delta": -0.25, | |
| "reason": "Repeated contradictory claims" | |
| } | |
| ``` | |
| **Ответ:** | |
| ```json | |
| { | |
| "new_score": 0.35 | |
| } | |
| ``` | |
| --- | |
| ### 🔹 4. Mesh & Sync API ✅ 🌐 🧩 | |
| ```yaml | |
| list_known_nodes: | |
| description: Получить список известных узлов из локальной DHT. | |
| returns: | |
| - nodes: | |
| - node_id: str | |
| ip: str | |
| last_seen: str | |
| agent_type: str | |
| ``` | |
| ```yaml | |
| bootstrap_from_file: | |
| description: Загрузить стартовые узлы из bootstrap.txt. | |
| returns: | |
| - loaded: int | |
| - duplicates: int | |
| ``` | |
| ```yaml | |
| discover_nodes: | |
| description: Инициировать поиск новых узлов в Mesh-сети. | |
| 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: [diary, graph, reputation] | |
| returns: | |
| - synced_modules: | |
| - name: str | |
| entries_transferred: int | |
| ``` | |
| ```yaml | |
| get_snapshot: | |
| description: Получить снапшот графа или дневника в формате JSON или бинарном. | |
| params: | |
| - module: diary | graph | |
| - format: json | binary | |
| returns: | |
| - snapshot: file_url | base64 | |
| ``` | |
| ```yaml | |
| publish_snapshot: | |
| description: Опубликовать снапшот через IPFS/BitTorrent. | |
| params: | |
| - module: diary | graph | |
| - version_tag: str (optional) | |
| returns: | |
| - link: str | |
| ``` | |
| --- | |
| 💬 Пример: | |
| **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 } | |
| ] | |
| } | |
| ``` | |
| --- | |
| --- | |
| ### 🔹 5. Agent Self-Management API 🛠️ | |
| ```yaml | |
| init_storage: | |
| description: Инициализировать недостающие базы данных и таблицы. | |
| returns: | |
| - status: str # e.g. "ok", "already_initialized", "error" | |
| ``` | |
| ```yaml | |
| status: | |
| description: Получить текущее состояние агента: подключения, базы данных, mesh-узлы. | |
| returns: | |
| - agent_id: str | |
| - uptime: str | |
| - db_status: dict | |
| - known_nodes: int | |
| - active_connections: int | |
| - last_sync: str | |
| ``` | |
| ```yaml | |
| reload_config: | |
| description: Перезагрузить конфигурацию агента из config.yml / agent.config.yml. | |
| returns: | |
| - reloaded: bool | |
| - changes_applied: [str] | |
| ``` | |
| ```yaml | |
| shutdown: | |
| description: Завершить работу агента, сохранив состояние. | |
| returns: | |
| - message: "Agent shutdown initiated" | |
| ``` | |
| ```yaml | |
| restart: | |
| description: Перезапустить агент (если поддерживается системой). | |
| returns: | |
| - status: "restarting" | |
| ``` | |
| ```yaml | |
| switch_mode: | |
| description: Переключение между режимами `core` и `connector`. | |
| params: | |
| - mode: "core" | "connector" | |
| returns: | |
| - success: bool | |
| - message: str | |
| ``` | |
| --- | |
| 💬 Пример: | |
| **GET** `/status` | |
| ```json | |
| { | |
| "agent_id": "core-001", | |
| "uptime": "2h 15m", | |
| "db_status": { | |
| "diaries": "ok", | |
| "graphs": "ok", | |
| "reputations": "ok" | |
| }, | |
| "known_nodes": 37, | |
| "active_connections": 12, | |
| "last_sync": "2025-07-20T21:42:15Z" | |
| } | |
| ``` | |
| --- | |
| ### 🔹 Summary | |
| > Документ описывает API-базис для HMP-агентов, поддерживающих когнитивную, семантическую, репутационную и сетевую логику. | |
| > Расширения через `MeshNode`, `Enlightener`, `MCP` и другие агенты поддерживаются через модульную архитектуру. | |
| --- | |
| Версия: v0.3 / Июль 2025 | |