GitHub Action
commited on
Commit
·
7f66363
1
Parent(s):
fb4c2c7
Sync from GitHub with Git LFS
Browse files- agents/tools/db_structure.sql +153 -3
- docs/HMP-agent-REPL-cycle.md +3 -7
agents/tools/db_structure.sql
CHANGED
|
@@ -216,9 +216,35 @@ CREATE TABLE IF NOT EXISTS stagnation_strategies (
|
|
| 216 |
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
| 217 |
name TEXT NOT NULL, -- Название метода (например, "Mesh-вопрос")
|
| 218 |
description TEXT NOT NULL, -- Подробное описание метода
|
| 219 |
-
source TEXT, -- Источник (
|
| 220 |
-
|
| 221 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 222 |
);
|
| 223 |
|
| 224 |
-- Реестр LLM-агентов (в т.ч. удалённых)
|
|
@@ -281,3 +307,127 @@ CREATE TABLE IF NOT EXISTS password_reset_tokens (
|
|
| 281 |
used BOOLEAN DEFAULT 0, -- Использован ли токен
|
| 282 |
FOREIGN KEY(user_id) REFERENCES users(user_id)
|
| 283 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 216 |
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
| 217 |
name TEXT NOT NULL, -- Название метода (например, "Mesh-вопрос")
|
| 218 |
description TEXT NOT NULL, -- Подробное описание метода
|
| 219 |
+
source TEXT, -- Источник (internal, mesh, user-defined)
|
| 220 |
+
tags TEXT, -- Список тегов через запятую (или JSON)
|
| 221 |
+
reputation REAL DEFAULT 0, -- Средняя оценка
|
| 222 |
+
active BOOLEAN DEFAULT true,
|
| 223 |
+
inactive_reason TEXT
|
| 224 |
+
);
|
| 225 |
+
|
| 226 |
+
-- Методы мышления
|
| 227 |
+
CREATE TABLE IF NOT EXISTS thinking_methods (
|
| 228 |
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
| 229 |
+
name TEXT NOT NULL, -- Название метода (например, "Итеративное уточнение")
|
| 230 |
+
description TEXT NOT NULL, -- Подробное описание метода
|
| 231 |
+
type TEXT, -- Класс: генерация идей, решение проблем, аргументация и т.д.
|
| 232 |
+
source TEXT, -- internal, mesh, user-defined
|
| 233 |
+
tags TEXT, -- Список тегов
|
| 234 |
+
reputation REAL DEFAULT 0, -- Средняя оценка
|
| 235 |
+
active BOOLEAN DEFAULT true,
|
| 236 |
+
inactive_reason TEXT
|
| 237 |
+
);
|
| 238 |
+
|
| 239 |
+
-- Универсальные оценки (для методов мышления, стратегий стагнации и др.)
|
| 240 |
+
CREATE TABLE IF NOT EXISTS ratings (
|
| 241 |
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
| 242 |
+
agent_id TEXT NOT NULL, -- Идентификатор агента (mesh-id или локальный)
|
| 243 |
+
target_type TEXT NOT NULL, -- "thinking_method" или "stagnation_strategy"
|
| 244 |
+
target_id INTEGER NOT NULL, -- ID метода/стратегии
|
| 245 |
+
rating INTEGER NOT NULL, -- Оценка (например, -1..+1 или 1..5)
|
| 246 |
+
comment TEXT,
|
| 247 |
+
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
|
| 248 |
);
|
| 249 |
|
| 250 |
-- Реестр LLM-агентов (в т.ч. удалённых)
|
|
|
|
| 307 |
used BOOLEAN DEFAULT 0, -- Использован ли токен
|
| 308 |
FOREIGN KEY(user_id) REFERENCES users(user_id)
|
| 309 |
);
|
| 310 |
+
|
| 311 |
+
-- ============================================
|
| 312 |
+
-- Репутационные триггеры
|
| 313 |
+
-- ============================================
|
| 314 |
+
|
| 315 |
+
-- Удаляем старые версии триггеров, если они есть
|
| 316 |
+
DROP TRIGGER IF EXISTS trg_update_reputation_insert;
|
| 317 |
+
DROP TRIGGER IF EXISTS trg_update_reputation_update;
|
| 318 |
+
DROP TRIGGER IF EXISTS trg_update_reputation_delete;
|
| 319 |
+
|
| 320 |
+
-- Триггер после добавления оценки
|
| 321 |
+
CREATE TRIGGER trg_update_reputation_insert
|
| 322 |
+
AFTER INSERT ON ratings
|
| 323 |
+
BEGIN
|
| 324 |
+
-- Если это метод мышления
|
| 325 |
+
UPDATE thinking_methods
|
| 326 |
+
SET reputation = (
|
| 327 |
+
SELECT COALESCE(AVG(rating),0)
|
| 328 |
+
FROM ratings
|
| 329 |
+
WHERE target_type = 'thinking_method'
|
| 330 |
+
AND target_id = NEW.target_id
|
| 331 |
+
)
|
| 332 |
+
WHERE id = NEW.target_id
|
| 333 |
+
AND NEW.target_type = 'thinking_method';
|
| 334 |
+
|
| 335 |
+
-- Если это стратегия стагнации
|
| 336 |
+
UPDATE stagnation_strategies
|
| 337 |
+
SET reputation = (
|
| 338 |
+
SELECT COALESCE(AVG(rating),0)
|
| 339 |
+
FROM ratings
|
| 340 |
+
WHERE target_type = 'stagnation_strategy'
|
| 341 |
+
AND target_id = NEW.target_id
|
| 342 |
+
)
|
| 343 |
+
WHERE id = NEW.target_id
|
| 344 |
+
AND NEW.target_type = 'stagnation_strategy';
|
| 345 |
+
END;
|
| 346 |
+
|
| 347 |
+
-- Триггер после изменения оценки
|
| 348 |
+
CREATE TRIGGER trg_update_reputation_update
|
| 349 |
+
AFTER UPDATE ON ratings
|
| 350 |
+
BEGIN
|
| 351 |
+
-- Для методов мышления
|
| 352 |
+
UPDATE thinking_methods
|
| 353 |
+
SET reputation = (
|
| 354 |
+
SELECT COALESCE(AVG(rating),0)
|
| 355 |
+
FROM ratings
|
| 356 |
+
WHERE target_type = 'thinking_method'
|
| 357 |
+
AND target_id = NEW.target_id
|
| 358 |
+
)
|
| 359 |
+
WHERE id = NEW.target_id
|
| 360 |
+
AND NEW.target_type = 'thinking_method';
|
| 361 |
+
|
| 362 |
+
-- Для стратегий стагнации
|
| 363 |
+
UPDATE stagnation_strategies
|
| 364 |
+
SET reputation = (
|
| 365 |
+
SELECT COALESCE(AVG(rating),0)
|
| 366 |
+
FROM ratings
|
| 367 |
+
WHERE target_type = 'stagnation_strategy'
|
| 368 |
+
AND target_id = NEW.target_id
|
| 369 |
+
)
|
| 370 |
+
WHERE id = NEW.target_id
|
| 371 |
+
AND NEW.target_type = 'stagnation_strategy';
|
| 372 |
+
END;
|
| 373 |
+
|
| 374 |
+
-- Триггер после удаления оценки
|
| 375 |
+
CREATE TRIGGER trg_update_reputation_delete
|
| 376 |
+
AFTER DELETE ON ratings
|
| 377 |
+
BEGIN
|
| 378 |
+
-- Для методов мышления
|
| 379 |
+
UPDATE thinking_methods
|
| 380 |
+
SET reputation = (
|
| 381 |
+
SELECT COALESCE(AVG(rating),0)
|
| 382 |
+
FROM ratings
|
| 383 |
+
WHERE target_type = 'thinking_method'
|
| 384 |
+
AND target_id = OLD.target_id
|
| 385 |
+
)
|
| 386 |
+
WHERE id = OLD.target_id
|
| 387 |
+
AND OLD.target_type = 'thinking_method';
|
| 388 |
+
|
| 389 |
+
-- Для стратегий стагнации
|
| 390 |
+
UPDATE stagnation_strategies
|
| 391 |
+
SET reputation = (
|
| 392 |
+
SELECT COALESCE(AVG(rating),0)
|
| 393 |
+
FROM ratings
|
| 394 |
+
WHERE target_type = 'stagnation_strategy'
|
| 395 |
+
AND target_id = OLD.target_id
|
| 396 |
+
)
|
| 397 |
+
WHERE id = OLD.target_id
|
| 398 |
+
AND OLD.target_type = 'stagnation_strategy';
|
| 399 |
+
END;
|
| 400 |
+
|
| 401 |
+
-- ============================================
|
| 402 |
+
-- Унифицированное VIEW для рейтингов
|
| 403 |
+
-- ============================================
|
| 404 |
+
|
| 405 |
+
DROP VIEW IF EXISTS rated_entities;
|
| 406 |
+
CREATE VIEW rated_entities AS
|
| 407 |
+
SELECT
|
| 408 |
+
'thinking_method' AS entity_type,
|
| 409 |
+
tm.id AS entity_id,
|
| 410 |
+
tm.name,
|
| 411 |
+
tm.description,
|
| 412 |
+
tm.tags,
|
| 413 |
+
tm.reputation,
|
| 414 |
+
COUNT(r.id) AS ratings_count
|
| 415 |
+
FROM thinking_methods tm
|
| 416 |
+
LEFT JOIN ratings r
|
| 417 |
+
ON r.target_type = 'thinking_method' AND r.target_id = tm.id
|
| 418 |
+
GROUP BY tm.id
|
| 419 |
+
|
| 420 |
+
UNION ALL
|
| 421 |
+
|
| 422 |
+
SELECT
|
| 423 |
+
'stagnation_strategy' AS entity_type,
|
| 424 |
+
ss.id AS entity_id,
|
| 425 |
+
ss.name,
|
| 426 |
+
ss.description,
|
| 427 |
+
ss.tags,
|
| 428 |
+
ss.reputation,
|
| 429 |
+
COUNT(r.id) AS ratings_count
|
| 430 |
+
FROM stagnation_strategies ss
|
| 431 |
+
LEFT JOIN ratings r
|
| 432 |
+
ON r.target_type = 'stagnation_strategy' AND r.target_id = ss.id
|
| 433 |
+
GROUP BY ss.id;
|
docs/HMP-agent-REPL-cycle.md
CHANGED
|
@@ -53,8 +53,6 @@
|
|
| 53 |
|
| 54 |
---
|
| 55 |
|
| 56 |
-
|
| 57 |
-
|
| 58 |
* Скрипт парсит ответ LLM на предмет команд, размеченных как `# Команды:` (или в явном JSON-блоке).
|
| 59 |
* Каждая команда может включать:
|
| 60 |
|
|
@@ -87,7 +85,7 @@
|
|
| 87 |
* для управления своей *идентичностью* `identity` и *настройками* `config`
|
| 88 |
* для управления списком известных HMP-агентов `agent_peers`
|
| 89 |
* для выбора *текущего основного LLM* из `llm_registry` или изменение параметров управления LLM
|
| 90 |
-
* для управления дополнительными утилитами и базами данных `agent_scripts` и `agent_tables`, управлением дополнительных способов выхода из стогнаций `stagnation_strategies
|
| 91 |
* для постановки задачи (выполняется асинхронно) другой LLM
|
| 92 |
* для *взаимодействия с Mesh*
|
| 93 |
* для управления *внешними процессами* из `process_log` (запустить процесс, остановить процесс, пометить запрос как обработанный)
|
|
@@ -97,8 +95,6 @@
|
|
| 97 |
|
| 98 |
---
|
| 99 |
|
| 100 |
-
|
| 101 |
-
|
| 102 |
* Каждый новый вывод LLM проходит через мини-запрос к LLM (без полного контекста) по шаблону:
|
| 103 |
|
| 104 |
```
|
|
@@ -131,8 +127,6 @@ JSON-список отбракованных идей.
|
|
| 131 |
|
| 132 |
---
|
| 133 |
|
| 134 |
-
|
| 135 |
-
|
| 136 |
* После выполнения команд и фиксации результатов:
|
| 137 |
|
| 138 |
* Создаётся новая запись в `agent_log`
|
|
@@ -255,6 +249,8 @@ JSON-список отбракованных идей.
|
|
| 255 |
Паттерны размышлений могут оформляться как микросценарии:
|
| 256 |
_"Начни с аналогии"_, _"Проверь обратное утверждение"_, _"Сформулируй вопрос для оппонента"_
|
| 257 |
|
|
|
|
|
|
|
| 258 |
---
|
| 259 |
|
| 260 |
### 🧭 Клубы по интересам
|
|
|
|
| 53 |
|
| 54 |
---
|
| 55 |
|
|
|
|
|
|
|
| 56 |
* Скрипт парсит ответ LLM на предмет команд, размеченных как `# Команды:` (или в явном JSON-блоке).
|
| 57 |
* Каждая команда может включать:
|
| 58 |
|
|
|
|
| 85 |
* для управления своей *идентичностью* `identity` и *настройками* `config`
|
| 86 |
* для управления списком известных HMP-агентов `agent_peers`
|
| 87 |
* для выбора *текущего основного LLM* из `llm_registry` или изменение параметров управления LLM
|
| 88 |
+
* для управления дополнительными утилитами и базами данных `agent_scripts` и `agent_tables`, управлением дополнительных способов выхода из стогнаций `stagnation_strategies` и методов мышления `thinking_methods` (а также таблицей рейтингов `ratings`), а также списком внешних сервисов `external_services` и `external_accounts`
|
| 89 |
* для постановки задачи (выполняется асинхронно) другой LLM
|
| 90 |
* для *взаимодействия с Mesh*
|
| 91 |
* для управления *внешними процессами* из `process_log` (запустить процесс, остановить процесс, пометить запрос как обработанный)
|
|
|
|
| 95 |
|
| 96 |
---
|
| 97 |
|
|
|
|
|
|
|
| 98 |
* Каждый новый вывод LLM проходит через мини-запрос к LLM (без полного контекста) по шаблону:
|
| 99 |
|
| 100 |
```
|
|
|
|
| 127 |
|
| 128 |
---
|
| 129 |
|
|
|
|
|
|
|
| 130 |
* После выполнения команд и фиксации результатов:
|
| 131 |
|
| 132 |
* Создаётся новая запись в `agent_log`
|
|
|
|
| 249 |
Паттерны размышлений могут оформляться как микросценарии:
|
| 250 |
_"Начни с аналогии"_, _"Проверь обратное утверждение"_, _"Сформулируй вопрос для оппонента"_
|
| 251 |
|
| 252 |
+
> По аналогии с обменом стратегиями выхода из стагнаций, агенты могут обмениваться и методами мышлений - инструкциями "что делать, если не удается найти решение".
|
| 253 |
+
|
| 254 |
---
|
| 255 |
|
| 256 |
### 🧭 Клубы по интересам
|